八文_文档搜索
 
设为首页   |  加入收藏夹
 八文网 - 汇聚八方文档 - 做最优秀的免费文档下载网站
 

软件测试

文档类型: Microsoft PowerPoint PPT 演示文稿 文档大小:625.5KB
第六章软件测试§6.1 基本概念软件开发过程必须伴有质量保证活动.软件测试是软件质量保证的关键元素,代表了规约,设计和编码的最终检查.
有关测试的思考题软件测试是一门非常重要的学科,主要研究内容是什么软件测试需要什么样的专业基础软件质量到底是什么测试的目标是什么
开发一个测试系统之前你是否明白:可以测试什么应该测试什么最终能够测试什么软件产品最大的成本是检测软件错误,修正软件错误的成本.在整个软件开发中、测试工作量一般占30~40,甚至≥50.在人命关天的软件(如飞机控制,核反应堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍软件测试背景软件是人编的所以不完美
实例:迪斯尼的狮子王系统不支持问题Intel的pentium处理器1994年浮点除法缺陷200年8月28日,1.13MHZ处理器一个可能导致运行程序被挂起的执行指令问题1999年12月3日,美国航天局火星极地登陆飞船失踪1991年爱国者防御系统系统时钟错误积累造成跟踪系统失去精确度千年虫、世界各地解决2000年错误超过数亿美元软件测试的认识的发展
人们对软件测试认识的五个阶段:阶段1 测试=调试阶段2 测试是证明软件正确阶段3 测试是发现软件中错误阶段4 测试是减小软件不工作的风险(是度量软件质量要素的过程)阶段5 测试可产生低风险的软件的一种认识上的训练
三个盲人和一头大象:你能够为质量下定义吗质量管理领域权威人物J.M.Juran将质量定义为决定产品性能和满意程度的特征、 测试注重于产品的满意度.
测试应针对这样一种情况:软件产品在一些特定的范围内不能满足客户的合理要求.通过测试过程可以评定质量风险(可能的错误),了解被测试系统中存在的错误模式(观察到的错误症状).
质量控制技术质量控制活动分类开发方法学配置管理验证技术评审正确性验证性能调试组件测试集成测试系统测试原子事务模块冗余性检错质量控制避免错误容错调试测试软件质量问题以软件测试为中心的软件质量保障技术软件静态测试技术质量软件度量技术控制动态测试技术技术配置管理技术修改控制与管理技术软件测试是保证软件质量,提高软件可靠性的关键软件测试的目标(1)预防错误: 几乎不可实现(2)发现错误
6.1.1 测试的目的与地位
G.J.Myers在中认为:
1.测试是为了寻找错误而运行程序的过程.
2.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试.
3.一个成功的测试是揭示了迄今为止尚未发现的错误的测试.
E.W.Dijkstra 指出:程序测试能证明错误的存在,但不能证明错误不存在.测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错.把证明程序无错当作测试目的不仅是不正确的, 完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的.
软件测试要设法使软件发生故障,暴露软件错误测试的成功与失败能够发现错误的测试是成功的测试,否则是失败的测试.测试的目的是说明程序正确地执行它应有的功能这种说法正确吗
例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形,等腰三角形还是不等边三角形.
为说明其能正确执行它的功能,可使用测试用例程序都能给出正确结果,是否就可认为程序是正确的难以说清的软件缺陷
古谚: 一片树叶飘落在森林中没有人听见、谁能说它发出了声音由于不能报告没有看见的问题,因此,没有看见就不能说存在软件缺陷如果软件中的问题没有人发现,那么它算不算软件缺陷只有看到了,才能断言软件缺陷,尚未发现的软件缺陷只能说是未知软件缺陷.眼见实
6.1.2 测试原则(1)所有的测试都应追溯到用户需求最严重的错误(从用户角度)是那些导致软件无法满足需求的错误.程序中的问题根源可能在开发前期的各阶段解决,纠正错误也必须追溯到前期工作.
测试与开发前期工作的关系决定软件与系统的配合关系需求分析概要设计详细设计编码单元测试确认测试开发前期出现错误的扩展计划需求分析设计编码测试AB软件生存期各阶段间需保持的正确性用户要求
用户:我要什么运行结果
计算机:程序运行得到的结果源程序
程序员:我要让计算机什么做设计说明书
设计员:我要让软件做什么需求说明书
分析员:提供什么理解正确性表达正确性设计正确性编码正确性运行正确性输入正确性相符吗测试原则(2)概要设计时应完成测试计划,详细的测试用例定义可在设计模型确定后开始,所有测试可在任何代码被产生之前进行计划和设计.软件测试不等于程序测试软件测试应贯穿于软件定义与开发的整个期间;据美国一家公司统计,查出的软件错误中、属于需求分析和软件设计的错误约占64,属于程序编写的错误仅占36.程序编写的许多错误是先天的.
测试阶段工作步骤
单元测试: 检验每个模块能否单独工作.
集成测试: 检验概要设计中模块接口设计问题
确认测试: 以需求规格说明书为检验尺度
系统测试: 综合检验测试可视为分析,设计,编码三个阶段的最终复审,以保证软件质量.
(3)pareto原则:测试发现的错误中80%很可能起源于20%的模块中.应孤立这些疑点模块重点测试.
(4)穷举测试是不可能的.
(5)应由独立的底三方来构造测试.
(开发和测试队伍分别建立)
例:测试计算器程序加法测试10==20=
1.00.1=
1.00.2= 减法测试乘法测试除法测试求平方根百分数倒数(6)测试用例应由输入数据和预期的输出结果两部分组成.
(7)兼顾合理的输入和不合理的输入数据(8)程序修改后要回归测试(9)应长期保留测试用例,直至系统废弃.
测试原则:软件测试是有风险的行为数量遗漏软件缺陷数目测试费用测试中测试后软件测试工作量每一个软件项目都有一个最优的测量量最优测量量
6.1.3 可测试性
可测试软件的特征:可操作性可观察性可控制性可分解性简单性稳定性易理解性
好测试的属性:发现错误的可能性高不冗余在目的相似的测试中、应使用最可能找到错误的测试每一个测试应独立执行软件测试有关概念测试中用到的模型元素(UML类图)测试组测试用例故障组件测试存根测试驱动程序误差错误改正由.修改由.引起找出使用修改组件是系统中可以孤立进行测试的部分,一个组件可以是对象,一组对象,一个或多个子系统.
错误,也称缺陷或不足,是可能引起组件不正常行为的设计或编码错误.
误差是系统执行过程中错误的表现.故障是组件的规格说明与其行为之间的偏差,故障是由一个或多个误差引起的.
测试用例是一组输入和期待的结果,它根据引起故障和检查的目的来使用组件.
测试存根是被测试的组件所依赖的其它一些组件的实现部分.测试驱动程序是依赖被测试组件的那个组件的实现部分.
改正是对组件的变化.改正的目的在于修正错误.改正可能会产生新的错误.
错误(fault),误差(error)和故障(failure)出轨(出故障)图中不表示故障,因为既没有指定期望行为也没有任何观察的行为、它也不表示误差,因为这不意味着系统正处在进一步处理将导致故障的状态.
用例名称DriveTrain参与执行者火车司机入口条件司机按下控制面板上的StrartTrain事件流1.列车开始在轨道1上运行
2.列车平移到轨道2 退出条件列车运行在轨道2上特殊条件没有用例DriveTrain指定了列车的期望行为:测试用例标识符DriveTrain要测试的特征引擎连续运行5s特征合格不合格标准如果列车连续前进5s,并且至少通过两个轨道的长度,则测试通过控制方法驱动程序StrartTrain调用StrartTrain方法得到运行方向和持续时间用例DriveTrain的测试用例DriveTrain :执行这个测试用例时,可以证明系统是包含有错误的软件测试有关概念术语和定义软件测试要精度还是准确度很大程度上取决于产品是什么,最终取决于开发小组的目标.
既不准确又不精确精确但不准确准确但不精确既准确又精确精确和准确验证和合法性检查验证是检查软件符合产品说明书的过程合法性检查是保证软件满足用户要求的过程质量和可靠性可靠性只是质量的一个方面测试和质量评判(QA)软件测试员的目标是找出软件缺陷软件质量评判人员的主要职责是创建和加强促进软件开发并防止软件缺陷的标准和方法测试(test) 调试(debug)以已知条件开始,使用预先定义的程序,有预知的结果以不可知内部条件开始,结果一般不可预见有计划被动的由独立的测试组,在不了解软件设计的条件下完成由程序作者进行发现错误找出错误位置,排除测试与调试(排错)软件错误分类功能错(需求分析错误)软件结构错数据错编码错软件集成错测试定义与测试执行错误
6.1.4 测试用例设计选择测试用例是软件测试员最重要的一项工作.
测试用例的属性:属性描述name 测试用例的名称location 可执行的完全路径名input 输入数据或命令oracle 与测试输入相比较的期待测试结果log 测试生产的输出程序测试举例
例:程序Triangle, 输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形,等腰三角形还是不等边三角形.
判断三角型的测试用例设计:输入数据预期结果等边等腰一般
还应输入非法数据:a; 2;7等
6.1.5 软件测试信息流配置工具结果排错可靠性预期出错率的软件预测的可靠性需求规格说明书软件设计说明书被测源程序测试计划(测试数据)测试活动和相关工作产品项目协议对象设计客户开发人员用户集成策略系统分解功能性需求非功能性需求结构测试功能测试性能测试来自ODD来自TP来自SDD来自RAD用户手册验收测试安装测试现场测试日常操作测试设计中需要考虑的22种测试类型黑盒测试白盒测试累计综合测试端到端测试健全测试衰竭测试接受测试负载测试强迫测试可用性测试安装卸载测试恢复测试兼容测试安全测试比较测试Alpha测试Beta测试
6.1.6 测试的方法与技术软件测试的策略和方法静态测试方法动态测人工测试方法计算机辅助静态分析方法白盒测试方法黑盒测试方法静态和动态测试
汽车的检查过程:踩油门看车漆打开前盖检查发动汽车听听发动机声音上路行使静态测试动态测试
静态测试:基本特征是在对软件进行分析,检查和审阅、不实际运行被测试的软件.静态测试约可找出30~70%的逻辑设计错误.对需求规格说明书,软件设计说明书,源程序做检查和审阅、包括:是否符合标准和规范;通过结构分析,流图分析,符号执行指出软件缺陷;
动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性
动态测试的两个基本要素:被测试程序测试数据(测试用例)动态测试方法(1)选取定义域有效值,或定义域外无效值.
(2)对已选取值决定预期的结果(3)用选取值执行程序(4)执行结果与(2)结果相比、不吻和程序有错.动态黑盒测试闭着眼睛测试软件输入不深入代码细节的测试方法称为动态黑盒测试.软件测试员充当客户来使用它.输出动态白盒测试带上X光眼镜测试软件^假如知道一个盒子包含一台计算机、而另一个盒子是人用纸笔计算,就会选择不同的测试用例了解软件的运作方式会影响测试手段§6.2 两种类型的测试
6.2.1 黑盒测试
又称:功能测试数据驱动测试基于规格说明书的测试
6.2.2 白盒测试
又称:开盒测试玻璃盒测试基于覆盖的测试.根据被测程序的逻辑结构设计测试用例;力求提高测试覆盖率;黑盒测试与白盒测试比较黑盒测试是从用户观点、按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试.白盒测试是根据程序内部逻辑结构进行测试.黑盒测试与白盒测试优缺点比较黑盒测试白盒测试优点缺性质
①适用于各阶段测试
②从产品功能角度测试
③容易入手生成测试数据
①可构成测试数据使特定程序部分得到测试
②有一定的充分性度量手段
③可或较多工具支持
①某些代码得不到测试
②如果规格说明有误,则无法发现
③不易进行充分性测试
①不易生成测试数据(通常)
②无法对未实现规格说明的部分进行测试
③工作量大,通常只用于单元测试,有应用局限是一种确认技术,回答我们在构造一个正确的系统吗是一种验证技术,回答我们在正确地构造一个系统吗
6.2.3 穷举测试
例:输入三条边长黑盒测试可采用的测试用例数(设字长16位)
执行时间: 设测试一次需1ms共需一万年.
14
6.2.3 穷举测试白盒测试
例:含4个分支,循环次数≤20,从A到B的可能路径
执行时间: 设测试一次需2ms穷举测试需5亿年.≈10
14 不论黑盒还是白盒测试都不能进行穷尽测试, 所以软件测试不可能发现程序中存在的所有错误, 因此需精心设计测试方案, 力争尽可能少的次数,测出尽可能多的错误.黑盒测试与白盒测试能发现的错误CD-只能用黑盒测试发现的错误-只能用白盒测试发现的错误-两种方法都能发现的错误-两种方法都不能发现的错误§6.3白盒测试的测试用例设计
6.3.1 逻辑覆盖法(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)判定条件覆盖(5)条件组合覆盖(6)路径覆盖(7)点覆盖(8)边覆盖
例:PROCEDURE X=XATHEN X=X1END;开始返回X=XAFTabdce使程序中每个语句至少执行一次语句覆盖
只需设计一个测试用例:
输入数据:A=2,B=0,X=4即达到了语句覆盖;语句覆盖是最弱的逻辑覆盖(2)判定覆盖(分支覆盖)使每个判定的真假分支都至少执行一次判定覆盖
例:可设计两组测试用例:A=3,B=0 ,X=3 可覆盖c,d分支A=2,B=1 ,X=1 可覆盖b,e分支两组测试用例可覆盖所有判定的真假分支语句覆盖仍是弱的逻辑覆盖使每个判定的每个条件的可能取值至少执行一次
第一判定表达式:设条件A>1 取真记为T1假T1条件B=1 取真记为T2假T2
第二判定表达式:设条件A=2 取真记为T3假T3条件X>1 取真记为T4假T4条件覆盖
满足条件: T1,T1,测试用例通过满足的覆盖ABX 路径条件分支两个测试用例覆盖了四个条件八种可能取值.未覆盖c,d分支,不满足判定覆盖的要求.条件覆盖不一定包含判定覆盖判定覆盖也不一定包含条件覆盖选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次.
判定条件覆盖能同时满足判定,条件两种覆盖标准.所有可能的条件取值组合至少执行一次覆盖每一个可能的路径基本路径测试法通过分析由控制构造的环路的复杂性,导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次.
基本路径测试步骤:导出程序流程图的拓扑结构-流图(程序图)计算流图G的环路复杂度V(G)确定只包含独立路径的基本路径集设计测试用例节点边区域程序流程图
9 V(G)= 区域个数=4V(G)=边的条数-节点个数2=4V(G)=判定节点个数1=4path一条新路径必须包含一条新边.这4条路径组成了一个基本路径集.4(环路复杂度V(G))是构成这个基本路径集的独立路径数的上界、也是设计测试用例的数目.设计测试用例,保证基本路径集中每条路径的执行.§6.4黑盒测试的测试用例设计
6.4.1 等价类划分法把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类), 使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同.可从每个子集中选取一组数据来测试程序
例:某报表处理系统要求用户输入处理报表的日期,日期限制在2001年1月至2005年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内、则显示输入错误信息.系统日期规定由年,月的6位数字字符组成,前四位代表年,后两位代表月.如何用等价类划分法设计测试用例,来测试程序的日期检查功能如何划分等价类有效等价类(合理等价类)无效等价类(不合理等价类)
划分等价类的标准:不相交代表性划分等价类的规则(1)如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类.例输入值是学生成绩,范围是0~100有效等价类1≤成绩≤100无效等价类成绩>100成绩
ppt文档的标签: 软件测试
更多推荐标签: 超市说明书   体育事业   公司成立框架   广州十三行   对大学生激励   定位算法   无损检测培训   健康表   财税字   扫描程序   考试教材   职业规划表   高压水清洗   图片处理论文   恋爱主题班会   网络文明宣传   软件二次开发   销售需求分析   中学化学教材   高血压论文   病毒编制   中国山水文化   招生演讲   电信定价   阳光上网   生产安全须知   叶绿体   新能源投资   改善环境   科学与社会  
相关文档推荐
软件测试系列
软件测试
软件测试自动化技术
软件测试
软件测试类型:登记测试
希赛网软件测试频道
软件测试工程师薪资调查
软件测试方
实用软件测试技术分析
软件测试的组织和管理
软件测试中存在的问题
软件测试第一学期考试
软件测试网
软件测试概述
软件测试网
软件测试概论
看软件测试新感受
软件测试基础知识
软件测试引论
希赛网软件测试频道
推荐文档下载
房产管理0404班
五年来我院实验室工作的总结与今后发展的思
预备党员转正申请
关于征集医学部第四届教代会第三次会议提案
日期:2006年5月29日
软件学报
津投期货
"产品研发"
2007"博得印艺杯"
尤溪县教育局文件
桃园县八德市广兴国小推行交通安全教育专题
内蒙古自治区准格尔旗沙圪堵镇
安徽广播电视大学文件
保持员先进性教育专刊(1)
生物医学导
三垂线定理教学设计方案
西安高新区2005人才年之高校行
南昌商学院岗位职责履行情况自评表
合力金桥软件公司
医学临床研究
 
文档下载提示:
·最新免费文档下载、毕业论文免费下载、Word文档下载、Excel表格下载、PDF电子书下载、PowerPoint提案下载
·所有文档均为网友上传,仅供学习参考,用作其它用途时请征得相关权益人许可.
·八文网只提供文档共享平台,不对文档内容的正确性及相关内容所引发的后果负责.
·如此文档"软件测试"涉及您的权益,请附上网址来信告知web_8wen(#)126.com,本站将认真配合并改正。
Copyright ©2005-2008 八文网-  8Wen.com . All rights reserved.