提高测试效率的途径

发表于:2010-11-17 10:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  1、提高测试效率的基本思路

  提高测试效率的方法有两个:"节","挖"。"节"就是利用工具尽可能减少测试时间,"挖"就是挖掘编码工作和调试工作中的效率潜力,编码、调试与单元测试具有紧密的关系,利用单元测试工具可以提高编码和调试效率,从而抵消部分或全部测试时间。

  2、减少测试时间

  要减少测试时间,首先要弄清楚哪些环节消耗时间最多,然后才能对症下药。单元测试最耗时的环节有:编写测试代码、建立测试用例、找出遗漏用例。

  测试代码具有很多固定的内容,例如都要建立和销毁被测试对象,执行被测试程序等,这些代码完全可以由工具自动生成,测试人员只要设定测试用例的输入输出就行了。

  如果测试用例也由工具自动生成当然最省时,可惜这是不现实的,因为测试工具不能自动了解程序的功能,只能依靠参数的数据类型之类的信息生成测试用例,生成的用例和实际需要往往相差很远。用工具自动生成大量测试用例然后手工修改怎么样?听起来不错,但用起来效率不高,因为很多输入输出是比较复杂的,必须由人工补充一些代码,如果预先生成大量用例,那么每个用例都是在相同的起点上修改,效率并不高。如果工具只生成第一个测试用例,由用户完善后,再用拷贝并修改的办法建立其他用例,那么就可以充分利用已完善的用例,如果每次都选择拷贝近似的用例,通常只需要修改一两个数据就能建立新的用例。

  找出遗漏用例是一个大难题,多数单元测试工具都只能统计出覆盖率,但是未覆盖的往往是最难的,要提高覆盖率往往成本很高,解决这个问题对提高测试完整性,降低测试成本具有极其重要的意义。这里提出一个新的思路:在运行现有的测试用例后,针对某一未覆盖的逻辑单位,由测试工具从现有的用例中计算出可以覆盖该逻辑单位的近似用例,再提供一些提示,由用户根据提示进行修改,从而获得预期的测试用例。这里说的近似用例是指需修改的数据最少,数值的差异也最小,例如,程序涉及到三个参数,那么近似用例大概只需要改一个参数就行,如果有多个用例可供选择,那么就选择数值改动幅度最小的。这个思路涉及到复杂的技术,这里就不详述了。

  3、提高编码效率

  编程的主要时间消耗不在于敲键盘,而在于编程思路和调试。这里说的编码,主要是指编写有一定复杂度的函数,即局部代码的实现,这是单元测试的重点,也是编码阶段最主要的工作。

  程序员通常是在了解程序需实现的功能,并有了大概思路后即开始编码,而不是先将所有细节都想清楚。编码时也很难一气呵成,一般来说,写几行,就要编译调试一下,输出一些数据,看看已经写的对不对,再想下一步要怎么写,也就是说,要不断地了解已经编写的程序的行为,不断整理和完善编程思路。如果测试工具可以自动地描述程序行为,就可以帮助程序员更快捷地整理和完善编程思路,从而提高编码效率。

  程序行为是什么?无非就是三点:输入是什么?执行了哪些代码?输出又是什么?在测试结果中显示输入输出数据,及标示出所执行的代码,是完全可以做到的,对于较复杂的程序而言,这种功能可以成倍地提高编码效率。

  4、使用测试代码调试

  调试是开发过程中无可逃避的工作,调试时必需执行程序,如何执行?一般由别的代码来调用,也就是说需要驱动,驱动大致可分为自然驱动和专门驱动。

  自然驱动:利用项目中已有的代码作为驱动,通常是在被调试的函数中加断点,从界面执行一个需要调用该函数的功能,调试器中断时就可以调试了;专门驱动:为需要调试的函数编写专门的驱动代码,通过执行驱动代码来执行被调试函数。

  自然驱动的主要优点是不需要其他工作就可以直接调试,甚至感觉不到需要驱动,主要缺点是输入数据通常是公共的,即很多代码都使用相同的输入源进行调试,实际输入往往是经过其他代码处理后的中间结果,要针对各种可能输入都进行调试往往很困难,造成调试不全面,程序员的思维受到局限,难于做到全面地考虑各种可能输入。

  专门驱动的主要优点是输入数据是专门针对于被测试程序,容易做到比较全面,程序员的思维也会比较全面,对编写功能齐全的健壮的程序很有好处,要针对某种特定输入进行调试比较容易,缺点是需要花费大量的时间来编写驱动代码。

  调试也需要"驱动"和"输入数据",也需要执行程序,这与测试是一样的,因此,我们可以利用测试代码来调试,既避免了自然驱动的缺点,又无需编写专门的调试驱动代码。

  5、减少调试工作

  如果边编码边测试,则只有在测试失败时才可能需要调试,从而大量减少调试工作。另一方面,如果测试工具具有描述程序行为的功能,即显示输入输出数据,及标示出所执行的代码,那么,当程序有错时,浏览输入输出数据和所执行的代码,通常都能快速发现错误原因,从而进一步减少单步调试。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • msw_cn
    2010-11-17 16:15:09

    请在标题上补上‘单元’两个字

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号