软件测试的生命周期
一.什么是软件测试
1.广义的软件测试
在一般人的理解中,软件测试活动通常指的是运行软件进行的测试,即狭义的测试。测试的对象除了程序代码之外,还应该包括软件开发各个阶段的工作产品,例如需求文档、设计文档、用户手册等。因此,传统的软件测试定义(主要关注软件运行过程中对软件对象进行的检查和发现不一致的行为)是一个狭义的概念,实际上这只是正式测试过程的一部分。
2.IEEE给出的定义
而IEEE给出了关于软件测试的标准定义:软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验被测软件系统是否满足规定的需求,或是弄清楚被测系统的预期结果与实际结果之间的差别。
二.为什么需要测试
软件测试是软件开发生命周期中关键的质量保证活动之一。实施严格规范的测试有助于发现软件开发过程中不同阶段的缺陷,尽可能在本阶段发现缺陷并予以修改,避免将缺陷带人下一个阶段。缺陷不仅具有雪崩现象(缺陷放大效应),并且发现缺陷越晚,修改缺陷的成本也越高。所以在软件开发过程中,测试应该尽早介入。
软件测试并不止只对功能进行验证,其根本目的是确保软件满足用户需求。可以理解为只要软件系统存在不满足用户的使用需求即存在缺陷,必须解决才能实现软件测试的意义。
三.软件测试的七大基本原则
1.穷尽测试时不可能的
2.测试只能显示缺陷的存在
3.测试应尽早介入
4.缺陷的集群性
5.杀虫剂效应
6.测试活动依赖于测试上下文
7.没有失效不代表系统是可用的
四.软件测试的基本过程
ISTQB定义的软件测试过程

测试计划和控制计划
主要的测试活动分为:
- 执行测试方针和测试指南
- 确定测试范围和风险
- 确定测试目的
- 确定测试方法
- 确定测试资源
- 计划测试的进度
- 确定测试人口/出口准则
- 监控和记录测试进度、测试覆盖率
- 度量和分析测试结果
- 修正测试计划
- 做出决定
测试分析和设计阶段
主要的测试活动分为:
- 评审测试依据
- 评估测试依据和测试对象可测性
- 通过对测试依据和测试对象行为的分析,识别测试需求并确定其优先级
- 设计测试用例并确定优先级
- 确定测试需求和测试用例所需的测试数据
- 规划测试环境的搭建和确定测试需要的基础设施和工具
- List item
测试实现和执行阶段
主要的测试活动分为:
- 创建测试数据
- 编写测试规程说明
- 开发测试自动化脚本
- 根据测试规程说明创建测试套件
- 搭建并验证测试环境
- 执行测试用例,包括手工和自动化执行
- 记录测试执行的过程和结果(测试日志)
- 测试实际结果和期望结果的比较
- 提交缺陷报告
- 确认测试和回归测试
评估出口准则和报告
主要的测试活动分为:
- 将测试状态和测试计划中的出口准则进行比较
- 评估是否需要更多的测试执行,以及是否为了满足出口准则而需要增加新的测试用例,或者考虑是否需要更改测试出口准则
- 编写和提交测试报告
测试活动结束
主要的测试活动分为:
- 测试经验教训总结
- 测试过程改进建议
- 归档的测试工作产品
版权声明:本文为weixin_46115791原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。