1 软件的生命周期

1.软件生命周期(SDLC,Systems Development Lift Cycle)是软件开始研制到最终被废弃不用所经历的各个阶段。---这个生命周期来自于软件开发模型 ,常见的软件开发模型有瀑布型、V模型、敏捷开发模型。

2 软件开发模型

2.1瀑布型生命周期模型

在1970年人类整理了第一个软件生命周期,即瀑布型生命周期模型也叫瀑布模型。规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落,具有序性和依赖性。每个阶段规定文档并需进行评审,

pems软件生命周期 常用软件生命周期模型_迭代

缺点:

  • 测试介入项目比较晚,前面的阶段持续问题 不能得到及时的发现
  • 出现问题,回溯周期非常长,项目周期长,浪费时间 效率低
2.2 V模型

RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件开发的V模型。它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。

pems软件生命周期 常用软件生命周期模型_规格说明_02

2.3 敏捷开发模型

1990年开始逐渐引起广泛的关注,是一种以人为核心,快速迭代、循序渐进的开发方法。强调以人为本、专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成。在此过程中软件一直处于可使用状态。

特点:弱化文档、强化人与人之间的沟通

快速迭代:例:微信-文字聊天 语音 视频 朋友圈 红包 小程序 零钱通 公众号(需求)-分各种迭代版本
第一迭代:文字、语音聊天→3个月-上线 用户量 占领市场
第二迭代:视频 朋友圈→2个月-用户量还在,吸引新用户
第三迭代:红包 小程序 零钱通→3个月
…产品不断重复迭代--让产品完善 丰富-达到需求

开发模型细分化

一、问题的定义及规划 -- 产品
主要确定软件的开发目的及其可行性。制定项目总体开发计划。--初步需求

二、需求分析 -- 需求评审会议 -- 测试参与少许
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户的需求(需求评审--产品,并发,测试),输出需求规格说明书终版(原型图)。

三、设计 -- 开发 文档 -- 开发工作
把需求分析得到的结果转换为软件结构和数据结构,形成系统架构。
概要设计:主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等项事务。
详细设计:对概要设计中表述的各模块进行深入分析等,其中需要包含数据库设计说明。

四、编码 -- 写代码
按照详细设计好的模块功能表,编程人员编写出计算机可运行的程序代码

五、软件测试
软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正.
测试的方法主要有白盒测试跟黑盒测试两种。建立详细的测试计划并严格按照计划进行。

单元测试:主要是测试程序代码,为的是确保各单元模块被正确的编译,比如有具体到模块的测试,也有具体到类,函数、方法的测试等。 ---白盒测试,一般由开发自测

集成测试:单元测试后,将各单元组合成完整的体系,测试软件单位之间的接口是否正确、数据能否正常传递。---灰盒测试==接口测试

系统测试:把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等。--黑盒测试 --要求低,入门(几轮)

验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。

α测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试;α测试不能由程序员或测试员完成。

β测试
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

灰度测试
系统测试通过后,将测试版本发布到线上环境,替换部分的线上服务器进行预测试。当校度测试结束后,线上版本实现会统一。本质上是上线前的测试,收集用户的反馈

A/B测试
指的是系统测试通过并发布后,同一个软件功能不同的用户会看到不同的实现方式,收集每个用户的反馈。本质上是上线后的测试,收集用户的反馈。

六、运行维护 -- 时间最长
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的需求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护主要包括纠错性维护和改进性维护两个方面。

3. 软件测试工作流程图

3.1软件测试的基本流程

测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议

测试计划阶段:编写测试计划,参考软件需求规格说明书、项目总体计划,内容包括测试范围(来自需求文档)、进度的安排、人力的分配、整体测试策略的制定,和风险点评估与规避措施有一个制定,一般有测试负责人(测试老大)编写,也可能参与相关的评审(检验用例是否完善、需求理解是否正确、防止漏测错测)工作

测试设计阶段:主要任务是编写测试用例,会参考需求文档(原型图)、概要设计、详细设计等文档,有不明确的也会及时和开发、产品经理沟通,用例编写完成后会进行评审

测试执行阶段:首先搭建测试环境、执行预测(冒烟),以判定当前版本可测与否,如果预测通过,正式进入系统测试(2-4轮),遇到问题提交Bug到缺陷管理平台并对Bug进行跟踪,直到被测软件达到测试需求要求,无重大bug,测试结束。

测试评估阶段:出测试报告,对整个测试过程和版本质量做一个详细评估(剩余Bug数量/严重程度,测试用例的覆盖率),确认是否可以上线

UAT测试阶段:部署到UAT测试环境,有产品或者领导来验证