VS2010测试解读-读懂那些文件们

Visual Studio是我喜爱的一个开发IDE,从VS2003开始,到VS2005,再到VS2008,再到最新的VS2010。每一个版本的改进都是让人兴奋的,每一次使用新版本后,哪怕是Beta版,都不愿意再回到老版本。最新发布的VS2010有很多创新的功能,对测试提供了大力的支持。本文就一一解析这些新功能,让大家能够体会到VS2010的创新,具体的感受还要大家在使用过程中仔细感受。 VS2010是一个集成的开发环境(IDE),大部分的操作都能通过界面的操作完成,通常你不需要了解文件的细节。但是读懂这些文件,能帮助你更好的理解整个测试框架,以便使用一些高级的测试功能和做一些自定义的扩展。 首先我们来看看一个典型的解决方案,通常放啊 在这个解决方案里面,我们有以下一些重要的文件和项目: 1)应用程序项目(被测试的应用,开发人员负责) 2)测试项目(测试人员负责) 3)*.testsettings文件; 在VS 2010中,自动产生两个,一个是TraceAndTestImpact.testsettings用于调试的测试设置,另外一个本地缺省的测试设置。VS2008只有本地缺省设置。 多说两句*.testsettings,这是运行测试的环境参数和运行参数,包括以下内容: a) 用例运行前后执行的脚本 b) 是否启用数据分析(代码覆盖率,测试影响分析,模拟网络,录制视频,智能跟踪等等)很多功能都是VS2010独有的, c) 运行机器是本机还是远程机器 d) 测试超时时间等   VS2010 增强了测试监控功能,例如智能跟踪(IntelliTrace)和视频录制(Video Recoder),测试影响分析(Test Impact)等等 4)*.vsmdi文件,用于管理测试用例的列表(Test List). *.vsmdi文件是管理Test List的,在VS 2010中虽然支持,但是不推荐使用了。主要原因是*.vsmdi非常不灵活,很难集中维护。取而代之的是更加自然的测试分类(Test Category):通过给每个测试用例设置标签,运行的时候通过标签选择需要运行的测试用例。 为了兼容问题,VS2010 还是支持*.vsmdi。下面是*.vsmdi的一些基本格式。 其内容基本上包括一个树状内容的Test List 列表,各个节点通过ParentListID相连,其中包括一个特殊根节点。另外,在每个TestList中,一个TestLink代表一个测试用例,TestLink的ID是通过测试方法名,测试类名和包名等,通过MD5计算而得(而非任意值),我以前就写过一个程序,自动生成*.vsmdi文件。 运行测试 写好测试用例就可以运行,Ctrl F5,就这么简单,能够得到测试用例运行的结果。很容易在IDE看到,测试结果,那么如何读懂后面的文件呢? 一次测试运行结果的目录:   我们一步一步来解释。重要的文件有*.trx文件. 在多说两句,运行结果目录。其中有In, Out 和每个TestCase的详细结果。


虚拟化技术在软件测试的应用

1)什么是虚拟化 虚拟化技术很早就提出来了,但是真正走向市场是从2005年以后,那时候AMD和Intel公司都开始推出支持虚拟化技术的CPU。简单的说,虚拟机就像一个软件容器,可以安装操作系统和应用软件,像一台物理机一样运行,其有如下特点。 操作系统和软件无法辨别其主机是否是虚拟机。 多台虚拟机器像应用程序一样可以运行在主机上 2) 虚拟化技术的优势 2.1) 提高硬件的利用率       根据调查数据,通常测试实验室的硬件的使用率是很低的,平均只有10%,通过虚拟化技术可以使利用率提高到80%。 * IDC 的数据中心趋势调查,2007 年。  2.2) 低碳生活 降低数据中心的成本(省电/空间),能源成本降低 80%。大部分机器5-15%时间处于使用状态,而空闲状态耗电量为满负荷60%以上。  2.3) 高管理性 通过虚拟化技术,计算机的管理(虚拟机)的管理变得更加简单,创建、修改一个计算机的操作可以瞬间内完成。这种高管理型有助于推动基础设施服务化(Infrastructure as Service)的发展。目前,有很多云计算的基础设施都是大规模使用了虚拟技术。 大家可能对SaaS都比较熟悉,这里我解释一下IaaS和PaaS。 基础设施作为服务(IaaS):计算机资源通过服务的方式提供出来,包括处理能力,存储和网络能力等等。 平台作为服务(PaaS):平台和工具能通过平台或API方式提供出来,提供更加高层次服务,例如数据库存储服务,J2EE服务,.NET平台等。 3. 虚拟化给软件测试带来的好处 通过虚拟化技术,软件测试可以获得很多好处,以下就是一些例子; 3.1)测试实验室(Test Lab)的建立 空间 时间 电力 如图所示的一个例子:168 台式机,被12个服务器主机代替。省空间,省电,方便管理,大大降低了测试实验室建设的成本。 大部分的测试环境对测试机器的性能要求都不是很高(性能测试除外),那么对于这种情况,虚拟机是非常适合的解决方案。虚拟机可以用于测试实验室(Test Lab)的构建,支持自动化测试,也可以为远程的测试和开发人员提供机器服务。 举例来说,一个网站的测试,需要10个手工测试人员进行,那么我们可以创建10个虚拟计算机,那么只需要1-2个主机就行了,并且支持远程工作,那么这些手工测试人员可以在家里进行工作。 3.2) 软件快速部署和连续集成 虚拟机的管理是非常方便,这大大促进了快速部署(Fast Deployment)和连续集成(Continual Integration)。举例来说,在连续集成的时候,往往需要大量机器,并且快速恢复到某个系统的初始状态。虚拟化技术的高管理性能够很好满足这些需求,同时成本比物理机器要低很多。 3.3)测试用例失败后的调查 在测试用例失败后,通过保存机器状态,可以方便问题的调查。如果使用物理机器,这些机器就需要被占用,一直到问题调查完毕。而且,调查的状态具有不可恢复性。如果使用虚拟化技术,计算机状态可以被保持到到文件;在需要调查问题时,随时可以把虚拟机文件恢复到虚拟机进行调查;同时机器的状态可以随时保存,随时恢复,这给一些不容易重现的问题提供了有利的调查方法。 3.4)虚拟硬件的使用 虚拟化不仅仅可以模拟软件,也可以模拟硬件,包括网卡,光驱,USB接口等等。特别是USB接口的虚拟化,使得在很多USB设备驱动的测试提供了便利。另外一个例子是虚拟光驱,Vista开发出来后,安装以前的方法要制作DVD光盘来进行最后的验证。按照传统的做法,需要180张DVD光盘,需要花2个星期。而使用虚拟化解决方案,制作ISO 映像,只需要2天时间。 4 虚拟化过程中一些好的实践 4.1 仔细设计网络拓扑结构   对于一些对网络特别要求的实验室,需要仔细设计网络Top结构,特别是IP地址的数量…