脚本化测试不一定是一个好的测试实践
作者:网络转载 发布时间:[ 2012/1/30 9:48:26 ] 推荐标签:
脚本化测试指的是传统意义上的包含完整测试生命周期的测试,例如:国际软件测试认证委员会(InternationalSoftware Testing Qualifications Board,缩写为ISTQB)提出的包含五个测试阶段的测试生命周期(测试计划和控制、测试分析和设计、测试实现和执行、评估出口准则和报告,以及测试结束活动)。脚本化测试在测试前期预先设计测试用例,并指定相应的测试规程,然后按照测试规程执行测试用例,将测试得到的测试结果和期望结果进行比较,以此判断测试对象是否满足预先定义的要求。
从上面的脚本化测试定义中可以看出,脚本化测试将更多更高认知水平的工作放在了测试设计阶段,而不是测试执行阶段。因此,在测试生命周期的早期,脚本化测试需要测试人员投入大量的时间和工作量,进行测试用例设计工作。脚本化测试的主要优点体现在:
● 在脚本化测试的早期,测试人员通过设计测试用例,可以对软件开发工作产品,如需求规格说明等进行详细的评审,并且对测试的内容进行深入的思考,从而优化测试用例;
● 测试人员设计的测试用例规格说明,可以得到项目其他相关人员的评审,从而可以提高测试用例的质量和覆盖率;
● 评审之后的测试用例可以在后续的测试过程中不断的重用;
● 如果设计得到的测试用例集是完整和完备的,那么它们可作为评估测试覆盖率的度量;
尽管脚本化测试具备前面描述的优点,但是其存在的不足和问题,也随着测试对象越来越庞大和复杂而暴露出来。测试的主要目的是获取测试对象的各种质量信息。但是不同的项目利益相关者对同样的产品,判断其质量的角度是不一样的。因此,假如不同的利益相关者需要在不同的时间阶段,获取不同的质量信息以实现不同的测试目的,那么传统固化的脚本化测试是很难满足要求的。单一的脚本化测试面临问题和挑战主要包括:
1)环境驱动的测试(Context-Driven Testing)
测试并不是一种孤立的活动,它和整个测试过程中的各种因素息息相关,即测试需要考虑各种环境因素,仅仅基于产品本身进行的测试设计和执行是远远不够的。环境驱动的测试中需要考虑的环境因素包括但不局限于:
● 测试过程中各种条件的限制。针对测试对象进行完全测试是不可能的;项目的时间和资金是有限的;测试人员的测试能力是有限的;
● 测试的主要利益相关者。例如:单元测试中,开发人员是测试人员需要考虑的主要利益相关者;验收测试中,客户和终的用户是测试人员需要面对的利益相关者;
● 测试的主要目的。例如:单元测试过程中发现测试对象中的缺陷和错误是测试的主要目的之一,而在验收测试中,验证测试对象可以正确工作是其主要目的,从而给客户使用产品提供足够的信心;
● 测试对象需要满足的主要质量特性。例如:客户关注的是产品的易用性、稳定性还是可靠性,不同的产品以及不同的利益相关者,对质量特性的要求是不一样的;
● 测试团队掌握的测试技能。例如:测试人员是否熟练掌握了静态测试方法(评审、静态分析等)、对经典测试技术的掌握情况等;
● 测试相关的时间和资源的有效性。例如:整个测试的持续时间是否满足测试进度的要求,测试资源是否充足,测试仪表和测试人员是否满足测试的要求等;
● 产品或者服务的对象。例如:测试对象要实现的功能、它的主要客户等;
● 导致产品失效的原因以及产品失效导致的后果。
● 测试过程中系统行为的多样性。例如:系统性能的变化;
前面描述了测试过程中需要考虑的各种环境因素,这些因素会随着项目的不同、产品的不同、组织结构的不同、测试人员的不同而发生变化。而脚本化测试将更高认知水平的活动放在了测试设计上面,其输出的测试用例规格说明等文档是相对固定的,因此,很难对测试过程中环境因素的变化进行及时的跟踪和更新。

sales@spasvo.com