1.瀑布模型 :强调产品定义,各步骤是分离的,前一阶段完成后才能开始后一阶段;
开发的各个阶段比较清晰;
强调早期计划及需求调查;
适合需求稳定的产品开发;
缺点:
无法回溯,测试在最后运行,惧怕需求变更;
依赖早期的需求调查,不适应需求的变化;
问题在后期才显露;
2.V模型:V模型是软件开发瀑布模型的变种,把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,从左到右,描述了基本的开发过程和测试行为。
优点:
包含了底层测试(单元测试)和高层测试(系统测试);
阶段划分清晰,方便工作的整体把控;
缺点:
测试阶段比较靠后,修改不方便;
3.W模型/双V模型:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等开发输出的文档同样要测试。有利于尽早地发现问题。
优点:
开发与测试并行,有利于尽早发现问题,有利于及时的了解项目的测试风险,来及早的执行相应的应对方案,加快项目的进度。
缺点:
需求、设计、编码仍然是串行进行的,测试和开发保持线性的关系,上一个阶段完成之后才能进行下一个阶段,不能够很好的支持迭代的开发模型。
4.X模型: 解决交接和频繁集成周期的问题
左边描述的是针对单独的程序片段相互分离的编码和测试,此后进行频繁的交接,再通过集成,最终合成可执行的程序,对这些程序进行测试,这些程序还是需要冀衡测试,已经通过的程序可以进行封板提交给用户,也可以作为更大集成的一部分,X模型还定位了探索式测试,探索式测试是不进行事先计划的特殊类型的测试,能够帮助测试人员在测试计划之外发现更多的错误。
H模型 :把软件测试看成一个完全独立的流程,与其他流程并发进行,比如设计流程,编码流程,甚至是测试流程。
H模型强调把测试分为测试准备和测试执行两个不同的阶段,只要由于其他流程的进展引发了测试就绪点的到位,这时候,只要测试准备不能完成,测试执行活动就可以或者需要开展,在H模型当中,测试是一个完全独立的模型,所以可以和其他的流程交叉地进行,也便于我们尽早的执行测试。
1)C/S:client/server--客户端/服务器
一定要安装一个客户端才能够用的软件。比如:QQ
优点:
1.交互性强,客户端有着一套完整的应用程序,相对B/S有着更加强大的功能,还可以实现子程序之间的切换;
2.安全性强,只适用于局域网,相对来说其安全比较好;
3.处理信息能力强,C/S的通信量相对B/S是少了很多的;
4.速度较快,更加利于处理大量数据。
缺点:
1.每次更新,都需要更新服务端和客户端。
2.只适用于局域网。
3.操作系统可能会有限制
2)B/S:browser/server--浏览器/服务器
只需要一个浏览器,就可以访问的。比如:QQ官网
优点:
1)可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用。
2)客户端零安装、零维护,系统的扩展非常容易。
缺点:
1)在跨浏览器上,BS架构不尽如人意。
2)在速度和安全性上需要花费巨大的设计成本。
区别:
1、标准:cs开发更标准一些,因为cs需要在不同的系统上执行,bs只需要在浏览器上执行;
2、效率:cs效率更高,cs属于安装的软件,很多内容已经安装在电脑中了,只需要联网获取数据即可,而bs运行在浏览器上,所有的数据必须经过下载才能使用;
3、升级:bs无缝升级,cs需要删除老版本,再安装新版本;
4、安全性:cs更为安全, 因为必须安装软件才能使用;bs安全度较低,只要有浏览器就可以使用;
5、开发成本:cs开发成本更高,程序员必须精通各个系统;bs开发成本很低,只要浏览器能够正常运行即可;
1.功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力
(1)适合性:软件产品为指定的任务和用户目标提供一组核实的功能的能力;
(2)准确性:软件产品提供具有所需精确度的正确和相符的结果或者效果的能力;
(3)互操作性:软件产品与一个或更多的规定系统或者接口进行交互的能力;
(4)保密安全性:软件产品保护信息和数据的能力;
(5)功能性的依从性:软件产品遵循与功能性相关的标准、约定或法规以及类似规定的能力;
2.可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力
(1)成熟性:软件产品为避免由软件中错误而导致失效的能力;
(2)容错性:在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力;
(3)易恢复性:在失效发生的情况下,软件质量重建规定的性能级别并恢复受直接影响的数据的能力;
(4)可靠性的依从性:软件产品遵循与可靠性相关的标准、约定或法规的能力;
3.易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力
(1)易理解性:软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用环境的能力。
(2)易学性:软件产品能够使用用户学习其应用的能力。
(3)易操作性:软件产品使用户能够操作和控制它的能力。
(4)吸引性:软件产品吸引用户的能力。
(5)易用性的依从性:软件产品遵循与可靠性相关的标准、约定或法规的能力。
4.效率:在规定条件下相对于所用资源的数量,软件产品可提供适当性能的能力
(1)时间特性:在规定条件下,完成用户的某个功能需要的响应时间。
(2)资源利用性:在规定条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。
例如:完成某个功能需要的CPU占有率、内存占用率、通信带宽等。
(3)效率依从性:软件产品遵循与可靠性相关的标准、约定或法规的能力。
5.可维护性:软件产品可被修改的能力
(1)易分析性:软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。
(2)易改变性:软件产品使指定的修改可以被实现的能力。
(3)稳定性:软件产品避免由于软件修改而造成意外结果的能力。
(4)易测试性:软件产品使的已修改的软件能被确认的能力。
6.可移植性:软件产品从一种环境迁移到另外一种环境的能力
(1)适应性:软件产品不需要采用其他方法就可以适应不同的指定环境的能力。
(2)易安装性:软件产品在指定环境中被安装的能力。
(3)共存性:软件产品在公共环境中和其他分享相同资源的软件共存的能力。
(4)易替换性:软件产品在同样环境下,替代另一个相同用途的软件产品的能力。
(5)可移植性性的依从性:软件产品遵循与可靠性相关的标准、约定或法规的能力。
原文:https://www.cnblogs.com/chengcan/p/13388403.html