- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程基础解读
瀑布模型的优缺点 4、白盒测试和黑盒测试 动态测试的方法,大体上分为黑盒法与白盒法两类。不论黑盒还是白盒测试都不能进行穷尽测试, 所以软件测试不可能发现程序中存在的所有错误, 因此需精心设计测试方案, 力争尽可能少的次数,测出尽可能多的错误。 白盒测试(结构测试): 白盒测试是根据程序内部逻辑来设计测试用例,常用的方法是测试数据运行时对程序逻辑的覆盖程度。 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 组合条件覆盖 路径覆盖 例:一个被测程序模块的流程图如右图: int samp (int A,int B,int X) { int Y; if ((A1) (B==0)) X=X/A; if ((A=2) || (X1)) X++; Y=X; return(Y); } 语句覆盖:选择测试用例,使每个语句至少执行一次。语句覆盖是最弱的 覆盖标准,又称为点覆盖。 上例中只需设计一个测试用例: 输入数据:A=2,B=0,X=4 即达到了语句覆盖 判定覆盖:选择测试用例,使得每个判断的所有可能结果至少出现一次。判定覆盖仍是弱的覆盖标准,也称为边覆盖。 上例中可设计两组测试用例: A=3,B=0 ,X=3 可覆盖c、d分支 A=2,B=1 ,X=1 可覆盖b、e分支 条件覆盖:选择测试用例,使每个判定中的每个条件的可能值结果至少出现一次。 两个测试用例覆盖了四个条件八种可能取值。 注意:未覆盖c、d分支,不满足判定覆盖的要求。可见: 条件覆盖不一定包含判定覆盖 判定覆盖也不一定包含条件覆盖 判定/条件覆盖:选择测试用例,不但每个判定的每个条件的所有可能值至少出现一次,同时每个判定本身的所有可能结果至少出现一次。判定/条件覆盖是判定覆盖与条件覆盖的综合,但不能保证检查出逻辑表达式的全部错误。 条件组合覆盖:选用足够多的测试用例,使得每个判定中条件的所有可能值的组合至少出现一次,但不能保证所有可能的路径都被覆盖。 路径覆盖:选择足够的测试用例,使得程序每条可能执行到的路径都执行一次,如果有环路,要求每条环路至少经过一次,但它并没有考虑判断中条件结果的组合。 黑盒测试(功能测试): 根据设计说明所规定的功能来设计测试用例,不考虑程序内部结构 。 等价类划分 边缘值分析 因果图法 错误猜测 等价类划分:等价分类法的基本思想是将所有可能的输入数据(有效的和无效的)划分成若干个等价的子集 (称为等价类), 使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同. 可从每个子集中选取一组数据来测试程序。 等价类划分有两种情况: 合理等价类:测试模块是否实现了规定的功能和性能 不合理等价类:测试模块是否能够拒绝无效输入,被测试对象在运行条件错误时的可靠性如何 边缘值分析:设计测试用例,使程序运行在边界情况附近测试。 例:邮件收费规定 1~5 kg收费2元,则应设计测试用例: 0.9, 1, 5,5.1 kg 或0.99,1, 5,5.01 kg。 因果图法:根据系统说明书中规定的原因和结果直接的关系画出因果图,进行测试。因果图方法最终生成的是判定表。起步骤为: (1)分析哪些是原因,哪些是结果,给每个原因、结果一个标识。 (2)分析语义,找出原因与结果、原因与原因之间的关系,画出因果图。 (3)在因果图上标明约束或限制条件。 (4)把因果图转化为判定表 。 (5)根据判定表每一列设计测试用例。 将因果图转化为判定表: 为判定表每一列设计一个测试用例: 错误猜测:凭直觉和经验推测某些可能存在的错误,针对这些可能存在的错误设计测试用例。 不同类型的程序通常具有若干特殊的易出错的情况,这些情况未必可以归结为等价类或者边界情况。有经验的测试人员往往根据经验与直觉,例举出程序中可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例,实行高效的测试。 * 第六章 软件工程基础 1、软件的发展与软件危机 软件危机:软件质量难以保证,出错率高,开发成本增长难以控制,极少有在预定的成本预算内完成的;软件开发进度难以控制,周期拖的很长,软件维护困难,维护人员和费用不断增加,甚至出现不可维护。 软件工程方法:按照系统的、工程的原则和方法来组织和规范软件开发的过程,解决软件开发中面临的问题,促进软件的发展。 ?
文档评论(0)