软件测试之手机软件系统测试用例设计方法(1)_第1页
软件测试之手机软件系统测试用例设计方法(1)_第2页
软件测试之手机软件系统测试用例设计方法(1)_第3页
软件测试之手机软件系统测试用例设计方法(1)_第4页
软件测试之手机软件系统测试用例设计方法(1)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 软件系统测试用例设计举例目录一、等价类分析法2二、边界值分析2三、错误猜测法3四、判定表法3五、流程分析方法4六、正交试验设计法4七、状态迁移法6一、 等价类分析法等价类划分方法针对 状态大致可以归几个大类:1. 按键类(等价法):有效输入和无效输入(有效输入指UM和菜单指示;无效输入指测试菜单功能此时没有定义的按键和用户动作);2. 外部中断类(等价法):常用、不常用及无效2.1. 常用:来电和来消息(短信、彩信、push消息);掀合盖;侧键;耳机FM;情景模式;电量不足2.2. 不常用:充电;闹钟记事本关机时间整点报时提示;Icon动画显示;Icon动画刷新;编辑界面pop显示框输入为空

2、或满;编辑界面pop显示框状态输入法默认字符编码默认;失效SIM卡;大容量等SIM卡兼容;排序;号码识别;2.3. 无效:“资料读取中”;“复制中”;“请稍后再试”3. 存储器类3.1. 等价法分类:读或写;不读或不写。3.2. 因果法分类:先SIM卡后 ;先 后SIM卡;提示用户选择存储器(对比Nokia)。3.3. 操作分类:读;写;新增;删除;复制(先删除后新增;先新增后删除)4. 状态类:正确;错误;变更;用户设定变更举例一,短消息发送功能:英文:Default 7-bit alphabet (over 160 characters)合法等价类: 0160非法等价类:>160Th

3、e quick fox jumps over the lazy brown dog中文:UCS-2 alphabet (over 70 characters)合法等价类: 070非法等价类:>70诺基亚(英文):Extended default 7-bit alphabet (over 140 Bytes),智慧短信,可以携带黑白图片。合法等价类: 0140非法等价类:>140在写字板里面输入“联通”二字,保存后,再打开,即出现乱码。举例二,单个通话实例的拨打与挂断测试用例标识测试阶段:系统测试测试项单个通话实例的拨打与挂断测试项属性A参照规范重要级别高测试原因 在待机状态下,确保

4、 能正常拨出 预置条件1. 正常信号环境2. IDLE状态3. 默认原厂参数设定输入1. 号码( 号码,固定 ,带分机的号码,字符串,特殊号码如:*21*021xxxxxxxx# ,+或00,超短号码,超长号码,拨打一位号码,拨打最大长度号码等)2. 拨号过程中电池低电量提示、来短信、来彩信3. 拨号过程中闹钟时间到、行事历时间到4. 拨号过程中插上充电器5. 拨号过程中突然断电6. 按键加锁测试执行步骤IDLE状态拨打号码按Send键发送按End键挂断预期输出结果1. 按Send键可以拨打并显示,按End键可挂断2. 拨打号码过程电池低电量提示、来短信、来彩信拨打界面正常3. 拨打号码过程闹

5、钟时间到、行事历时间到拨打界面正常4. 拨号过程中插上充电器,背光状态及拨打界面正常5. 拨号过程中突然断电,插上充电器重新开机后能正常拨出6. 按键加锁仅可拨打紧急 号码112测试用例标识测试阶段:系统测试测试项单个通话实例的拨打与挂断测试项属性A参照规范重要级别高测试原因 在无信号或无网络情形下, 无法正常拨打 预置条件1. 正在搜索网络或正处于注册界面2. IDLE状态3. 默认原厂参数设定输入同上用例测试执行步骤IDLE状态拨打号码按Send键拨号预期输出结果1. 重复以上操作,提示无法拨打成功的提示信息2. 重复以上步骤,背光处理正常测试用例标识测试阶段:系统测试测试项单个通话实例的

6、拨打与挂断测试项属性A参照规范重要级别高测试原因SIM卡失效情况下, 无法正常拨打 预置条件1. 事先准备欠费、过期、被锁、注册失败、无法使用的SIM卡2. IDLE状态3. 默认原厂参数设定输入同上用例测试执行步骤IDLE状态拨打号码按Send键拨号预期输出结果1. 重复以上操作,提示无法拨打成功的提示信息2. 重复以上步骤,背光处理正常3. 重复以上步骤,提示给用户可接受的错误异常信息测试用例标识测试阶段:系统测试测试项单个通话实例的拨打与挂断(开启固定拨号名单时)测试项属性A参照规范重要级别高测试原因 在待机状态下,确保 能正常拨出固定拨号名单中 号码预置条件正常信号环境IDLE状态默认

7、原厂参数设定SIM卡开启固定拨号名单输入1. 预选存取 号码( 号码,固定 ,带分机的号码,字符串,特殊号码如:*21*021xxxxxxxx# ,+或00,超短号码,超长号码,拨打一位号码,拨打最大长度号码等)2. 拨打固定拨号名单中存在的号码。如,8621xxxxxxxxw00000003. 拨打固定拨号名单中没有的号码。如,xxxxxxxx4. 拨号过程中电池低电量提示、来短信、来彩信5. 拨号过程中闹钟时间到、行事历时间到6. 拨号过程中插上充电器7. 拨号过程中突然断电8. 按键加锁9. 操作通话选项菜单测试执行步骤IDLE状态拨打号码按Send键发送按End键挂断预期输出结果1.

8、按Send键可以拨打并显示,按End键可挂断,拨号画面正常,且显示固定拨号名单中名字2. 拨号画面正常3. 拨号画面提示“限拨FDN名单”4. 拨打号码过程电池低电量提示、来短信、来彩信拨打界面正常5. 拨打号码过程闹钟时间到、行事历时间到拨打界面正常6. 拨号过程中插上充电器,背光状态及拨打界面正常7. 拨号过程中突然断电,插上充电器重新开机后能正常拨出8. 按键加锁仅可拨打紧急 号码1129. 通话选项菜单功能正常测试用例标识测试阶段:系统测试测试项单个通话实例的拨打与挂断(设定通话限制时)测试项属性A参照规范重要级别高测试原因 在待机状态下,确保 能满足通话限制功能预置条件正常信号环境I

9、DLE状态默认原厂参数设定申请开通通话限制服务输入测试执行步骤IDLE状态拨打号码按Send键发送按End键挂断预期输出结果测试用例标识测试阶段:系统测试测试项单个通话实例的拨打与挂断(漫游情形时)测试项属性A参照规范重要级别高测试原因 在待机状态下,确保 能满足通话限制功能预置条件正常信号环境IDLE状态默认原厂参数设定申请开通通话限制服务输入测试执行步骤IDLE状态拨打号码按Send键发送按End键挂断预期输出结果二、 边界值分析例子1:短消息发送功能的等价类划分方法:英文:Default 7-bit alphabet (over 160 characters)合法等价类: 0160非法等

10、价类:>160The quick fox jumps over the lazy brown dog中文:UCS-2 alphabet (over 70 characters)合法等价类: 070非法等价类:>70诺基亚(英文):Extended default 7-bit alphabet (over 140 Bytes),智慧短信,可以携带黑白图片。合法等价类: 0140非法等价类:>140例子2:首先用7列的LCD显示屏,软件可以显示7列汉字,如果换成8列汉字的显示屏,那么,如果软件格式化处理比较僵化,可能依然显示7个汉字。这样,软件的实现,与LCD的规格不符合。因此,

11、需要考虑LCD屏幕的规格,依据边界值方法设计用例。LCD屏幕上有效显示区域4行每行8汉字,可考虑编辑超过4行每行超过16字符情形来进行测试。LCD列边界值需要考虑:7个汉字,8个汉字,9个汉字行边界值:31个汉字,32个汉字,33个汉字例子3:SIM卡名片簿姓名超长(20个英文字符),号码超长情形,新增和查看用户姓名由学员完成该作业:1、 注意等价类和边界值的用例设计方法2、 关注LCD的显示格式问题3、 关注新增、查看两种功能的结合,可能新增姓名是正确的,但是查看的格式错误。三、 错误猜测法例子1:利用 闹钟重响的例子引入错误猜测法基本概念,讲解错误猜测法的意义未接来电29通,内存中规划的分

12、区一直分配被占用。即使同一号码也同样占用资源。假设此时第30通 正好为来电号码不显示,即“来电号码未知”或境外来电号码隐藏时(国外保护个人隐私,自动开启来电号码隐藏功能),可能会出现BUG,实际情况证明,此时会出现Reset问题。同样道理,推断第一通 如果为“来电号码未知”,也可能出现上述问题。例子2:通常 解决方案中sunplus、雅马哈和弦芯片发声。为了降低成本采用DSP策略纯软件发声(如果采用硬件独立声音控制芯片,不会出现下面问题),此时测试中就猜测当 设定闹钟时,闹钟时间到后,确定为重响,此时用户进入铃声选择-浏览-播放时,这时候铃声控制软件会出现资源冲突,可能出现BUG。测试结果是出

13、现RESET或者浏览铃声无响铃的结果。例子3:比如,设定闹钟铃声,在IDLE下闹钟响铃未处理(响铃一分钟后,铃声停止,系统进入另外一种状态,菜单提示为闹钟是否重响?),待钤声响完后按两次SKL键(确定键),(第一次确定要重响,第二次应该返回IDLE状态),再次进入"钤声设定"/"钤声类型",此时任选一铃声都没有声音四、 判定表法举例一,若 用户欠费或停机,则不允许主被叫。表示为判定表如下:1234条件用户欠费YYNN用户被停机YNYN动作可以主被叫NNNY举例二,区别 掉网、搜网、飘网、SIM卡座松动问题1234条件显示运营商logo正确YYNN显示有信

14、号YNYN动作可以拨打 YNY(除拨112外还可以拨打其它号码)Y五、 流程分析方法1-手动/自动选网模式;11-自动注册并显示已有网络服务2-手动模式(选网模式的一种);3-搜寻到HPLMN(归属网络)及FPLMN(禁止网络);6-频段搜索;7-自动选择频段;8-手动选择频段900或1800;(新 才有频段手动选择)4-选择FPLMN;5-注册FPLMN路径path1:1-11path2:1-2-3-4-5-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11举例二,彩信发送功能1. 终端发送MMS,如果是终端到终端,那么以WSP(无线

15、会话协议)协议编码送到WAP网关;如果终端到应用服务器(发送Email),则以IP协议发送到IP网关;2. WAP网关或IP网关都以 协议与MMS中继器通信,文件内容传给中继器3. 中继器将文件送往MMS服务器,并以MIME格式存储。(MIME的格式可以被 终端识别并显示,并且可以被Email客户端浏览并显示的文件格式)4. 如果MMS接收方为 终端,MMS服务器调用号码以及相关路由信息,并进行数据分析,判断终端支持能力和承载能力,如果终端不支持MMS,只通过短消息格式发文字部分;如果终端支持MMS,直接发送MIME格式的文件到 终端。5. 如果,发送到Email服务器,系统通过路由选择,把M

16、IME格式的文件发送到Email地址所在的服务器。6. 该MMS支持的媒体格式包括文本、铃声、图片;文本没有上限64K,包括64K;铃声单首最大为64K,包括64K,最多支持5页;单页图片最大64K,最多5页;测试用例设计利用流程分析方法,测试分析时需要考虑以下几点:1. 彩信发送测试时需要考虑基于WAP业务实现和基于IP网关的流程差异;2. MMS服务器数据分析并确定处理方法时需要考虑终端到终端的情形和终端到应用的业务情形;3. 确定终端到终端的情形下,还需要考虑终端是否支持MMS发送六、 正交试验设计法例子1:假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的浏览

17、器浏览:WEB浏览器:Netscape6.2、IE6.0、Opera4.0插件: 无、RealPlayer、MediaPlayer应用服务器:IIS、Apche、Netscape Enterprise操作系统:Windows2000、Windows NT、Linux正交表: 1234111112122231333421235223162312731328321393321提取系统功能说明中的因子:WEB浏览器插件应用服务器操作系统分析各因子的状态WEB浏览器:1Netscape6.2、2=IE6.0、3=Opera4.0插件: 1=None、2=RealPlayer、3=MediaP

18、layer应用服务器: 1=IIS、2=Apche、3=Netscape Enterprise操作系统: 1=Windows2000、2=Windows NT、3=Linux将因子、状态映射到上面正交表中:测试用例浏览器插件服务器操作系统1Netscape6.2NoneIISWindows20002Netscape6.2RealPlayerApcheWindows NT3Netscape6.2MediaPlayerNetscape EnterpriseLinux4IE6.0NoneApcheLinux5IE6.0RealPlayerNetscape EnterpriseWindows20006

19、IE6.0MediaPlayerIISWindows NT7Opera4.0NoneNetscape EnterpriseWindows NT8Opera4.0RealPlayerIISLinux9Opera4.0MediaPlayerApcheWindows2000举例2:MMS处理模块编辑模块:支持SMIL(同步多媒体综合语言)、不支持SMIL.效果处理模块:水波纹、半透明、水印、反透.界面显示模块:POP形式、窗体式显示.举例3:照相机功能测试七、 状态迁移法举例 mp3键盘播放模式测试用例设计1. 键盘用户模式基本操作功能2. 支持媒体格式与文件格式要求3. 多媒体播放中对外部事件的响

20、应4. 终端处理能力(包括终端异常处理、文件操作)5. PC与终端同步能力键盘用户模式基本操作功能系统测试用例设计步骤:编写状态事件表;编制状态图转换表;编写合法测试用例;编写非法测试用例;编写错误异常处理测试项;序号需求内容播放器要求1功能类型和操作方式采用菜单选项方式2文件播放必须支持3播放基本功能Play, Pause, Stop, Seek必须支持4声音调节必须支持5亮度调节必须支持6对比度调节推荐支持7播放进度显示必须支持8模式选择及切换必须支持,可通过设定功能键切换常规模式9后台播放模式推荐支持10播放器设置必须支持,提供缺省设置11播放统计及列表记录必须支持125键快捷设定及操作

21、必须支持5键功能定义Up增大音量Down减小音量Left上一首或后退Right下一首或快进Select(侧键ok)播放/暂停 功能切换状态事件表(黑点着重号表示为非法组合)函数名字Idle倒播放进录音EvRewindbutton(倒)1-倒·8-倒11-倒·Evplaybutton(播放)2-播放5-播放·12-播·Evfastforwardbutton(进)3-进6-进9-进··Evrecord(录音)4-录音····Evstopbutton(Idle)·7-idle10-idle1

22、3-idle14-idle7软件测试文档1、软件测试文档就是为将软件测试当作一个项目一样实施计划和管理而引入的,它为测试项目的组织、规划和管理提供了一个规范化的架构。2、软件测试文档主要包括测试计划、测试用例、测试规程、测试事件报告、测试总结报告等。测试文档总所规定的内容可以作为对测试过程完备性的对照检查表,有助于提高测试工程每个阶段的能见度,极大地提高了测试工作的可管理性。为了统一测试文档的书写标准,IEEE/ANSI制定了829-1983标准,还有其他的一些也用于指导软件测试文档的编写,如我国制定的计算机软件测试文件百年之规范(GB/T 9386-1988)3、 测试文档编写规范(GB/T

23、 9386-1988)简介(1).引用标准该规范的引用标准为: GB/T 11457 软件工程术语GB 8566 计算机软件开发规范 GB 8567 计算机软件产品开发文件编制指南(2).关键术语定义设计层:软件项的设计分解(如系统,子系统,程序,模块)通过准则:一个软件项或软件特性的测试是否通过的判别依据软件特性:软件项的显著特性(如功能,性能或可移植性)软件项:源代码,目标代码,作业控制代码,控制数据或这些项的集合。测试项:作为测试对象的软件项(3).规范的主要内容该规范确定了各个测试文件的格式和内容,所提出的文件类型包括测试计划,测试说明和测试报告。测试计划免除测试活动的范围,方法,资源

24、和进度,他规定被测试的项,被测试的特性,应完成的测试任务,担任各项工作的人员职责及与本计划有关的风险等。4、测试说明包括三类文件测试设计说明:详细描述测试方法,规定该设计及其有关测试所包括的特性,还规定完成测试所需的测试用例和测试规程,并规定特性的通过准则。测试用例说明:列出用于输入的具体值以及预期的输出结果,并规定在使用具体测试用例时,对测试规程的各种限制。将测试用例与测试设计封开,可以使它们用于多个设计并能在其它情形下重复使用。测试规程说明:规定对于运行系统和执行指定的测试用例来实现有关测试设计所要求的所有步骤。5、测试报告则包括四类文件:测试项传递包括:指明在开发组和测试组独立工作的情况

25、下或者在希望正式开始测试的情况下为进行测试而传递的测试项。测试日志:测试组用于记录测试执行过程中发生的情况。测试事件报告:描述在测试执行期间发生并需进一步调查的一切事件。测试总结报告:总结与测试设计说明有关的测试活动。使用该规范的每个单位,要规定测试阶段所应有的特性文件,并在测试计划中规定测试完成后所能提交的全部文件。使用该规范的每个单位应该补充规定对内容的要求和约定,及便反映总结在测试,文件控制,配置管理和质量保证方面所用的特定方法,设备工具。一下是规范中的文件编制实施及使用指南(1) 实施指南在实施测试文件编制的初始阶段可先编写测试计划于测试报告文件。测试计划将为整个测试过程提供基础。测试

26、报告将鼓励测试单位以良好的方式记录整个测试过程的情况。(2) 用法指南在项目计划及单位标准中,指明在那些测试活动中需要那些测试文件,并可在文件中加入一些内容,使各个文件适应一个特定的测试项及一个特定的测试环境。7软件测试文件编制规范中的内容要求以下是规范中各个测试文件的书写格式及内容。a测试计划(1) 测试计划名称(该计划的第1章)(2) 引言(该计划的第2章)(3) 测试项(4) 被测试的特性(5) 不被测试的特性(6) 方法(7) 项通过的准则(8) 暂停标准和再启动要求(9) 应提供的测试文件(10) 测试任务(11) 环境要求(12) 职责(13) 人员和训练要求(14) 进度(15)

27、 风险和应急(16) 批准b测试设计说明(1) 测试设计说明名称(2) 被测试的特性(3) 方法详述(4) 测试用例名称(5) 特性通过准则c测试用例说明(1) 测试用例说明名称(2) 测试项(3) 输入说明(4) 输出说明(5) 环境要求(6) 特殊的规程要求(7) 用例间的依赖关系d测试规程说明(1) 测试规程说明名称(2) 目的(3) 特殊要求(4) 规程步骤e测试项传递报告(1) 传递报告名称(2) 传递项(3) 位置(4) 状态(5) 批准f测试日志(1) 测试日志名称(2) 描述(3) 活动和事件条目g测试事件报告名称(1) 测试事件报告取一个专用名称(2) 摘要(3) 事件描述(

28、4) 影响h测试总结报告1. 规定该报告必须由哪些人(姓名和职务)审批,并为签名和日期留出位置。目录1、V模型22、W模型33、H模型54、 X模型65、其他测试模型71、瀑布模型82、原型模型93、螺旋模型11背景知识:目前主流的软件生命周期模型或软件开发过程模型有:瀑布模型、原型模型、螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)等,这些模型对于软件开发过程具有很好的指导作用,但是在这些过程方法中,软件测试的地位和价值并没有体现出来,也没有给软件测试以足够的重视,利用这些模型无法更好地指导测试实践。软件测试是与软件开发紧密相关的一系列有

29、计划、系统性的活动,显然软件测试也需要测试模型去指导实践。下面先对主要的模型做一些简单的介绍,再补充软件生命周期做介绍。1、V模型    V模型是最具有代表性的测试模型。V模型最早是由Paul Rook在20世纪80年代后期提出的,V模型在英国国家计算中心文献中发布,旨在改进软件开发的效率和效果。    在传统的开发模型中,比如瀑布模型,通常把测试过程作为在需求分析、概要设计、详细设计和编码全部完成之后的一个阶段,尽管有时测试工作会占用整个项目周期一半的时间,但是有人仍认为测试只是一个收尾工作,而不是主要的工程。V模型是软件开发瀑布模

30、型的变种,它反映了测试活动与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为,明确地标明了测试工程中存在的不同级别,清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。如图5-1所示。                   图1  V模型图    图1 V模型图中箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即测试过程的各个阶段。&#

31、160;   V模型的软件测试策略既包括低层测试又包括了高层测试,低层测试是为了确保源代码的正确性,高层测试是为了使整个系统满足用户的需求。    V模型指出,单元和集成测试是验证程序设计,开发人员和测试组应检测程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标;由测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满足用户需求或合同的要求。   V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细

32、设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。类比记忆:此模型与软件开发模式中的线性模型(典型的瀑布模型)有相似的不足,在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,开发前期未发现的错误会传递并扩散到后面的阶段,而在后面发现这些错误时,可能已经很难回头再修正,从而导致项目的失败。2、W模型   V模型的局限性在于没有明确地说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。在V模型

33、中增加软件各开发阶段应同步进行的测试,被演化为一种W模型,因为实际上开发是V,测试也是与此相并行的V。基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE std1012-1998软件验证和确认(V&V)的原则。一个基于V&V原理的W模型示意图如图2所示。                      图2  W模型图 

34、   相对于V模型,W模型更科学。W模型可以说是V模型自然而然的发展。W模型强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。这样,只要相应地开发活动完成,我们就可以开始执行测试,可以说,测试与开发是同步进行的,从而有利于尽早地发现问题。以需求为例,需求分析一完成,就可以对需求进行测试,而不是等到最后才进行针对需求的验收测试。    如果测试文档能尽早提交,那么就有了更多的检查和检阅的时间,这些文档还可用于评估开发文档。另外还有一个很大的益处是,测试者可以在项目中尽可能早地面对规格说明书中的挑战。这意味着测

35、试不仅仅是评定软件的质量,还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。参与前期工作的测试者可以预先估计问题和难度,这将可以显著地减少总体测试时间,加快项目进度。    根据W模型的要求,一旦有文档提供,就要及时确定测试条件,以及编写测试用例,这些工作对测试的各级别都有意义。当需求被提交后,就需要确定高级别的测试用例来测试这些需求。当概要设计编写完成后,就需要确定测试条件来查找该阶段的设计缺陷。    W模型也是有局限性的。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动。同样,软件开发和测试保持一种线性

36、的前后关系,需要有严格的指令表示上一阶段完全结束,才可以正式开始下一个阶段。这样就无法支持迭代、自发性以及变更调整。对于当前很多文档需要事后补充,或者根本没有文档的做法(这已成为一种开发的文化),开发人员和测试人员都面临同样的困惑。类比记忆:W模型相当两个V模型的叠加,一个是开发的V,一个是测试的V,由于在项目中开发和测试的是同步进行,相当于两个V是并列同步的进行的,测试在一定程度是随着开发的进展而不断向前进行。3、H模型     V模型和W模型均存在一些不妥之处。首先,如前所述,它们都把软件的开发视为需求、设计、编码等一系列串行的活动,而事实上,虽然这

37、些活动之间存在相互牵制的关系,但在大部分时间内,它们是可以交叉进行的。虽然软件开发期望有清晰的需求、设计和编码阶段,但实践告诉我们,严格的阶段划分只是一种理想状况。试问,有几个软件项目是在有了明确的需求之后才开始设计的呢?所以,相应的测试之间也不存在严格的次序关系。同时,各层次之间的测试也存在反复触发、迭代和增量关系。其次,V模型和W模型都没有很好地体现测试流程的完整性。为了解决以上问题,提出了H模型。它将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。H模型如图3所示。       

38、;    图3  H模型图    H模型图仅仅演示了在整个生存周期中某个层次上的一次测试“微循环”。图中的其他流程可以是任意开发流程。例如,设计流程和编码流程。也可以是其他非开发流程,例如,SQA流程,甚至是测试流程自身。也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以(或者说需要)进行了。概括地说,H模型揭示了:1)软件测试不仅仅指测试的执行,还包括很多其他的活动。2)软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。3)软件测试要尽早准备,尽早执行。4)软件测试是根据被测

39、物的不同而分层次进行的。不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。4、X模型Marick曾提出过一些观点和意见,其中首先是Marick不建议要建立一个替代模型。这里我很冒昧地引用了一些Marick的想法,并重新经过组织,形成了“X模型”。其实并不是为了和V模型相对应而选择这样的名字,而是由于其它一些原因:X通常代表未知,而Marick也认为他的观点并不足以支撑一个模型的完整描述,但其中已经有一个模型所需要的一些主要内容,其

40、中也包括了象探索性测试(exploratory testing)这样的亮点。我还需要在使用文字方面也向Marick道歉,因为认同Marick观点的无疑大多属于X一代(X一代)。另外,我勾画了一张X形状的示意图,我相信该图能够很好地以另一种表达形式来体现Marick的观点。 图2-X模型示意图由于X模型从没有被文档化,其内容一开始需要从在V模型的相关内容中进行推断,这在Marick的相关文章中已有体现。这里关于X模型的论述比较简短,因为它还没有完全从文字上成为V模型的全面扩展,而且我不想在这里重复在软件测试:不可忽略的阶段文章中所提到的很多测试技术的概念。 Marick对V模型的最主要批评是V模

41、型无法引导项目的全部过程。他认为一个模型必须能处理开发的所有方面,包括交接,频繁重复的集成,以及需求文档的缺乏等等。 5、前置测试模型前置测试是一个将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以使你的项目加快速度。前置测试模型体现了以下的要点: 开发和测试相结合 前置测试模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为。并且表示了这些行为在项目周期中的价值所在。如果其中有些行为没有得到很好的执行,那么项目成功的可能性就会因此而有所降低。 如果有业务需求,则系统开发过程将更有效率。我们认为在没有业务需求的情况下进行开发和测试是不可能的。而且,业务需求最

42、好在设计和开发之前就被正确定义。 对每一个交付内容进行测试 每一个交付的开发结果都必须通过一定的方式进行测试。源程序代码并不是唯一需要测试的内容。在图中的被圈框表示了其它一些要测试的对象,包括可行性报告、业务需求说明,以及系统设计文档等。这同V模型中开发和测试的对应关系是相一致的,并且在其基础上有所扩展,变得更为明确。前置测试模型包括2项测试计划技术,这也是属于上述21项需求测试技术中的一部分。其中的第一项技术是开发基于需求的测试用例。这并不仅仅是为以后提交上来的程序的测试做好初始化准备,也是为了验证需求是否是可测试的。这些测试可以交由用户来进行验收测试,或者由开发部门做某些技术测试。很多测试

43、团体都认为,需求的可测试性即使不是需求首要的属性,也应是其最基本的属性之一。因此,在必要的时候可以为每一个需求编写测试用例。不过,基于需求的测试最多也只是和需求本身一样重要。一项需求可能本身是错误的,但它仍是可测试的。而且,你无法为一些被忽略的需求来编写测试用例。 第2项技术是定义验收标准。在接受交付的系统之前,用户需要用验收标准来进行验证。验收标准并不仅仅是定义需求,还应在前置测试之前进行定义,这将帮助揭示某些需求是否正确,以及某些需求是否被忽略了。在设计阶段进行计划和测试设计设计阶段是做测试计划和测试设计的最好时机。在V模型中,验收测试最早被定义好,并在最后执行,以验证所交付的系统是否真正

44、符合用户业务的需求。 与V模型不同的是,前置测试模型认识到验收测试中所包含的3种成份,其中的2种都与业务需求定义相联系:即定义基于需求的测试,以及定义验收标准。但是,第三种则需要等到系统设计完成,因为验收测试计划是由针对按设计实现的系统来进行的一些明确操作定义所组成,这些定义包括:如何判断验收标准已经达到,以及基于需求的测试已算成功完成。 技术测试主要是针对开发代码的测试,例如V模型中所定义的动态的单元测试,集成测试和系统测试。另外,前置测试还提示我们应增加静态审查,以及独立的QA测试。QA测试通常跟随在系统测试之后,从技术部门的意见和用户的预期方面出发,进行最后的检查.同样的还有特别测试。我

45、们取名特别测试,并把该名称作为很多测试的一个统称,这些测试包括负载测试、安全性测试、可用性测试等等,这些测试不是由业务逻辑和应用来驱动的。 对技术测试最基本的要求是验证代码的编写和设计的要求是否相一致。一致的意思是系统确实提供了要求提供的,并且系统并没有提供不要求提供的。技术测试在设计阶段进行计划和设计,并在开发阶段由技术部门来执行。6、测试模型的使用    前面我们介绍了几种典型的测试模型,应该说这些模型对指导测试工作的进行具有重要的意义,但任何模型都不是完美的。我们应该尽可能地去应用模型中对项目有实用价值的方面,但不强行地为使用模型而使用模型,否则也没有实际意

46、义。    在这些模型中,V模型强调了在整个软件项目开发中需要经历的若干个测试级别,而且每一个级别都与一个开发级别相对应,但它忽略了测试的对象不应该仅仅包括程序,或者说它没有明确地指出应该对软件的需求、设计进行测试,而这一点在W模型中得到了补充。W模型强调了测试计划等工作的先行和对系统需求和系统设计的测试,但W模型和V模型一样也没有专门对软件测试流程予以说明,因为事实上,随着软件质量要求越来越为大家所重视,软件测试也逐步发展成为一个独立于软件开发的一系列活动,就每一个软件测试的细节而言,它都有一个独立的操作流程。比如,现在的第三方测试,就包含了从测试计划和测试用例

47、编写,到测试实施以及测试报告编写的全过程,这个过程在H模型中得到了相应的体现,表现为测试是独立的。也就是说,只要测试前提具备了,就可以开始进行测试了。    因此,在实际的工作中,我们要灵活地运用各种模型的优点,在W模型的框架下,运用H模型的思想进行独立的测试,并同时将测试与开发紧密结合,寻找恰当的就绪点开始测试并反复迭代测试,最终保证按期完成预定目标。    试并反复迭代测试,最终保证按期完成预定目标。1、瀑布模型瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活

48、动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。1、瀑布模型有以下优点1)为项目提供了按阶段划分的检 查点。 2)当前一阶段完成后,您只需要去关注后续阶段。 3)可在迭代模型中应用瀑布模型。 增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生

49、一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。 2、瀑布模型有以下缺点1)在项目各个阶段之间极少有反馈。 2)只有在项目生命周期的后期才能看到结果。 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。2、原型模型原型模型的主要思想: 先借用已有系统作为原型模型,通过“样品”不断改进,使得最后的产品就是用户所需要的。 原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们

50、开发软件的习惯,使目前较流行的一种实用软件生存期模型。 原型模型的特点: (1)开发人员和用户在“原型”上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。 (2)缩短了开发周期,加快了工程进度。 (3)降低成本。 原型模型的缺点: 当告诉用户,还必须重新生产该产品时,用户是很难接受的。这往往给工程继续开展带来不利因素。 不宜利用原型系统作为最终产品。采用原型模型开发系统,用户和开发者必须达成一致:原型被建造仅仅是用户用来定义需求,之后便部分或全部抛起,最终的软件是要充分考虑了质量和可维护性等方面之后才被开发。3、螺旋模型螺旋模型采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论