0


软件生命周期及流程

软件生命周期及流程

软件生命周期:是软件开始研制到最终被废弃不用所经历的各个阶段

瀑布型生命周期模型:他们是一个自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,具有顺序性和依赖性。每个阶段规定文档并需进行评审。

瀑布型特点:

自上而下 、由顺序性、 每个阶段但是按顺序来执行 、每个阶段但是要产出文档、每次开会都会产出文档(基本不用这个模型 )

瀑布型优缺点:

优点:

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、开发环境,测试环境,生产环境是什么?你崽测试环境后台添加的数据和信息,能够在生产环境看到吗?

标签: 单元测试 python

本文转载自: https://blog.csdn.net/shenlichenge/article/details/127096506
版权归原作者 杜芋头 所有, 如有侵权,请联系我们删除。

“软件生命周期及流程”的评论:

还没有评论