软件生命周期与软件测试生命周期
测试应该从生命周期的第一个阶段开始,并且贯穿于整个软件开发的生命周期。
软件生命周期
1.问题的定义及规划
确定软件开发的目标及其可行性,明确要解决的问题及解决办法,以及解决问题需要的费用、资源、时间。要进行问题定义、可行性分析,制定项目开发计划。
输出文档:可行性分析报告、项目开发计划
2.需求分析
对软件需要实现的各个功能进行详细分析,确定软件系统的功能、性能、数据和界面等要求。
输出文档:需求规格说明书
3.软件设计
设计分为概要设计和详细设计。
概要设计就是设计软件的结构,明确软件系统由哪些模块组成,这些模块的层次结构、调用关系以及模块的功能等,同时确定数据结构和数据库结构。
详细设计是对每个模块完成的功能进行具体的描述,把功能描述转变为精确的、结构化的过程描述,即该模块的控制结构或逻辑结构。
输出文档:概要设计说明书、详细设计说明书、数据库设计说明书、接口设计说明书等
4.软件编码
将模块的控制结构转化为程序代码,该阶段需要编码规范。
输出文档:源程序
5.软件测试
验证软件产品是否符合需求规格说明、软件设计说明等规定的软件质量要求。
在软件编写完成后要经过严密的测试,以发现问题并加以纠正。主要有黑盒测试和白盒测试。
单元测试:
依照程序框架对产品的函数和模块进行测试。(一般由开发人员完成)
集成测试:
单元测试完成后,开始进行集成测试。集成测试主要测试软件的结构问题,主要目的是验证组成软件系统的各模块的接口和数据交互是否正确。
系统测试:
集成测试通过以后,需要进行系统测试。系统测试完全采用黑盒测试技术,主要根据需求分析时确定的标准检验软件是否满足功能、性能等方面的要求。
验收测试:
系统测试完成后,软件提供给客户。客户拿到软件后,根据前面所提的需求及相关说明来进行测试,以确定软件是否符合要求。(客户对软件进行验收)
6.运行维护
软件的使用过程中,可能会不断暴露错误,由此需要对软件进行长期维护,包括纠错性维护和改进性维护。
软件测试生命周期
1.测试计划
描述所有要完成的测试工作,包括被测试项目的背景、目标、范围、方式、资源、进度安排、测试组织、风险防范等。
2.测试设计
测试用例和测试数据的设计,要保证测试用例完全覆盖测试需求。
测试用例设计完成后,通常需经由需求、研发、测试、质控人员等进行评审,期间可能发生用例的修改完善与补充等。
3.测试执行
开发提交测试申请→接收测试(软件包及部署文档)→搭建测试环境→部署软件→冒烟测试→执行测试用例→bug提交→bug评审→bug跟踪(等待开发人员修复)→n轮回归后满足需求→版本更新→上线使用
4.测试总结
测试执行完成后,需要对整个测试活动进行总结。
测试总结报告一般包括:系统概述、编写目的、参考资料、测试环境、偏差分析、遗留问题说明、缺陷统计、缺陷分析、测试活动总结、测试结论等。