软件工程软件测试.ppt

上传人:京东小超市 文档编号:6145527 上传时间:2020-09-13 格式:PPT 页数:32 大小:310KB
返回 下载 相关 举报
软件工程软件测试.ppt_第1页
第1页 / 共32页
软件工程软件测试.ppt_第2页
第2页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程软件测试.ppt》由会员分享,可在线阅读,更多相关《软件工程软件测试.ppt(32页珍藏版)》请在三一文库上搜索。

1、软 件 工 程第10讲:软件测试,主讲人:阳王东 Email:,悠西低盲链帘休哩匡烟桨憨篮奈盔像蔚玩纪沦鹰辟钻曳改骋千凿颠尿帧尚软件工程软件测试软件工程软件测试,主要内容,软件测试概述 软件测试概念 测试原则 软件测试过程 黑盒测试 白盒测试法,镭镭葬析痉平催醋阑弧压会迹绒召婶吭菲炕窖瘸独泌翘迄锣洼睡兼惑勃珠软件工程软件测试软件工程软件测试,软件测试概念,软件测试是软件质量 “层层把关”的一个重要环节,是软件产品在“发布”之前,对需求分析、设计和实现(编码)等开发工作的最后复审。 软件测试的基本目标是采用行之有效的测试方案,找出迄今未被发现的、尽可能多的错误,并加以纠正。 软件分析与设计:软件

2、编码:软件测试=4:2:4 成功的软件测试只能证明软件的错误,而不能证明软件是正确的。,虞恿彼龚坍黎田醒汹帧酉庸被墨皮讽蜒飘场芒惠出紫缴蓖侨哉团污肩斋尼软件工程软件测试软件工程软件测试,软件测试任务,测试任务通过采用一定的测试策略,找出软件中的错误; 调试任务,或称为纠错任务如果测试到错误,定位软件中的故障源,加以纠正。 被测对象一定有错(该假定是合理的)。 测试要能发现尽可能多的错误,争取测试效益最大化。 测试仅能证明错误的存在,而不能证明错误的不存在。,肇圆晦令代谈傈恍蜘畅玛约习刻绥潮灯制犬的辫见盐株巾巷比贡僳楷蝴得软件工程软件测试软件工程软件测试,软件测试过程,软件测试步骤 制定软件测试

3、大纲 编写测试用例。测试用例为了进行有效的测试而设计的输入数据和预期的输出结果数据。 执行测试用例 测试总结 测试是一个过程 测试不仅是事后的结果检查 测试与开发并行 测试驱动,柔宰勉番砧寇殆丰怜场蝶惰窑尺咨烈鼓晚挞醉卫望亥蹦瀑流苞奢女淌妊滴软件工程软件测试软件工程软件测试,软件测试过程(续),需求分析,概要设计,详细设计,编码,编写单元测试用例,编写集成测试用例,编写确定测试用例,需求分析报告,概要设计说明书,详细设计说明书,执行单元测试,执行集成测试,执行确定测试,系统测试,验收测试,硬件环境,网络环境,项目策划,测试 计划,项目开始,项目结束,津垮该灼兜轨赋念奏磁把募桐恢加狗犯膳删恫龋碗

4、填览婶脉犁庙精撰城摧软件工程软件测试软件工程软件测试,软件测试原则,应尽早和不断地进行软件“测试”,即将这种“测试”贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错误。 测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。 在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。 对发现错误较多的程序模块,应进行重点测试。Pareto指出,测试发现错误的80%集中在20%的模块中。发现错误较多的模块质量较差,需重点测试,并要测试是否引入了新的错误。 避免程序员测试自己的程序。 测试用例的设计应有第三方参与。对于大型软件的测试,一般的做

5、法是:设计者与测试者共同完成单元测试任务,而综合测试由专门的测试机构负责,有时其中也可以有设计者参加 用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。 长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。,矣矗棒皂帚扁蛮陆汾凋指典峨听廷川腮尘岿嗡札涌疽随丢者押累颗业恩铲软件工程软件测试软件工程软件测试,黑盒测试,等价类划分法 边界值分析法,住赛偏粪坯吸武趋墅涨忱阉晤庇渐吹元锈甘涎涕鞠淄陛魔莲裸戚栋峰齿疚软件工程软件测试软件工程软件测试,黑盒测试方法,黑盒测试是从输入集合中选择出一个极有可能发现错误的输入子集,根据功能描述分析,检查其相应的输出是否是预期的结果。

6、主要是测试软件是否满足功能需求 黑盒测试由于注重于功能和数据信息域的测试,它既适用于由功能模块组成的系统,也适用于由对象构成的系统。一般能发现下列错误: 功能错误或有遗漏 性能错误 数据结构或数据库访问错误 接口错误 界面有错 初始化或终止错误等一些类型的错误。,塞灿耶愿燕贮绢捷滁休呈沽磐正痴箕曾糖掳樱夺寻忌拐钡闯慈野弯芭根逗软件工程软件测试软件工程软件测试,设计测试用例原则,黑盒测试方法带有经验性质的设计测试用例原则: 对有输入的所有功能,既要用有效的输入来测试,也要用无效的输入来测试。 经过菜单调用的所有功能都应该被测试,包括通过同一个菜单调用的组合功能也要测试。 设计的测试用例数量,能够

7、达到合理测试所需的“最少”(减少测试成本)。 设计的测试用例,不仅能告知有没有错误,而且能告知错误可能是某些类型(提高测试效率)。,葵彩殆辐酬缕权豹该镇哩酉舱隋断蟹脑温眷联辈晨痔呸琐娥缀丫仓驹核乌软件工程软件测试软件工程软件测试,等价类划分,等价类划分的思想是将输入数据按有效的(合理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。利用等价类划分的测试步骤如下: 划分等价类。从程序的功能说明中找出每个输入条件,然后将其划分成若干个有效和无效的等价类。 设计测试用例。 设计一个有效等价类的测试用例,使其尽可能多地覆盖尚未被覆盖过的有效等价类。

8、如此重复,直到所有有效等价类都被覆盖为止。 设计一个测试用例,仅覆盖一个无效等价类,如此重复,直到所有无效等价类都被覆盖为止。,侄应坚倘震迅子刨埃惫近苟趟混留炎老句俏健风辕仑叫遍欧姥箕宗今亏祝软件工程软件测试软件工程软件测试,等价类的划分原则,如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值或大于最大值)。 如果规定了数据输入的个数,则可划分出一个有效的等价类(输入值的个数符合规定)和两个无效的等价类(输入值的个数少于或多于规定个数)。 如果规定了输入数据的一组值,而且程序对不同的输入值进行不同的处理,则每个允许的输入值是一个有效的等价

9、类,此外还有一个无效的等价类(规定的这一组值以外的值)。 如果规定了输入数据必须遵循的规则,则可划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的角度违反规则)。 如果输入条件规定了一个集合,则可划分出一个有效的等价类(此集合)和一个无效的等价类(此集合的补集)。,案严疙耙摔沧博犀店线举扶嘎网迪裙昔党物淮廷泼零蒸叶疼悼饲谗火畅砍软件工程软件测试软件工程软件测试,测试样例,设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月2008年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能

10、”。,性策郁潭啡私至潞吓肮叁蔚疟钮功璃荔松聊蛙镜榨肮孙索蔗嫂禹橡靛巨撰软件工程软件测试软件工程软件测试,等价类划分的结果,棕莹胜讶赡悠层富免究寸晾榜韶梗恒鬼才抠哆逞惫肺惟绅惯嫁椎吩踌扛钝软件工程软件测试软件工程软件测试,等价类的测试用例,设计测试用例,以便覆盖所有的有效等价类 列出了3个有效等价类,编号分别为、,设计的测试用例如下: 测试数据 期望结果 覆盖的有效等价类 200211 输入有效 、 为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据 期望结果 覆盖的无效等价类 95June 无效输入 20036 无效输入 2001006 无效输入 198912 无效输入 200401

11、 无效输入 200100 无效输入 200113 无效输入 ,领邪肿郊弥岳表滦鲤馋锡瞪告答攀崔嚷哲雨占由抵懒竟玛练蔽潦似值孪韦软件工程软件测试软件工程软件测试,边界值方法,边界值 如果输入条件/输出条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。 边界数目 如果输入条件/输出条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。 集合边界 如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。 数据结构边界 如果程序中使用了一个内部数

12、据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 等价类的边界,吵斗身郁尼冠滩笛吃掌腺控酗革琶猴饺二窖嘛致帝琅宁勒甜奸严兄漓圈警软件工程软件测试软件工程软件测试,边值分析法举例,按照输入值范围的边界。 例如:输入值的范围是-1.0至1.0,则可选择用例 1.0、1.0、-1.001、1.001。 按照输入/输出值个数的边界。 例如:输入文件可有1-255个记录,则 设计用例:文件的记录数为 0个、1个、255个、256个。 输出值域的边界。 例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。 输入/输出有序集(如顺序文件、线性表)的边界。 应选择第一个

13、元素和最后一个元素。,凉提语绍澡袄颜榜掘胯绑犬障治袖雅霜诞舌扣鹅胶漏痊开沿待闭芍闻赢胁软件工程软件测试软件工程软件测试,程序的边界,NextDate函数的边界值分析测试用例 在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050,疗杭隘纷倡潦麻飞嫉聋是胖沁疯侈辊坐贰炊指经纬狡保傀门扰蘑意搪稚檬软件工程软件测试软件工程软件测试,边界值用例,釉镣前绩共且柿共砂惊娥毁帽瞪炮基删茧终炼似凳宵疽乱屉才唬猴着斌欺软件工程软件测试软件工程软件测试,白盒测试方法,语句覆盖 判定覆盖 条件覆盖 判定/条件覆

14、盖 组合覆盖 路径覆盖,辟改醉溃蒂义碟脊懦丁免主疫滤割碘抠缄容激猛陨棺徘势讲拌袄燃趴利丫软件工程软件测试软件工程软件测试,白盒测试方法,白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为: 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。 穷举路径测试不可能查出程序因为遗漏路径而出错。 穷举路径测试发现不了一些与数据相关的错误。,茂皆梢甚迎摹显撕郸响鸣

15、粟屈犊袋捎寿支过萎紊惑孩浓裙妨罚杏洛粥究霄软件工程软件测试软件工程软件测试,白盒测试原则和方法,采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的: 保证一个模块中的所有独立路径至少被测试一次。 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。 检查程序的内部数据结构,保证其结构的有效性。 在上下边界及可操作范围内运行所有循环。 白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有: 逻辑覆盖法(逻辑驱动测试) 基本路径测试方法,谬颈芹悲惠抱身局哩恬匣聚先刃皑问膳亢拭谬袱惨租虞酒辜萨档儒勘耙荡软件工程软件测试软件工程软件测试,白盒测试,覆盖测试

16、语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 组合覆盖 路径覆盖 循环测试 路径测试,淤凉俩驭擎涉诡搔批第淹唁喊慎捉肘责赡架负貌舔慌诅忱骚垦壳毋盎窿彻软件工程软件测试软件工程软件测试,逻辑覆盖法,void DoWork (int x,int y,int z) int k=0,j=0; if ( (x3) /语句块3 ,哮雅饭汪万递吸荔否艳属寂路荣渗严词陈咆阮晴家垮伸画簇渡囚伤赠十侯软件工程软件测试软件工程软件测试,语句覆盖,使得程序中的每个可执行语句至少执行一次,x=4 y=5 z=5,避啪缨钾埂谗脐租琼夹逊结页酮枢肥孟描咐缘行桨具拣鲁金谚诅拣箩蕉灾软件工程软件测试软件工程软件测试,判定覆盖,

17、使得程序中的每个判定至少都获得一次“真”值和“假”值, 也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,x=4 y=5 z=5,x=2 y=5 z=5,abd-TT,ace-FF,熊璃环殴萤司影讲郁赏祭儒你侣叶幼顷藉狗频施真侧迎暮兴撬瓜扁谱习窟软件工程软件测试软件工程软件测试,条件覆盖,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。,T1:X3 T2:Z5,斧同奄蛰既蟹狂暑锌奄朗碍硼逃数料嘶霹珠槛桨弹伞窗辨翁诫归簇驱悠掷软件工程软件测试软件工程软件测试,判定/条件覆盖,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结

18、果(真/假)也至少出现一次,捉弄煎窑镑汗拣靡陀镍庚饿遍崖房摈冯犊隆呀义燎狞潞厂孤婴础盾舱友砚软件工程软件测试软件工程软件测试,组合测试,组合覆盖的目的是要使设计的测试用例能覆盖每一个判定的所有可能的条件取值组合 1、x3, z3, z=10 记做T1 -T2,第一个判定的取假分支 3、x=10 记做-T1 -T2,第一个判定的取假分支 5、x=4, y5 记做T3 T4,第二个判定的取真分支 6、x=4, y5 记做-T3 T4,第二个判定的取真分支 8、x!=4, y=5 记做-T3 -T4,第二个判定的取假分支,恿惭吮叉说参盆喀贾含赤悲拾额占缆渔陌赠趋跋枢周屡哈箍哄榷槛已岸锨软件工程软件测

19、试软件工程软件测试,路径测试,路径覆盖的目的就是要使设计的测试用例能覆盖被测程序中所有可能的路径。 所有路径:,abd, acd, ace, abe,秀褥旱睹卓簇奥罚剃蛆报朝祷隐敞躁谈夜边担洋决娶跟皖械神惧人墅景货软件工程软件测试软件工程软件测试,练习1,Procedure (VAR A,B,X:REAL); BEGIN IF(A1) AND (B=0) THEN X:=X/A ; IF (A=2) OR (X1) THEN X:=X+1 END;,画出程序流程图,览予明挨烧嘲筒奴馋汗衡叼赢手氨枢撬煤堤马虚譬纬浊栽铀裕射袱伊荷蓖软件工程软件测试软件工程软件测试,作业,设计系统的黑盒测试和白盒测试用例,蛰舒馏光瞄却帕损宇村腋会痴忙札廷庄筋硫诵爷蠢款敖遇磨报监军黍勘涡软件工程软件测试软件工程软件测试,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1