一种系统故障的处理方法和装置的制作方法

文档序号:6367483阅读:79来源:国知局
专利名称:一种系统故障的处理方法和装置的制作方法
技术领域
本发明涉及程序测试领域,特别是涉及通过自动化测试程序对程序进行自动测试时,系统故障的处理方法及装置。
背景技术
在测试驱动程序时,使用的方法一般都是在一台装有Windows系统的机器上,打开Verifier,默认开启所有校验项或者指定项,在执行驱动case的过程中,遇到驱动bug,则系统会出现蓝屏,这时测试人员需要将系统蓝屏后的MEMORY. DMP保存下来,提交开发跟踪蓝屏原因。这里涉及到驱动程序、Verifier、蓝屏、MEMORY. DMP文件这几个计算机领域的术语,下面先对这几个术语进行说明,以便更好的理解本发明。驱动程序驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,驱动程序不正确,计算机中的硬件就无法工作。Verifier微软提供的驱动校验器,用来提高系统的稳定性和可靠性,可以使用此工具来解决驱动程序问题。如果存在编写错误的驱动程序,就会触发系统蓝屏。蓝屏(BSoD)电脑蓝屏,又叫蓝屏死机(Blue Screen of Death,缩写为BSoD),指的是微软Windows操作系统在无法从一个系统错误中恢复过来时所显示的屏幕图像。通常是由于工作在RingO级的内核程序出错导致的,比如内核程序访问了不可访问的内存会立即导致BSoD。MEMORY. DMP 文件在上次操作系统发生错误的时候,由操作系统将当时内存(含虚拟内存)中的数据直接写到文件中去,利用MEMORY. DMP文件可确定为什么系统失败。Windows驱动测试遭遇蓝屏后,会出现以下几种情况I、系统蓝屏后,重启系统,系统还能够正常重启;2、系统由于挂载驱动(出现严重问题),重启系统不能正常启动,需要手动进入安全模式才能进入系统;3、蓝屏后,通过安全模式也无法进入系统。Windows蓝屏后生成MEMORY. DMP的方式根据系统不同会有区别。Windows XP, Windows Server 2003 下 MEMORY. DMP 文件不能在蓝屏时生成,需要进Windows XP的安全模式或者是正常重启后,操作系统重启后会自动启动一个名为save dump, exe的进程收集pagef ile. sys以及系统磁盘启动卷的信息文件生成MEMORY. DMP文件。
Windows Vista,Windows 7系统能够在蓝屏发生时即时生成MEMORY. DMP文件(通过设置注册表项 HKEY_L0CAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl\DedicatedDumpFile,类型REG_SZ,值指定目录文件名例如d:\MEM0RY. DMP);同时也能够支持重启后通过savedump. exe生成的MEMORY. DMP文件。
现有驱动测试方法大部分操作是人工进行,遇到驱动bug造成系统蓝屏,对于Windows XP和Windows Server 2003重启系统进入安全模式,该操作是为了系统生成MEMORY. DMP 文件,Windows Vista、Windows Server 2008、Windows7 系统不需要该操作,Windows Vista、Windows Server 2008、Windows 7 系统能够在蓝屏时生成 MEMORY. DMP 文件。利用Window PE系统盘重启系统,进入系统获取MEMORY. DMP文件。上述系统的重启及文件的获取均需要人工进行,因而该方法需要大量的手工操作,花费相当长的时间等待系统启动,并需要操作者具备一定的操作系统知识。

发明内容
为了克服现有测试系统的不足,在此我们的关注点是通过驱动自动化测试程序,从而在运行过程遇到操作系统蓝屏时,如何保证自动化测试程序能自动获取系统蓝屏后的MEMORY. DMP,以实现不需人工介入的完全的软件自动化测试模拟。本发明提出了一种程序测试的方法,其包括初始化步骤、内存转储文件获取步骤和程序结束步骤。本发明还提出一种程序测试的装置,其包括初始化模块、内存转储文件获取模块和程序结束模块。通过该方法,使得测试程序运行过程遇到操作系统蓝屏时,自动识别蓝屏状态,自动获取系统蓝屏后的MEMORY. DMP,完全脱离人工监控,以实现不需人工介入的完全的软件自动化测试。本发明提出的一种系统故障的处理方法,其包括,监控虚拟机中运行的系统是否出现蓝屏;在确认系统出现蓝屏的情况下,通过外部程序结束虚拟机进程;通过预置程序配置虚拟机从外部存储装置启动操作系统,并自动搜寻系统蓝屏的内存转储文件;在找到内存转储文件后,将其备份至指定地址。本发明还提出了一种系统故障的处理装置,其包括,用于监控虚拟机中运行的系统是否出现蓝屏的模块;用于在确认系统出现蓝屏的情况下,通过外部程序结束虚拟机进程的模块;用于通过预置程序配置虚拟机从预设存储装置启动操作系统,并搜寻系统蓝屏的内存转储文件的模块;用于在找到内存转储文件后,将其备份至指定地址的模块。根据本发明提供的具体实施例,本发明公开了以下技术效果通过本发明,在系统蓝屏时,能够自动捕获系统蓝屏后的memory信息,从而能够大大节省人工收集时间。通过本发明提出的方法,可以完全自动提取MEMORY. DMP,非常适用于进行自动化测试相关的一系列工作。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的系统故障的处理方法的流程图;图2为本发明实施例提供的系统故障的处理方法的另一流程图;图3为本发明实施例提供的系统故障的处理装置结构图;
图4为本发明实施例提供的内存转储文件获取模块结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。本发明所提出的系统故障的处理方法包括初始化环境准备阶段、调试程序自动获取阶段和程序结束状态三个阶段,下面将参照图I和图2针对这三个阶段分别进行详细描述。首先是初始化环境准备阶段,用于对运行环境进行初始化设置,以方便后续自动化测试程序的自动运行及内存转储文件的自动获取,具体包括如下步骤A、打开虚拟机,在虚拟机上运行Windows操作系统,通过vmx虚拟机配置文件选择不同的操作系统,实施时涉及系统包括Windows XP、Windows Server 2003、WindowsVista、Windows Server 2008、Windows 7 以及各种 sp 版本。B、通过命令行配置Verifier,设置需要开启项。C、配置系统蓝屏后行为,具体包括如下步骤i、运行窗口输入control sysdm. cpl,启动系统属性窗口;ii、单击高级- >设置,打开启动和故障恢复窗口 ;iii、取消自动重新启动;iv、设置写入调试信息->完全内存转储,通过此设置用于获取full dump即蓝屏时获取完整的蓝屏调试信息;V、设置转储文件路径,例如使用路径d: \MEM0RY. DMP ;vi、取消覆盖任何现有文件,这是为了保留每次蓝屏后的MEMORY. DMP。D、若系统为 Windows XP 或 Windows Server 2003,需在执行前设置 boot, ini,启动项加参数/safe。至此我们的环境准备工作完成。在完成环境准备工作后,下一步进入调试程序自动获取阶段,该阶段用于监控系统是否出现蓝屏,在判断系统出现蓝屏的情况下,结束虚拟机进程,然后配置虚拟机从预定存储装置,例如虚拟光盘启动,在重启虚拟机并进入系统后,自动搜索系统蓝屏的内存转储文件,并将内存转储文件保存到初始化准备阶段所指定的路径,具体包括如下步骤。E、若驱动异常,虚拟机中的系统会出现蓝屏,通过外部程序监控虚拟机中系统的蓝屏,具体实施为周期性的截取屏幕,通过像素识别是否为蓝色来判断蓝屏。具体操作为通过Windows API的printwindow实现后台截图的方式捕获对应虚拟机的屏幕特性,Windows系统蓝屏后的屏幕尺寸会固定在某一尺寸,例如640*480,同时屏幕上像素颜色只会存在白色和蓝色两种,具体的是RGB色的(O,O,O)和(O,O,131)两种颜色,只要能够在足够的时间片内保持图片不变,同时,此图片中只有上述白蓝两种颜色,即可鉴别是系统蓝屏状态。在上述屏幕截取的频率过高和截图的尺寸过大均会影响程序的性能,因此,可以根据实际情况选择合适的屏幕截取频率和截图尺寸,以提高性能。F、若系统为Windows XP或Windows Server 2003,通过外部程序控制重启虚拟机中系统,图2给出了这种情况下的流程图。由于初始化时已经预设了以安全模式重启,因此系统将进入安全模式,在此过程中生成了所需的MEMORY. DMP文件;而对于Windows Vista、Windows Server 2008、Windows 7系统来说无需进行此重启操作,这些系统在出现蓝屏时就生成了所需的MEMORY. DMP文件,图I所示的流程图对应于这种情况。G、外部程序kill虚拟机进程来强制关闭虚拟机,通过预置程序修改虚拟机配置文件,例如Windows XP Professional, vmx,来配置虚拟机从虚拟光盘启动,虚拟光盘中可以是Windows PE系统,也可以是能够进系统自动执行指定程序的其他各种系统。重启虚拟机,虚拟机进入Windows PE系统,通过外部程序自动搜寻系统蓝屏的MEMORY. DMP文件,找到后,通过网络或本地备份到指定地址。同时通知外部程序将运行的虚拟机结束掉。H、其中Windows PE系统的iso镜像需要进行特殊处理,通过替换掉操作系统中注册表实现开机后WinPE系统自动启动我们指定的拷贝MEMORY. DMP文件功能,具体方法描述如下i、使用 UltraISO 打开 winPE. iso。ii、提取文件minipe\winpe. is_文件,此文件是一个· cab压缩包,重命名winpe.is_为winpe. is_. cab,使用WinRAR之类的压缩软件解压,获得WinPE. ISO,同样解压WinPE. ISO。iii、通过计算机regedit. exe加载software文件,重定义“ I”节点,这时我们就能看到software文件中的内容,这个文件就是一个hive文件及WinPE系统的注册表,修改HKEY_LOCAL_MACHINE\l\Microsoft\ffindows\CurrentVersion\Run,添加自定义的启动运行项d: \auto. bat,即实现WinPE系统启动后自动启动d: \auto. bat的功能。iv、保存新的software文件重新打包winpe. iso,同时将新的winpe. iso通过makecab命令打包成winpe. iso. cab,重命名为winpe. is_,替换掉步骤ii中同名文件,新的WinPE系统制作完成。在完成上述自动化测试执行阶段,最后进入程序结束状态。在该阶段,外部程序关闭虚拟机。由于上述自动化测试程序应用于多种系统,包括Windows XP> Windows Server 2003、Windows Vista、Windows Server2008> Windows 7 以及各种sp版本,每种系统的蓝屏能够通过这一自动化测试方法一次运行完同时统计蓝屏bug,通过这一方法备份蓝屏后的MEMORY. DMP文件将能够用于之后的bug跟踪以及重现。本发明可以保证自动化测试程序在模拟Windows下的真实用户行为由于某种原 因(程序或者驱动兼容性问题)导致系统蓝屏时,能够自动捕获系统蓝屏后的memory信息,从而能够大大节省人工收集时间。当驱动级别的bug造成的系统蓝屏如果是硬件原因造成的,将无法进行系统重启,无法获取MEMORY. DMP,通过本发明提出的方法,可以完全自动提取MEMORY. DMP,非常适用于进行自动化测试相关的一系列工作。
同时这一测试方法也能够适用于任何的自动化执行的部署中,通过配置,指定相关的测试程序在对应的虚拟机系统中执行,如果期间遭遇蓝屏等问题,本发明的测试方法,能够立即捕获到,同时收集下来当时的MEMORY. DMP已经蓝屏时的屏幕图片。后续自动化的测试工作也不会因为蓝屏问题阻塞。本发明还提供了一种系统故障的处理装置,如图3所示。该装置包括初始化模块10、内存转储文件获取模块20以及程序结束模块30。其中,初始化装置,用于对运行环境进行初始化设置,以方便后续自动化测试程序的自动运行及内存转储文件的自动获取。参见图4,内存转储文件模块包括用于监控虚拟机中运行的系统是否出现蓝屏的模块22 ;用于在确认系统出现蓝屏的情况下,通过外部程序结束虚拟机进程的模块24 ;用于通过预置程序配置虚拟机从预设存储装置启动操作系统,并搜寻系统蓝屏的内存转储文件的模块26 ;用于在找到内存转储文件后,将其备份至指定地址的模块28。结束装置,用于结束虚拟机。相关驱动文件的自动化测试极大的缩短了驱动测试的测试&回归时间,同时也非常适用于进行无人值守的自动化测试监控流程。通过这一方法能够保证系统运行过程中蓝屏的实时捕获,在实际应用中,能够将此方法应用于在服务器中,实现多系统并行执行,在最短的时间内执行完指定的各种操作系统的自动化执行用例,实现快速的自动化回归过程。同时每种系统的单独蓝屏行为都会被记录下来,提供给开发分析错误原因。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件和必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。以上对本发明所提供的系统故障的处理方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种系统故障的处理方法,其包括如下步骤, 监控虚拟机中运行的系统是否出现蓝屏; 在确认系统出现蓝屏的情况下,通过外部程序结束虚拟机进程; 通过预置程序配置虚拟机从预设存储装置启动操作系统,并搜寻系统蓝屏的内存转储文件; 在找到内存转储文件后,将其备份至指定地址。
2.根据权利要求I所述的方法,其特征在干, 在通过外部程序结束虚拟机进程之前,重启虚拟机中的系统。
3.根据权利要求I或2所述的方法,其特征在干, 所述监控虚拟机中运行的系统是否出现蓝屏的步骤包括周期性的截取屏幕,通过对截取图像进行像素识别来判断是否为蓝屏。
4.根据权利要求I或2所述的方法,其特征在干, 所述配置虚拟机从预设存储装置启动操作系统为通过修改注册表的方式来实现。
5.根据权利要求I或2所述的方法,其特征在干, 所述方法用于程序的测试。
6.一种系统故障的处理装置,其包括, 用于监控虚拟机中运行的系统是否出现蓝屏的模块; 用于在确认系统出现蓝屏的情况下,通过外部程序结束虚拟机进程的模块; 用于通过预置程序配置虚拟机从预设存储装置启动操作系统,并搜寻系统蓝屏的内存转储文件的模块; 用于在找到内存转储文件后,将其备份至指定地址的模块。
7.根据权利要求6所述的装置,其特征在于还包括, 用于在通过外部程序结束虚拟机进程之前,重启虚拟机中系统的模块。
8.根据权利要求6或7所述的装置,其特征在干, 所述用于监控虚拟机中运行的系统是否出现蓝屏的模块还包括用于周期性的截取屏幕,通过对截取图像进行像素识别来判断是否为蓝屏的模块。
9.根据权利要求6或7所述的装置,其特征在干, 所述配置虚拟机从预设存储装置启动操作系统为通过修改注册表的方式来实现。
10.根据权利要求6或7所述的装置,其特征在干, 所述装置用于程序的测试。
11.ー种程序测试方法,其包括如下步骤, 初始化步骤,用于对运行环境执行初始化设置; 内存转储文件获取步骤,用于执行权利要求I至4中之一所述的方法; 程序结束步骤,用于关闭虚拟机。
12.—种程序测试装置,其包括 初始化模块,用于对运行环境执行初始化设置; 内存转储文件获取模块,其包括权利要求6至9中之一所述的装置; 程序结束模块,用于关闭虚拟机。
全文摘要
本发明公开了一种系统故障的处理方法,其包括,监控虚拟机中运行的系统是否出现蓝屏,在确认系统出现蓝屏的情况下,通过外部程序结束虚拟机进程,通过预置程序配置虚拟机从外部存储装置启动操作系统,并自动搜寻系统蓝屏的内存转储文件,在找到内存转储文件后,将其备份至指定地址。将该方法用于程序的测试,通过该方法能够实现驱动和程序的自动化测试,有效提高测试的效率。
文档编号G06F11/36GK102637144SQ20121009306
公开日2012年8月15日 申请日期2012年3月31日 优先权日2012年3月31日
发明者张 杰 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1