赞
踩
- 需求(分析)
(1)增量
增量迭代是RUP统一过程常采用的软件开发生命周期模型。增量和迭代有区别但两者又经常一起使用。假设现在要开发 A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间 则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的 基础功能都已经完成。RUP强调的每次迭代都包含了需求,设计和开发,测试等各个过程,而且每次迭代完成后都是一 个可以交付的原型.迭代不是并行,在每次迭代过程中仍然要遵循需求 ->设计 ->开发的瀑布过程 迭代周期的长度跟项目的周期和规模有很大的关 系.小型项目可以一周一次迭代,而对于大型项目则可以2-4周一次迭代 如果项目没有一个很好的架构师,很难规划出每次迭代的内容和要到达的目标,验证相关的交付和产出 因此迭代模型虽然能够很好的满足与用户的交付,需求的变化,但确是一个很难真正用好的模型.就对风险的消除上,增量和迭代模型都能够很好的控制前期的风险并解决 但迭代模型在这方面更有优势.迭代模型更多的可以从总体方面去系统的思考问题,从最早就可以给出相对完善的框架或原型,后期的每次迭代都是针对上次迭代的逐步精化 业界比较标准的增量模型往往要求在软件需求规格说明书全部出来后后续的设计开发再进行增量.同时每个增量也可以是独立发布的小版本 由于系统的总体设计 往往对一个系统的架构和可扩展性有重大的影响,因此我们推荐的增量最好是在架构设计完成后再开始进行增量,这样可以更好的保证系统的健壮性和可扩展性 先对迭代、增量有了个感性认识,我们再看一看为什么要用这样的模型。对于一个软件来说,很难做到一步到位,就像吃东西一样,要一口一口的吃,想要把整个东西吞下去就容易噎着。于是,就出现了分阶段进行开发的模型,逐步达到目标,迭代模型、增量模型就是这样的。他们的共同点是,通过若干个阶段的开发,完成整个软件,每阶段完成之后,都有一个新版本发布。这就有一个好处,相对于整个漫长的开发周期来说,每阶段都会见到亮光,有利于鼓舞团队的士气,降低项目的风险。 至于不同点,主要是阶段的划分上不太一样。增量模型是从功能量上来划分的,每阶段完成一定的功能。迭代模型是从深度或细化的程度来划分的,每阶段功能得到完善、增强。增量模型适用于需求比较明确,架构比较稳定的软件开发,每次增量不影响已有的架构,在已有的架构下增加新的功能。迭代模型适用于需求不甚明确、不断变更的软件系统。
(1)特点- 快速建立原型,客户对原型进行评价,进一步细化需求- 可以明确客户真正需求,开发出客户满意的软件- 克服瀑布模型(瀑布模型需求变更)的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果
以微信为例
微信的需求功能,要求3年上线文字聊天
语音聊天
视频聊天
朋友圈
红包
小程序
公众号
第一次迭代先开发文字聊天、语音聊天。3个月上线。目的是先抢占用户量
第二次迭代开发视频聊天、朋友圈。2个月上线。目的是抢占用户量,吸引新的用户
第三次迭代开发红包、小程序、公众号。3月上线。
(1)特点 瀑布模型+快速原型模型+迭代模型。
(2)适用范围 需求难以获取和确定、软件开发风险较大的软件系统。
螺旋模型的每一次迭代只包含了瀑布模型的某一个或两个阶段.如第二次迭代重点是需求,第三次迭代是总体设计和后续设计开发计划等。因此这是和RUP提倡 的迭代模型是有区别的,RUP的每一次迭代都会包含需求,设计,开发和测试等各个阶段的活动.RUP迭代的目的在于逐步求精而不是仅仅完成瀑布模型某一阶段的工作。
由于瀑布模型对于软件的需求分析与设计阶段考虑不足,导致可能会出现严重的设计问题,最后交付到客户手里才会被发现,所以V模型就考虑到这点,针对开发的各个过程都会有相应的测试环节,比如用户需求会对应验收测试,需求分析和系统设计会对应确认测试和系统测试等等。但是缺点也是显而易见的,跟瀑布模型一样,测试过程还是放在了最后环节,虽然可以满足客户的需求,但是问题都只能到最后阶段才能被发现,必然会导致上面瀑布模型发生相同情况,也就是成本和时间的增加,所以V模型充其量也只能是瀑布模型的2.0版本。
W模型是在V模型的基础上演变而来的,一般又称为双V模型。在V模型中,研发活动没有完成、无任何输出物时,测试工程师无法开展测试工作,相对而言,测试活动严重滞后。为了解决V模型的缺点,W模型提出了测试活动与研发活动并行的概念,并且在生产流程演进过程中,增加了验证与确认活动。W模型从用户需求开始,研发团队根据用户需求进行需求分析、概要设计、详细设计、编码开发等活动,测试团队则根据用户需求进行验收测试、系统测试、集成测试及单元测试设计。测试工作与研发活动分离,实现了并行操作。测试活动伴随着整个研发过程,而不仅在研发有成果输出后才参与。W模型强调了测试活动不仅仅包括研发活动所产生的软件源代码,还考虑各种文档,如需求文档、概要设计文档、详细设计文档、代码等。
测试用例从每个类型上考虑2-3个用例
1. 适合性。
软件产品为指定的任务和用户提供一组合适的功能的能力(投入运行后,功能是否合适、正确、完整等)
2. 准确性。
软件产品提供具有所需精度的正确或相符的结果或效果的能力(实际与预期的差别)。
3.互操作性。
软件产品与一个或更多的规定系统进行交互的能力(如果与其它软件有定义接口,数据传输的正确程度)。
4.安全保密性。
软件产品保护信息和数据的能力,使未授权的人不能阅读或修改这些信息和数据,而不拒绝授权人员阅读或修改这些信息和数据(访问的可审核性(正常、病毒)、可控制性)。
5.功能性的依从性。
软件产品遵循与功能性相关的标准、约定或法规及类似规定的能力(非法)。
1. 成熟性。
软件产品为避免由软件内部的故障而导致失效的能力(潜在的故障密度、失效的测试用例数量、故障排除)。
2. 容错性。
在软件出现故障或者违反其指定接口的情况下,软件产品维持规定的性能级别的能力。
3.易恢复性。
在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力(重启能力、重启时间)。
4.可靠性的依从性。
软件产品遵循与可靠性相关的标准、约定或法规的能力(非法)。
1.易理解性。
软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用条件的能力(文档、功能的初始印象)。
2.易学性。
软件产品使用户能学会其应用的能力(使用者学习满足需求的能力)。
3.易操作性。
软件产品使用户能操作和控制它的能力。
4.吸引性。
软件产品吸引用户的能力。
5.易用性的依从性。
软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力(非法)。
1.时间特性。
在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力(如响应时间)。
2.资源利用性。
在规定条件下,软件产品执行其功能时,使用合适数量和类别的资源的能力(如内存占用)。
3.效率依从性。
软件产品遵循与效率相关的标准或约定的能力(非法)。
1.易分析性。
软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。
2.易改变性。
软件产品使指定的修改可以被实现的能力(变更难易的程度)。
3.稳定性。
软件产品避免由于软件修改而造成意外结果的能力(由于软件修改而造成的意外)。
4.易测试性。
软件产品修改能被确认的能力。
5.维护性的依从性。
软件产品遵循与维护性相关的标准或约定的能力(非法)。
1.适应性。
软件产品毋需采用额外的活动或手段就可适应不同指定环境的能力(屏幕大小)。
2.易安装性。
软件产品在指定环境中被安装的能力(用户在指定环境中被安装的能力,与易操作性互相影响)。
3.共存性。
软件产品在公共环境中同与其分享公共资源的其他独立软件共存的能力(共享资源的其它软件)。
4.易替换性。
软件产品在同样环境下,替代另一个相同用途的软件产品的能力(版本迭代、新旧兼容)。
5.可移植性的依从性。
软件产品遵循与可移植性相关的标准或约定的能力(非法)。
使用质量模型是基于用户观点的软件产品用于指定的环境和使用周境时的质量。它测量用户在特定环境中能达到其目标的程度,而不是测量软件自身的属性。基本的软件使用质量模型包括4大特性,如下图:
当你知道在测试过程中需要关注哪些特性了后,肯定心里面有个疑问,那么接下来,我要怎么做,怎么去进行测试呢 ?其实这个问题,出于对产品不同角度考量,使用软件质量模型的方式也有所不同:如果你只是应用于产品测试,那么就可以围绕着这些度量点进行展开,根据产品的特性设计测试用例,验证具体实现与预期的差别。如果你作为一名项目的有效推动者,想要在项目的生存周期内系统化的评价产品,版本间比较发现问题,那么你可以自定义适合自己产品的内部质量模型,或者通过外部属性定义外部质量模型,或者通过测量使用质量的属性来评价。目标就是使产品在指定的使用周境下具有所需的效用并且效果符合预期。
结合输入法内核的产品特性,输入法内核测试小组对质量模型的一些特性进行筛选,目前正在使用的输入法质量模型的评价方式如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。