利用交叉测试提升软件测试效率

发表于:2010-1-27 13:03

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

 作者:丁志义    来源:51Testing软件测试网原创

  摘要:软件测试员长期重复测试同一功能或项目,会出现审丑疲劳,工作效率下降。而交叉测试是提高测试效率,更早更多发现软件缺陷的手段之一。本文就交叉测试意义、如何设计交叉测试、交叉测试使用时点以及交叉测试效果等展开论述,数据表明在正确阶段引入交叉测试可提升软件测试效率,提高软件发版质量。

  关键词:交叉测试  软件测试 效率

  一、交叉测试意义

  一个人长时间干同一件事情,会出现疲劳和厌烦,会丧失激情,甚至不思进取。而软件测试工作一个突出特点就是不断重复枯燥、冗长的测试,所以测试人员在长时间进行同一个模块或同一个功能测试是也及易产生疲劳,发现缺陷迟钝。由于疲劳导致的精力不集中,很容易略过一些重要的测试环节,甚至面对显然的错误也"视而不见",这是"审丑疲劳"。

  同时,在软件开发测试过程中,尤其是对同一产品,同一组开发人员和同一组测试人员长时间配合,测试人员会在开发人员多次说服和解释下而被同化。测试人员对缺陷的判断力会逐渐降低,很多本来是缺陷的问题,由于测试人员对软件"司空见惯"的使用,会不被当成缺陷。

  还有研究表明,人有定位效应。社会心理学家曾作过一个试验:在召集会议时先让人们自由选择位子,之后到室外休息片刻再进入室内入座,如此五至六次,发现大多数人都选择他们第一次坐过的位子。这种现象称为定位效应,说明人们习惯上凡是自己认定的,人们大都不想轻易改变它。测试人员的定位效应就是测试过的功能不再进行认真测试:在回归测试时,之前由于进行过认真的测试,往往会认为某些功能是可靠,只要验证一些以前发现的缺陷是否修改完成或者进行主要功能流程验证就可以了。这种现象在多次回归时表现的更加突出。而开发人员在修改缺陷时往往又会引入新的缺陷,测试人员的疏于防范不能更多更早地暴露问题,增加产品质量风险。

  测试的主要职责是要在软件发版前尽可能多的发现缺陷,和验证缺陷被修复,保证产品质量。市场要求软件开发节奏越来越快,产品研发周期越来越短,留给测试的时间往往是最容易被压缩挤占的,测试人员数量又不会增加,但发版产品质量必须得到保证。因此只能通过提升测试效率,增加测试产出率,更多更早地暴露和修正软件缺陷来保证产品质量。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/28/n-205128.html

  不是任何时候都可进行交叉测试。当程序的基本功能还没有实现,用户界面还有很多控制问题没有解决,每个测试员每日发现缺陷数量还很多时,不宜进行交叉测试。这个时候各测试员负责测试的模块或功能点功能还不完善,测试员也还没有出现明显的审丑疲劳,开发人员也在忙于修改问题,进行交叉测试没有太大意义。只有当每日发现问题数很少或很均匀时,每个测试员发现的缺陷的趋势稳定甚至下降时,即缺陷数量寥寥不足以开发修改时,可以引入交叉测试。这个时候产品比较稳定,但测试人员经过长时间重复测试,已经出现疲劳懈怠。交叉测试时点要根据当时测试情况和产品稳定状况灵活把握,适时调整,这个时间点一般在联调测试后期,当然也可在进入联调测试前,作为测试工作质量评估而进行交叉抽验。下图给出交叉测试开始时间点示意图:

  三、交叉测试原则

  除了进行交叉测试的时间点要把握好外,交叉测试还要遵守必要的原则。例如不同的测试员对产品功能的熟悉和掌握程度应该相似,或对将要测试的内容有一定的工作基础。因为测试时间的限制,不允许在正常测试阶段再长时间的学习产品功能,因此对下一轮进行测试内容的轮换,应根据各测试员能力状态合理分配对应的交叉功能程序。只有他对要测试的功能要求和操作步骤清楚才能正常展开测试,少走弯路减少时间的浪费。对产品主要功能和流程性测试,轮换的测试内容和功能点应尽量有衔接性,如有上下由业务关系,这样的交叉几乎是无缝的,同时会增加测试员对产品功能系统性掌握。当然如果测试的内容不是按流程来分配,而是独立的测试项目分散的功能点类例外,可以在上轮中测试某个功能点A,而下轮测试功能点B。交叉测试内容应该在设计的周期内完成,然后进入下一个周期内轮动测试。当时间充裕应该进行多次交叉测试,至少保证主要功能流程和每个测试项目被3位不同测试员覆盖测试过。以上原则应该在交叉测试设计中得到体现。

  四、交叉测试设计

  凡事都要有计划,良好的计划是成功的一半。测试也不例外,在软件测试之前要准备和编写完整的测试用例和测试方案,交叉测试方案也应同期给出。在交叉测试方案中应细化交叉功能点或程序或独立的项目。第一轮测试周期起止时间,对应的测试员是谁,该测试员应该对该程序功能最熟悉,大部分问题应该由该测试员发现,第一轮测试完成后该程序功能或项目应该比较稳定,缺陷数量应降低到个数级。也可将从程序的单元验证到进入下一轮抽验这个阶段归为第一轮,因该周期较长,没有明确的开始时间,因此可将下一轮开始时间设置为第一论结束时间,而第一轮开始时间可以为空。第二轮周期中各测试员测试内容遵循上面原则,并和上个周期内容完全不同,时间一般比较短,可以一周作为一个交叉测试周期。该周期内的测试可作为上个周期测试工作质量和工作成绩评估的一种手段。依次进入下个交叉周期。以下为交叉测试设计图例。

  某某产品交叉测试方案:

  ……………………

查看全文请点击下载:http://www.51testing.com/html/28/n-205128.html

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

附作者联系方式:

邮箱:dzy#ufida.com.cn(将#改为@)

QQ:149837554

欢迎交流、分享。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号