互联网软件测试思特沃克学院小小读书会软件测试

《持续交付》 - 测试策略的实现

2017-06-07  本文已影响107人  司鑫

现在很多的项目团队都只是依靠手工的验收测试来验收软件是否满足它的功能需求和非功能需求。他们也知道这样会大大的影响项目的交付质量和进度,但他们依旧会这么做,因为他们可能已经尝试过去写测试,尝试着搭建自动化测试的相关服务,但最终并没能从中获取到很大的好处而且浪费了大量的精力,所以他们宁愿去手动去测试,遇到 bug 了手动去排除并修复。

当然了,这并不是说写测试不好,相反的,写测试是非常重要的,但更重要的是我们必须要认识到相关的测试策略并正确的选用它,从而为自动的项目实现一套合适自身的部署流程线。测试策略的设计目的主要是识别和评估项目风险的优先级,以决定采用哪些行动来缓解风险的一个过程。这也就意味着,写一次测试并不是一劳永逸的,对于一些自动化测试,我们应还需要不断的去维护测试以保证客户需要的功能被正确的实现,在开发功能之前我们就应该将测试写好,一开始就将质量内嵌到自动化测试中,这样我们才能从中获取最大的好处。

一 测试的分类


为了确保交付高质量的应用软件, Brian Marick 对测试进行了相应的建模,他根据两个维度对测试进行了分类:

分类

** 1、业务导向且支持开发过程的测试**

对应的分类

这一象限的测试也叫功能测试或验收测试,目的是为了验收当前开发的功能需求是否被正确的完成,验收测试也可以测试系统特性的各方面,比如功能、容量、易用性和可变性等。一般我们应该在开发一个功能前就把验收测试写好,并采取自动化的形式去验收,提前写验收测试也可以很好的明确功能需求,通过这些测试我们可以知道我们要做哪些功能。

系统的验收测试应该运行在类生产环境,自动化测试的一些特性:

2、技术导向且支持开发过程的测试

对应的分类

这些自动化测试应该单独由开发人员来创建和维护,这一象限的测试可以分为:

3、业务导向且评价项目的测试

对应的分类
这类测试一般需要我们手工测试,目的是为了验证实际交付给用户的应用软件是否符合其期望,包括需求规格说明是否满足以及其正确性。
几种测试的方案:

4、技术导向且评价项目的测试

对应的分类

非功能测试是指除了功能之外的系统及其它方面的质量,比如:容量、可用性、 安全性等。对非功能性的测试也是非常重要的,因为这因素可能会导致很大的潜在风险。 当然非功能性测试所需要的环境也更加苛刻,它需要专业的人员搭建一些特殊的环境来能实现,而且花费的时间也较长,所以非功能性测试的频率会比较低,而且应该在开发的后期去进行测试。

二 测试替身


在自动化测试时测试替身扮演着一个非常重要的角色,比如在单元测试中通过模拟对象来代替系统的一部分,这样就可以大大的提高测试的速度。
测试替身的分类:

三 现实中的情况和对应策略


1、新项目

当我们着手开始一个项目的时候,这也是最容易开始做持续集成的时候,那么毫无疑问最重要的事情应该是先自动化验收测试。我们需要

步骤:

2、正在进行中的项目

对一个正在进行中的项目去做自动化测试相比项目一开始就写测试面临着更大的压力。最好的自动化测试的方式就是选择应用程序中那些最常见最重要的用例开始写测试,让这些测试尽可能覆盖更多的选项,一般覆盖的范围都会宽于用户故事级别的验收测试。

3、遗留的系统

去测试那些你修改的代码就可。前提是你已经搭建好自动化构建流程。

几个概念

上一篇 下一篇

猜你喜欢

热点阅读