软件工程之软件开发和软件测试模型

软件生命周期:需求分析——》概要设计——》详细设计——》编码——》测试——》验收

软件开发过程常见模型:

所有模型是一种指导工作开展的一种方式而已,是一种方式。

瀑布模型:

螺旋模型:是一种演化开发过程模型,它兼顾了快速原型迭代的特征以及瀑布模型的系统化与严格监控;它引入了其他模型不具备的风险分析,适用于大型的,昂贵的,系统的软件应用。

迭代模型:是指产品在完整的发布的基础上(第一次发布的就是可运行的产品)进行更深度的开发,每一次迭代都要经过完整的开发测试流程。好处是加快开发进度并且适应市场需求的变化。

敏捷开发:敏捷开发更强调程序员团队与业务专家之间的紧密协作、面对面沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够和好的适应需求变化的代码编写和团队组织方法,也更注重人的作用
常见的敏捷开发方法:

极限编程(XP),自适应软件开发,水晶方法,特性驱动开发,scrum
从开发者的角度,主要的关注点:

短平快会议,小版本发布,较少的文档,合作为重,客户直接参与,自动化测试
增量模型:是一种并行开发的模型,是在稳定的框架和平台上来开发和增加具体的业务功能,每个增量之间相互独立,每个增量可以并行开发。融合了瀑布模型的基本成分和原型实现的迭代特征,是第三种原型化开发方法,但它不是“抛弃式”的,也不是“渐进式”的。增量模型把软件产品划分为一系列的增量构件,第一个增量往往是核心的产品,即第一个增量实现了基本的需求。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品
增量模型与原型实现模型和其他演化方法一样,本质上是迭代的,但与原型实现不一样的是其强调每一个增量均发布一个可操作产品

增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发

增量模型的优点:

1.人员分配灵活,初期不用太大投入
2.每隔一小段时间就提交用户部分功能,用户可以直观感受项目进展,及时试用产品功能
3.有利于风险的把控

增量模型将功能细化、分别开发的方法适应于需求经常改变的软件开发过程

注意:增量模型一般和迭代模型一般一起使用,迭代是不能并行的,并行的是迭代的任务(比如任务可以分各个小点,然后并行完成),迭代强调的是迭代的深度也就是功能的完善性;增量并行的是功能点(因为各个功能之间是相互独立的),增量强调的是功能的多样化也就是广度。

快速原型模型:

注意:在软件开发过程中的测试是对软件程序的测试,而接下来说的广义上的测试不仅是对软件的程序进行测试而且要对软件生产产生过程中的所有文档进行测试。下面要说的软件测试的流程是独立于软件开发之外的流程。

测试过程:获得测试需求——》编写测试计划——》制定测试方案——》开发与设计测试用例——》执行测试用例——》提交缺陷报告——》测试分析与评估——》提交测试总结——》准备下一版测试。

(执行测试用例是唯一一个和开发流程有交集的地方)

软件测试过程常见模型:
所有模型是一种指导工作开展的一种方式而已,是一种方式。

V模型:V模型从左往右依次是用户需求-需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试-验收测试

(1)用户需求阶段:一般由甲方业务牵头部门成立需求编写小组,由小组人员编写并完善需求文档,有的项目也可能由乙方来完成。产出物为《XX业务需求》、《XX新增功能工程业务需求》、《XX新增功能及扩容改造业务需求

》等

(2)需求分析阶段:由甲方业务人员、用户、开发人员等完成,针对需求文档进行细致研讨和分析,产出物为《需求分析说明书》、《需求规格说明书》等

(3)概要设计阶段:该阶段由开发人员完成,产出物为《概要设计说明书》

(4)详细设计阶段:该阶段由开发人员完成,产出物为《详细设计说明书》

(5)编码阶段:该阶段由程序员完成,产出物为程序,即源代码

(6)单元测试阶段:也叫模块测试,是最小的测试单位,理论上以白盒测试为主,测试对象一般就是一个功能、类、函数、窗口、菜单等。实际工作中,考虑成本问题,一般由程序员自己完成。测试依据是《详细设计文档》,从模型图中我们能看出,单元测试与详细设计相对应

(7)集成测试阶段:也叫组装测试,组装过程一般是逐步完成的,所以会形成很多临时版本,理论上以黑盒测试为主,核心模块适当采用白盒测试。测试依据是《概要设计文档》,从模型图中我们能看出,集成测试与概要设计相对应

(8)系统测试阶段:是在所有功能组装完成后,对集成了硬件、软件、数据的完整系统进行的测试。测试的重点在于系统在真实环境下的正确运行以及系统的兼容性问题,测试方法为黑盒测试,测试依据是《需求规格说明书

》、《需求文档》等文档。从模型图中我们能看出,系统测试与需求分析相对应

(9)验收测试阶段:也叫用户接受度测试,是由用户参与的验收过程,包括alpha测试和beta测试。从模型图中我们能看出,验收测试阶段与用户需求阶段相对应

特点:

V模型是一个从左往右串行的模型

V模型中开发阶段和测试阶段划分明确,对应关系明确,但是测试是在编码之后才开始的这个是缺点。

V模型中既包括专业级测试(如单元测试、集成测试)又包括用户级测试(如验收测试)

V模型中没有体现对需求、文档和设计阶段的测试,容易被误解为测试工作只是开发完成后的收尾

V模型没有体现尽早测试和不断测试原则

W模型:W模型又称双V模型,它由V模型演变而来,弥补了V模型的不足。左边的V是开发的生命周期,右边的V是测试的生命周期

W模型不仅体现了对程序的测试,还体现了对需求、文档和设计阶段的测试

W模型是一个开发与测试并行的模型,能否清楚的看到开发和测试工作同步进行

W模型体现了尽早测试和不断测试原则

W模型也有其局限性,左边的V亦是把开发视为一系列串行的活动,无法支持迭代

H模型:H模型只体现了测试过程,未体现开发过程,它表明测试是一个独立的过程(H模型的准备阶段是例如人员的准备,硬件的准备,软件环境的准备等;)

H模型有一个测试就绪点,即达到准入条件(测试方案、测试策略、测试用例、测试环境、输入输出项等是否明确)才能继续执行(并且不同的测试活动可以按照某个次序先后进行,也可以反复进行即图的小圆圈部分代表这个

H模型的测试范围不仅仅是需求、文档和程序,它涉及整个产品包

H模型体现了尽早测试和不断测试原则

X模型:X模型也是对V模型的改进,X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成,最终成为可执行的程序,然后再对这些可执行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生

此外,X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高

房子要一层一层盖,知识要一点一点学。大家在学习过程中要好基础,多上手实操,话不多说,这里狠狠上一次干货!这是我熬夜整理好的各阶段(功能、接口、自动化、性能、测开)技能学习资料+实操讲解,非常适合私下里学习,比找资料自学高效多了,分享给你们。

软件工程之软件开发和软件测试模型

软件工程之软件开发和软件测试模型 QQ群名片 软件工程之软件开发和软件测试模型

来源:小梧敲代码

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月4日
下一篇 2022年4月4日

相关推荐