- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013软件测试之软件测试概念详述完整版
国防科技大学计算机学院 软件测试的目标 软件测试是为了发现程序中的错误。 软件测试的过程亦是程序运行的过程。 程序运行需要数据,为测试设计的数据称测试用例。 设计测试用例的原则自然是尽可能暴露错误。 软件测试是一个找错过程。 测试只能找出程序中的错误,而不能证明程序无错。 测试阶段的信息流程 测试阶段的信息流程 输入流分软件配置和测试配置两项,软件配置由需求说明书、设计说明书和源代码组成;测试配置中包含测试计划、测试工具、测试用例和期望结果,有时测试配置亦作为软件配置的一个组成部分。 测试人员根据上述输入信息测试程序并评价测试结果,当测试结果与期望结果存在差异时,往往程序有错。此时可采用排错技术定位错误并改正之。 通过对测试结果的收集和评价,软件质量和软件可靠性的一些定性指标即能逐步确定下来。 测试用例和场景的设计 任何工程化的产品都有两种测试方法: 一种方法是已知产品应该具有的功能,通过测试检验每个功能是否都能正常使用; 另一种方法是已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行。 前者称为黑盒测试,后者称为白盒测试。 测试用例和测试场景将根据这两种测试方法的特性制定。 黑盒测试 黑盒测试完全不考虑程序的内部结构和处理过程。测试仅在程序界面上进行。 设计测试用例旨在说明: ①软件的功能是否可操作; ②程序能否适当地接收输入数据并产生正确的输出结果或在可能的场景中事件驱动的效果是否尽如人意; ③能否保持外部信息(如数据文件)的完整性。 白盒测试 白盒测试法密切关注处理细节,针对程序的每一条逻辑路径都要分别设计测试用例,检查分枝和循环的情况。 穷举测试不可取,一般选用少量“最有效”,即最有可能暴露错误的路径进行测试。 测试的目的是为了找出错误,所以无论采用黑盒法还是白盒法,设计测试用例时总是期望用尽可能少的时间和代价发现尽可能多的错误。 例: 最多有1014个逻辑路径,假设每运行一个测试用例平均花费1毫秒,总共需3170年才能穷尽所有测试。 软件测试的步骤 软件工程的开发过程和测试过程应该是对应的。第一章图1.3采用V型图表示开发—测试的对应关系,也可以采用图14.3所示的螺旋型图表示。 每旋转一圈,测试的范围加大一次: 螺旋中心对应单元测试,它测试源程序的每一模块; 下一步是综合测试,它测试软件总体结构; 再下一步是确认(验收)测试,测试软件是否满足需求; 最后一步是系统测试,检查软件与系统中其他元素是否协调。 软件测试技术 本节主要讨论当用白盒或黑盒测试法测试软件时,如何设计测试用例才能达到测试的目的。 此外,对自动测试工具也作一些简单介绍。 白盒测试 白盒测试应该根据程序的控制结构设计测试用例,原则是: ①保证模块中每一独立的路径至少执行一次; ②保证所有判断的每一分枝至少执行一次; ③保证每一循环都在边界条件和一般条件下至少各执行一次; ④验证所有内部数据结构的有效性。 1.基本路径测试 基本路径测试的主要思想是,根据软件过程性描述(详细设计或代码)中的控制流程确定复杂性度量,然后用此度量定义基本路径集合,由此导出一组测试用例,它们能保证每个语句至少执行一次。 为了使用图论的知识和术语,引入流图(亦称程序图)的概念,流图即把流程图中结构化构件改用一般有向图的表示形式。 代表条件判断的结点称为谓词结点。 结构化构件在流图中的表示 例:流程图 例:对应的流图 条件处理 若判断中含复合条件,则需增加谓词结点。如OR运算的处理。 基本路径测试的思想 基本路径 至少引入一个新语句或者新判断的程序执行通道 测试用例的设计方法 流程图 == 流图 == 基本路径 == 测试用例 Step1 根据程序的逻辑结构画出流程图 void Func(int nPosX, int nPosY) { while (nPosX 0) { int nSum = nPosX + nPosY; if (nSum 1) { nPosX--; nPosY--; } else { if (nSum -1) nPosX -= 2; else nPosX -= 4; } } // end of while } Step1 根据程序的逻辑结构画出流程图 Step2 根据流程图画出流图 Step3 确定基本路径的集合 基本路径 流图的Cyclomatic复杂度正好是基本路径的数目 V(G) = E – N + 2 V(G) = 11 - 9 + 2 = 4 Step3 确定基本路径的集合 1 - 11 1 - 2, 3 - 4, 5 - 10 - 1 - 11 1 - 2, 3 - 6 - 7 - 9 - 10 - 1 - 1
文档评论(0)