【软件测试从入门到放弃】入门阶段:迈入软件测试大门

【软件测试从入门到放弃】入门阶段:迈入软件测试大门

1.2 软件生命周期

1 基本概念

软件的生命周期,又称软件的生存周期。它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段。

每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产处高质量的软件。

2 生命周期流程

【软件测试从入门到放弃】入门阶段:迈入软件测试大门

1.3 软件开发模型

1 基本概念

由于项目、需求的模式不同,所以在软件生命周期过程中选择的软件开发模型也会有所不同,在历史上,软件开发模型经历了“边做边改”、瀑布、原型、螺旋、敏捷等模式的变更。

2 各模型

1)瀑布模型

流程:计划 -> 需求分析 -> 设计 -> 编码 -> 测试 -> 运行维护

特点:

(1)软件开发的各项活动严格按照线性方式进行

(2)当前活动接受上一项活动的工作结果

(3)当前活动的工作结果需要进行验证

缺点:

(1)由于开发模型是线性的,增加了开发的风险

(2)早期的错误可能要等到开发后期的阶段才能发现

2)原型模型

流程:客户与开发公司紧密联系,开发周期长。开发会受到需求变更的影响。(重点在需求,边开发边改)

特点:

(1)实现客户与系统的交互

(2)进一步细化待开发软件需求

(3)开发人员可以确定客户的真正需求是什么

3)螺旋模型

流程:制定计划 -> 风险分析 -> 实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试) -> 客户评估

特点:

(1)螺旋模型是将瀑布模型与快速原型模型结合起来

(2)强调了其他模型所忽视的风险分析

(3)每一次螺旋包括4个步骤:制定计划、风险分析、实施工程、客户评估

缺点:

(1)强调风险分析,但要求许多客户接受并相信这种分析,是不容易的。

4)敏捷模型

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。以人为本,每个阶段沟通多,重沟通,少文档,增加效率。

特点:

(1)短周期开发

(2)增量开发

(3)由程序员和测试人员编写的自动化测试来监控开发进度

(4)通过口头沟通、测试和源代码来交流系统的结构和意图

(5)编写代码之前先写测试代码,也叫做测试先行(测试先行)

缺点:

(1)团队的组建较难,人员素质要求较高

(2)对测试员要求完全掌握各种脚本语言编程,能执行单元测试、自动化测试

3 阿里系开发模型变迁史

【软件测试从入门到放弃】入门阶段:迈入软件测试大门 【软件测试从入门到放弃】入门阶段:迈入软件测试大门
瀑布模型将软件生命周期划分为计划、分析、设计、编码、测试和维护六个阶段,由于早期的错误可能要等到开发后期的测试阶段才能发现,所以可能带来严重的后果。

V模型基于瀑布模型后期才能发现错、改错的缺点进行改进,在软件开发时开发活动和测试活动几乎同时开始,这两个并行的动态的过程就会极大的减少bug和error出现的几率。

2 W模型

【软件测试从入门到放弃】入门阶段:迈入软件测试大门
4 各模型总结

V模型:各流程环环相扣。测试在编码最后测试,前期开发错误,后期不容易更改

W模型:测试过程伴随整个开发周期,测试与开发同步执行

H模型:测试活动完全独立出来,贯穿整个开发周期,尽早准备尽早执行,某个阶段能测试就测试

X模型:分块化,探索式的测试

2.4 软件测试覆盖率

1 定义及特点

定义:覆盖率是用来度量测试完整性的一个手段,同时也是测试技术有效性的一个度量。

特点:

1)通过覆盖率数据,可以检测我们的测试是否充分

2)分析出测试的弱点在哪方面

3)指导我们设计能够增加覆盖率的测试用例,有效提高测试质量,但是测试用例设计不能一味追求覆盖率,因为测试成本随覆盖率的增加而增加

4)覆盖率的审核:抽样验收

2 黑盒测试的覆盖率

分为两个方面:需求覆盖和用例覆盖

黑盒测试

  • 用例覆盖:针对测试人员

  • 需求覆盖:针对测试人员、产品方

白盒测试:针对开发人员

1)需求覆盖

定义:它表示在测试中,有哪些函数被测试到了,其被测试到的频率有多大,这些函数在系统所有函数中占的比例有多大。通过设计一定的测试用例,要求每个需求点都被测试到。

计算公式:

2)用例覆盖

定义:主要体现在我们每轮测试验证通过的用例数在总用例中的比重

计算公式:

3 测试覆盖率的应用

1)简单的测试覆盖率

  • 定义:。此时覆盖率统计建立在认为总用例数编写全面,一般对于大型系统测试要求覆盖率100%
  • 覆盖率审核:抽样验收

2)基于产品的测试覆盖率

  • 定义:。以产品、需求维度统计,无论大型项目或是小需求迭代都要求覆盖率达到100%
  • 覆盖率审核:抽样验收

3)基于白盒的测试覆盖率

  • 定义:大多工具判断语句覆盖,即:。更多考察研发人员;更多时候要求覆盖率达到80%。
  • 缺陷:覆盖率数据只能代表测试过哪些代码,不能代表是否测试好这些代码;容易遗漏逻辑、判断等场景

4)基于自动化的测试覆盖率

  • 定义:
  • 特点:80/20原则。比如:用户80%的时间在使用20%的功能,20%的功能就可以支撑起用户最关键的业务场景,自动化测试的用例选择更着重于这20%的核心功能
  • 用途:自动化测试更着重于回归验证,没必要追求过高的覆盖率,而要考虑用例设计

5)测试覆盖率的最终意义

应用最多的地方在:测试停止标准

单纯讨论测试覆盖率,在瀑布式开发模型中并不重要,但在螺旋式、敏捷开发模型中,由于不断迭代累加,很难确定哪些模块在开发过程中没有给予足够的测试

短迭代、DevOps中,更强调单元测试覆盖率来评估不断增加的代码数量

三、综合知识

3.1 测试团队组织架构

分为金字塔管理模式、矩阵化管理模式

【软件测试从入门到放弃】入门阶段:迈入软件测试大门

3.2 测试人员知识体系

【软件测试从入门到放弃】入门阶段:迈入软件测试大门

3.3 测试原则及规范

1 测试原则

原则1:所有测试都应追溯到用户需求

产品缺陷的80%以上是在产品开发过程中的需求定义阶段引入的,如果需求得到了准确的验证,则可以消除80%的返工问题,节省总项目投入费用的45%。

原则2:尽早启动测试工作

【软件测试从入门到放弃】入门阶段:迈入软件测试大门 【软件测试从入门到放弃】入门阶段:迈入软件测试大门
ISO9000系列标准的基本思想,最主要的有两条:

一是控制的思想,即:对产品形成的全过程,从采购原材料、加工制造到最终产品的销售、售后服务进行控制

二是预防的思想,通过对产品形成的全过程进行控制以及建立并有效运行自我完善机制达到预防不合格,从根本上减少或消除不合格产品

2)CMM

CMM准确来说不是标准,只是对过程能力的评估结果。CMM对软件企业的评估从初始级开始,共分为5级,一级一级的改进,一级一级的向上提高。等级的上升过程是一个动态渐进的过程

CMM是专为软件开发组织设计的,侧重于软件开发和改进的过程,在产品的设计和开发的细节做了较多的要求。

来源:你是猪猪猪儿虫

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

上一篇 2020年4月22日
下一篇 2020年4月22日

相关推荐