软件生命周期
软件生命周期:是指软件开始研制至最终废弃不用所经历的各个阶段。
定义和规范软件测试行为
软件生命周期模型
瀑布型周期模型
1.模型说明:在1970年人类整理了第一个软件生命周期,瀑布型周期模型。
2.规定要求:自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
3.具有特点:顺序性、依赖性、周期长。
4.劣势:项目回溯成本高、效率低、不灵活。
5.样式:如下图
V模型
1.模型说明:软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的V模型。
2.特点:通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
3.优势:提高效率,缩短项目周期,节约时间。
4.劣势:阶段有顺序性,并未实质提高测试的地位。
5.样式:如下图
W模型(双V模型)
1.提出者:Evolutif公司提出
2.特点:软件开发各阶段中同步进行的验证和确认活动。
3.优势:开发和测试同步进行。
4.劣势:不利于迭代。
5.样式:如下图
X模型
1.模型说明:针对单独的程序片段进行相互分离的编码和测试,后通过频繁的交接,通过集成最终合称为可执行的程序,然后对可执行的程序进行测试。
2.优势:今早发现问题,进行解决。
3.劣势:有探索性测试,可能会对测试造成人力、物力和财力的浪费。
4.样式:如下图
敏捷开发模型
特点:以人为核心,循序渐进,快速迭代的方式;
H模型
1.模型说明:软件测试的过程中完全独立,行程一个完成独立的过程。
2.特点:强调一个思想过程。
3.样式:如下图
原型模型
1.模型说明:允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,需要迅速创建一个可以运行的软件系统原型。
2.优势:解决需求不明确和需求理解不一致问题。
3.劣势:时间仓储,不断修改,导致产品质量比较差。
4.样式:如下图
软件测试流程
项目整体流程
1.问题的定义及规划:主要确定软件的开发目的以及可行性,制定项目总体开发计划。
2.需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户的需求(需求评审–产品,开发,测试),输出需求规格说明书最终版。
3.设计:把需求分析得到的结果转化为软件结构和数据结构,行成系统架构;
概要设计:主要是架构的实现,搭建架构,表述各模块功能,模块接口链接和数据传递的实现等事务;
详细设计:对概要设计中表述的各模块进行深入分析等,其中需要包含数据库设计说明。
4.编码:按照详细设计好的模块功能表,编程人员编写出计算机可运行的程序代码。
图示:如下图
5.软件测试:重点掌握
划分内容 | 具体说明 | 解释说明 |
---|---|---|
软件测试 | 单元测试 | 主要测试程序代码,程序员自测 |
软件测试 | 集成测试 | 接口测试 |
软件测试 | 系统测试 | 按照既定要求进行测试是否满足 |
软件测试 | 验收测试 | 收集用户使用后提出需求 |
软件测试 | α测试 | 内测(产品) |
软件测试 | β测试 | 公测(圈定小部分用户) |
6.软件维护 - 项目
1.特点:软件生命周期中时间最长的阶段;
2.维护方面:纠错性维护 改进性维护
纠错性维护: 修复bug,改进代码;
改进性维护:优化,完善,改良;
项目基本流程 -重点
阶段 | 内容说明 |
---|---|
测试需求分析阶段 | 阅读需求,分析需求,理解需求,参与需求评审会议 |
测试计划阶段 | 编写测试计划,参考软件需求规格说明书,项目总体计划,内容包含:测试方案、进度计划、人员安排、整体评估、风险评估、规避措施 |
测试设计阶段 | 编写测试用例,参考需求文档、概要设计、详细设计等,有异议要与产品、研发、沟通 |
测试执行阶段 | 通过冒烟测试,进行系统测试,遇到bug进行提交,实时跟进,达到要求,无bug,测试结束 |
测试评估阶段 | 测试报告,对整个测试进行一个详细的评估,确认是否可以上线 |
流程图