软件生命周期及流程
软件生命周期:是软件开始研制到最终被废弃不用所经历的各个阶段
瀑布型生命周期模型:他们是一个自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,具有顺序性和依赖性。每个阶段规定文档并需进行评审。
瀑布型特点:
自上而下 、由顺序性、 每个阶段但是按顺序来执行 、每个阶段但是要产出文档、每次开会都会产出文档(基本不用这个模型 )
瀑布型优缺点:
优点:
1、开发的各个阶段比较清晰
2、当前一个阶段完成后,只需关注后续阶段
缺点:
1、测试介入比较晚---回溯成本比较高
2、测试周期比较长
瀑布模型
- 问题的定义及规划 - 主要确定软件开发目的及其可行性。制定项目总体开发计划
- 需求分析 - 研发分析需求说明书(又称为SRS)(输出需求规格说明书(原型图))- 判断需求的可实现性
- 设计 - 概要设计 - 用到具体的技术点- 架构的实现(B/S(基于网页)或者C/S(基于客户端))- 大致模块划分- 详细设计 - 详细到可以为编码做支持- 类和类的关系、类的设计- 函数设计- 各个接口的细节- 数据库表的关系、字段关系
- 编码 - 依托于详细设计进行编码操作
- 软件测试
在软件设计完成后要经过严密的测试,以发现软件在整各设计过程中存在的问题并加以纠正,
测试的方法主要有白盒测试和黑盒测试两种
单元测试:主要是测试程序代码,为的是确保各单元模块被正确的编译,比如有具体到模块的测试,也有具体到类、函数、方法的测试等。——一般是开发完成
集成测试:单元测试后,将各单元组合成完整的体系,测试软件单位之间的接口是否正确、数据是否正常传递。——比如说注册和充值这两个功能是否能够连通~
系统测试:把软件系统搭建起来,按照软件规格说明书所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等——根据测试用例,进行完整的系统测试。
验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。——用户对软件进行验收
- 软件维护- 软件上线后也是需要持续维护的
V模型(RAD,快速应用开发)
V模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称为软件开发的V模型。它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
V模型,测试什么时候介入的?
需求阶段介入 ,从左到右,开发过程和测试过程间的阶段都是一一对应的。
V模型的优缺点:
优点:
1、测试V模型既包含了底层测试又包含了高层测试
2、每个步骤都需要文档驱动
缺点:
1、当需求变更时将会导致阶段反复,反工程量非常大,模型灵活性比较低
敏捷开发模型
敏捷开发模型:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
比如:小莫聊天软件 功能有文字聊天 语音聊天 视频聊天 朋友圈 支付 小程序 时间:一年 互联网特点:快速
第一个版本:文字聊天 语言聊天 2个月
第二个版本:朋友圈 支付 3个月
第三个版本:小程序
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发的特点
敏捷开发的特点就是下面4句话:
「个体与交互」胜过「过程与工具」
「可以工作的软件」胜过「面面俱到的文挡」
「客户协作」胜过「合同谈判」
「响应变化」胜过「遵循计划」
敏捷开发的生命周期
软件开发生命周期(SDLC)是设计,开发和测试高质量软件的一种现象。
在敏捷的SDLC开发过程中,客户能够看到结果并了解他/她是否满意。这是敏捷SDLC模型的优势之一。
敏捷SDLC的每次迭代都包含跨不同阶段的跨职能团队:
- 需求收集和分析
- 设计要求
- 构造/迭代
- 部署
- 测试
- 反馈
敏捷开发的优点
1、更快交付价值
2、更低的风险
3、拥抱变化
4、更好的质量
5、持续改进
6、更高的客户满意度
7、更高的团队满意度
敏捷开发的缺点
1、很难进行准确的资源规划
2、很难准确的定义“轻量的“或必要的文档
3、很难把握整体产品的一致性
4、很难预测有限的终点
5、很难有效地进行度量
软件测试工作流程图
测试计划:测试工作统筹安排(测试内容,哪些人,任务分配,测试环境,工具,时间安排)——测试负责人/主管/组长
编写测试用例:什么测试用例——具体怎么来进行测试的文档
软件在符合什么的条件下可以发布:剩余bug数量很少+用例执行覆盖率
发布流程:开发打包——运维/运营/开发——部署到生产环境
开发环境:顾名思义就是开发人员写代码的环境
测试环境:测试人员测试的环境(一般是1个或者一个以上)
预发布环境(UAT环境):验收测试(UAT测试)进行的环境
生产环境:真实用户使用环境
见解:每个环境之间都是独立的!!!
软件测试的基本流程(重点!!!)
测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点。参与需求评审会议
测试计划阶段:主要任务是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围(来做需求文档SRS)、进度的安排,人力物力的分配,整体测试策略的制定,和风险的评估与规避措施有一个制定,一般有测试责任人编写,当然我们可能也会参与相关的评审工作。
测试设计阶段:主要任务是编写测试用例,会参考需求文档(SRS原型图)、概要设计,详细设计等文档,有不明确的也会及时和开发、产品经理沟通。用例编写完成后会进行评审。
测试执行阶段:首先搭建测试环境,执行预测(冒烟),以判定当前版本可测与否,人工预测通过,正式进入系统测试,遇到问题提交bug到缺陷管理平台,并对bug进行跟踪,直到被测软件达到测试需求要求,没有重大bug,测试结束。————(完善测试用例)
测试评估阶段:出测试报告,对整个测试的过程和版本质量做一个详细的评估。确认是否可以上线。
常见的笔试面试题
笔试题:
1、生命周期模型包含哪些阶段?你们开发的模型是什么?
2、测试流程包含哪些阶段?
面试题:
1、你们公司的开发流程是怎么样的?
2、你们公司的测试流程是怎么样的?各个阶段的输出是什么?
3、开发环境,测试环境,生产环境是什么?你崽测试环境后台添加的数据和信息,能够在生产环境看到吗?
版权归原作者 杜芋头 所有, 如有侵权,请联系我们删除。