细窥VS 2010中的“测试株连分析”(1) - 以测试人员视角

     我在前面的一篇博文中曾经提到VS 2010提供了一种所谓“测试株连分析”的功能,即"Test Impact Analysis"(我们可以把它简写为TIA),利用TIA,开发人员以及测试人员在进行回归测试时,可以很容易地过滤掉大量未受某次代码改动影响的测试,把有限的时间、精力集中于执行确实涉及代码变动的测试,从而避免时间、人力和硬件资源的浪费。今天,我们将通过一个简单的实例——加减乘除计算器,来深入了解一下TIA的功效。

 

     首先,我把从网上找到的一个用C#写的“加减乘除计算器”程序的源码加进了我在TFS 2010服务器上创建的一个团队项目(Team Project)中,接着我又在这个Team Project中定义了一个新的Team Build,在定义这个Team Build时,我特别把其中的Analyze Test Impact这个选项设成了"True"(参考图1)。

 

在定义Team Build时设置"Analyze Test Impact"
图1 在定义Team Build时设置"Analyze Test Impact"

 

     在使用VS 2010中的Team Explorer定义好这个Team Build并成功运行了一次之后,我又通过Microsoft Test Manager 2010创建了一个名为"SimCalc Test Plan"的测试计划。为了突出重点,我把这个测试计划设置为仅使用Test Impact一个诊断数据适配器收集测试数据(参考图2),对“诊断数据适配器”这个概念不熟悉的朋友,可以参考我的另一篇博文

 

在"Test Settings"中仅留下"Test Impact"诊断数据适配器
图2 在"Test Settings"中仅留下"Test Impact"诊断数据适配器

 

     在配置好诊断数据适配器之后,我又给"SimCalc Test Plan"指定了一个待测的Build(参考图3),大家从图3中可以发现,我刚才定义并运行过的Team Build已经为“加减乘除计算器”这个项目生成了一个新的Build并显示在Available builds这个下拉列表里了。

 

给测试计划指定一个待测系统的Build
图3 给测试计划指定一个待测系统的Build

 

     在做好以上必要的准备工作之后,我往"SimCalc Test Plan"这个测试计划中添加了4个测试用例,分别测试计算器的加、减、乘、除四项功能。图4是我添加完4个测试用例后Microsoft Test Manager的界面。

 

"SimCalc Test Plan"测试计划中的4个测试用例
图4 "SimCalc Test Plan"测试计划中的4个测试用例

 

     现在,让我们来执行一下这4个测试用例,在执行测试用例时须注意一点:要待Microsoft Test Runner完全启动之后再打开待测软件(即计算器程序),否则Test Impact诊断数据适配器可能因未完成初始化而无法正常收集数据。

 

     测试的结果是:针对加法、减法、乘法功能的测试成功,而针对除法功能的测试失败,原因是除数为0时程序崩溃(参考图5)。

 

3项测试成功1项测试失败
图5 3项测试成功1项测试失败

 

     现在让我们在Visual Studio中打开“计算器”项目,把与除法相关的代码修改一下,强制除数不能为零,之后把代码签入源码库,随即再运行一次Team Build。Build结束后,回到Microsoft Test Manager,当我们把测试对象改为最新生成的Build后,MTM会基于TIA自动找出涉及刚才代码改动的测试,为我们生成一个“建议测试列表”,即Recommended Tests。此处因为我们仅改动了程序中与除法相关的代码,所以MTM也只给我“推荐”了一个测试,也就是那个针对除法的测试(参考图6)。

 

基于TIA自动生成的建议测试列表
图6 基于TIA自动生成的建议测试列表

 

     看!虽然现在有一个新Build出的计算器程序摆在了我面前,但我已不必象以往那样须要把上面所有4个测试都再跑一遍了,我只须再跑一遍其中那个被“株连”的就齐活了 ;)

 

 

posted on 2010-04-19 23:22  君子不器乎  阅读(1464)  评论(2编辑  收藏  举报

导航