1、什么是软件的生命周期
软件开始研制到最终废弃不用所经历的各个阶段
2、瀑布模型的各个阶段
1)问题的定义及规划
主要确定软件的开发目的及可行性。制定项目总体开发计划。角色---产品、领导等
2)需求分析 角色---产品
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户的需求,输出需求规格说明书,提交评审。
3)设计 角色---开发
把需求分析得到的结果转换为软件结构和数据结构,形成系统构架
概要设计:主要是架构的实现,指搭建架构,表述各模块功能,模块接口连接和数据传递的实现等
详细设计:对概要设计中表述的各模块进行深入分析等,其中需要包含数据库设计说明
4)编码 角色---开发
按详细设计好的模块功能表,编程人员编写出计算机可运行的程序代码
5)测试 测试人员
单元测试:主要是测试程序代码,为了确保各单元模块被正确编译,比如有具体到模块的测试,也有具体到类,函数、方法等,一般由开发人员完成
集成测试:单元测试后,将各单元组合成完整的体系,测试软件单位之间的接口是否正确,数据能否正常传递
系统测试:把软件系统搭建起来,按照软件规格说明书中的要求,测试软件其功能性能等是否和用户要求相符合,在系统中运行是否存在漏洞,执行测试用例,测试人员独立完成
验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果。(用户)
6)运行维护
软件维护是软件生命周期中持续时间最长的阶段,在软件开发完成后并投入使用后,由于多种原因,软件不能持续适应用户的需求,要延续软件的使用寿命,就必须对软件进行维护,软件维护主要包括纠错性维护和改进性维护两个方面。(bug的修复和新增功能)
3、V模型
定义:通过开发和测试同时进行的方式
单元测试依据详细设计
集成测试依据概要设计
系统测试依据需求分析
验收测试依据用户需求
系统的测试用例是根据需求说明书编写出来的
集成测试用例根据概要设计中模块功能及接口等实现方法编写出来的
单元测试用例的和详细设计一起出现的
在研发人员做详细设计的时候,相应的测试人员也就把测试用例写出来了
4、敏捷开发模型
定义:就是把一个大项目分为多个小项目,分别完成
例如一个聊天软件,定义大概十几个功能,但是全部开发出来需要1年左右时间,为了提前发布,先开发优先级比较高的功能,就可以上线
意思就是迭代开发,在原有第一个版本上面持续开发。一般一个版本的迭代周期是2-6周。
5、测试流程
测试需求分析阶段:阅读需求,理解需求,参与需求评审会议 (输出需求说明书)
测试计划阶段:编写测试计划,参考需求说明书,项目总体计划,包括测试范围,进度安排,人员安排,整体测试策略制定,风险评估与规避,一般是有测试负责人编写,测试人员也可能会参与相关的评审 (输出测试计划报告书)
测试设计阶段:编写测试用例,参考需求文档,用例编写完需进行用例评审工作 (输出测试用例)
测试执行阶段:搭建环境,执行预测,通过后进行系统测试,遇到问题提交bug到bug管理平台,并对bug进行跟踪,直到软件测试达到需求要求,没有重大bug,测试结束。(完善测试用例)((经过3-4轮测试)达到发布要求) (bug报告)
测试评估阶段:测试报告(测试人员编写),对整个测试过程和版本质量做一个详细评估,然后确认是否可以上线。 (测试报告)
需求分析>编写测试用例>评审测试用例>搭建测试环境>等待开发研发完成,提交测试包进行测试>部署测试包>冒烟测试>执行测试用例>bug跟踪处理>测试多轮>版本上线>面向用户使用