醒醒吧,不要再这样误解软件测试啦

醒醒吧,不要再这样误解软件测试啦


随着软件测试对提高软件质量重要性的不断提高,软件测试也不断受到重视。但是,国内软件测试过程的不规范,重视开发和轻视测试的现象依旧存在。因此,对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识,这将会进一步的影响软件测试活动的开展,并且阻碍软件测试质量的提高。下面简单列举了几种有代表性的对软件测试的认识误区,并作了相应的分析和解释。


误区1:软件开发完成后才进行测试

  在传统的瀑布模型中,软件项目主要有一下几个阶段组成:用户需求、需求分析、概要设计、详细设计、编码和实现、测试以及运行维护。由于软件测试仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。因此人们一般认为,软件测试只是软件编码后的一个阶段。

  但随着软件测试业的发展,人们越来越认识到,软件测试不应只是软件项目的收尾工作,而应该在软件生命周期的每一阶段中都包含测试。软件测试是贯穿于整个软件开发生命周期的过程活动,包括软件测试计划、软件测试需求分析、软件测试用例设计、软件测试执行、软件缺陷管理、软件测试风险管理以及其他的一些软件测试相关的活动等等组成。在软件项目的每个阶段,都需要进行不同目的和不同内容的测试活动,以保证各个阶段工作产品输出的正确性。软件测试的对象也不仅仅是软件代码,还包括软件需求文档和设计文档等其他所有的软件工作产品。软件开发与软件测试之间应该是交互进行的,比如单元编码之后需要进行单元测试,模块组合之后进行集成测试。

  如果等到软件编码结束之后才进行测试,测试的时间很有限,很难达到测试的覆盖率要求和测试的质量要求。同时,假如在项目开发的后期,发现一些软件需求阶段和概要设计阶段的错误和问题,修改这些缺陷导致的成本将是非常高的。有资料表明:平均而言,如果在需求阶段修正一个错误的代价是1,那么,在设计阶段就是它的3-6倍,在编程阶段是它的10倍,在内部测试阶段是它的20-40倍,在外部测试阶段是它的30-70倍,而到了产品发布出去,这个数字就是40-1000倍。修正错误的代价不是随着时间线性增长的,而几乎是呈指数增长的。因此,应尽早地不断地进行软件测试,发现错误并加以修正,而非软件开发结束后才进行测试。

误区2:测试人员不需要具备很高的技能

  不少软件业人士认为软件测试行业对软件测试人员的技能要求不高。认为测试只是对照产品规格书操作软件,发现软件与规格说明不一致的地方,是没有技术含量的工作。

  这种观点是错误的。测试不仅仅是运行软件发现缺陷的一个过程,而是从项目早期,测试人员就开始介入,进行测试需求分析、计划测试等。这要求测试人员有很好的沟通能力、理解能力、分析问题能力,同时还必须对产品开发技术有一定的了解。

  软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具、新流程、新测试设计方法都在不断更新,需要掌握和学习很多测试知识。所以,具有编程经验的程序员不一定是一名优秀的测试人员。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实践经验和测试理论知识,需要我们不断的学习。

误区3:测试是测试人员的工作,和开发人员无关

  我们提倡软件测试尽早介入软件项目,或者说我们提倡贯穿于整个软件开发生命周期的测试。因此,在项目概念、需求和设计阶段,软件测试就应该介入项目中去。开发和测试是相辅相成的过程,需要软件测试人员和程序员、系统分析员等项目其他成员保持密切的联系,需要更多的交流和协调,以便提高测试效率。在这些阶段所发现的问题将有助于开发设计人员完善需求和设计。

  在项目开发过程中,一般由开发人员针对模块进行白盒测试,这是早期的测试。后期对于测试人员所发现的缺陷,开发人员应根据优先级来进行修复,针对开发人员的修改,测试人员还要进行再测试和回归测试工作。因此,在整个项目过程当中,测试也不仅仅是测试人员的事情,而是测试人员和开发人员紧密合作的过程。

误区4:过分依赖Beta测试(用户测试)

Beta测试似乎更能代表用户使用的测试用例——因为是用户使用的。同时,用户报告的缺陷通常是用户最在乎的缺陷,但是,存在以下几个问题:

  • 用户可能不具有代表性;

  • 即使对于那些实际使用产品的用户来说,绝大部分不会严肃地使用产品

  • Beta用户不会及时地报告可用性方面的问题,他们会私下决定不适用这个产品

  • Beta用户经常不报告缺陷,尤其在不确定或者认为很明显,别人也会发现时;

  • Beta用户报告的缺陷经常是很简单,甚至是不准确的,你需要花费很长的时间处理一个用户缺陷

误区5:关注于测试的执行而忽略了测试的设计

如果不关注测试设计,可能会遗漏很多特殊的用例,而这些用例往往也是开发人员没有考虑到的。因此一个好的测试必然时经过良好计划和良好设计的,不经过计划和设计的测试是不可控的,无序的。

误区6:自动化测试效率高,将取代软件手工测试

测试自动化可以提高测试效率,但不能提高测试的质量。由于自动化需求要花费成本,因此只有那些经常需要执行的用例其自动化才能有效果。而且不是所有测试都可以或需要自动化的。当自动化到一定比例的时候,再提高自动化的成本将变得非常昂贵。业界有一个2/8原则,同样适用于测试自动化,即花费20%的工作量可以完成80%的自动化工作,如果要完成其余的20%自动化,那么还需要再投入80%的成本

误区7:测试是为了证明软件的正确性

测试无法证明软件是正确的,只能证明软件无法按照既定的规格和标准执行。测试的目的是尽可能的发现错误

误区8:测试是枯燥乏味,缺乏创造力的工作

这在于站在什么角度上看测试。一个好的测试需要经过计划,设计到执行。为了设计好的测试用例,你需要充分发挥你的想象力。对于一个缺乏想象力的测试人员来说,你可以胜任测试执行的工作,但是却无法设计出高质量的测试用例。无论你从事开发还是测试,都应当从工作中去寻找乐趣,不断地改进和完善自己。

醒醒吧,不要再这样误解软件测试啦

原文链接

如需转载该篇文章,请注明来自“搜狗测试”

来源:搜狗测试专栏

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年3月20日
下一篇 2015年3月20日

相关推荐