软件测试的目标概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在对接口进行测试时主要检查下述各点; (1)参数数目和由调用模块送来的变元的数目是否
相等? (2)参数的属性和变元的属性是否匹配? (3)参数和变元的单位系统是否匹配? (4)传送给被调用模块的变元的数目是否等于那个 模块的参数的数目? (5)传送给被调用模块的变元属性和参数的属性是 否一致? (6)传送给被调用模块的变元的单位系统和该模块参 数的单位系统是否一致? (7)传送给内部函数的变元属性、数目和次序是否 正确? (8)是否修改了只做输入用的变元? (9)全程变量的定义和用法在各个模块中是否一致?
7.1.4 测试阶段的信息流
7.2 单元测试
单元测试集中检验软件设计的最小单元——模 块。单元测试通常使用白盒测试法,而且对多个模 块的测试可以并行地进行。 7.2.1 单元测试考虑
在单元测试期间主要评价模块的下述五个特性: ➢ 模块接口; ➢ 局部数据结构; ➢ 重要的执行通路; ➢ 出错处理通路; ➢ 影响上述各方面特性的边界条件。
3. 系统测试
系统测试是把经过测试的子系统装配成一 个完整的系统来测试。在这个测试步骤中发 现的往往是软件设计中的错误,也可能发现 需求说明中的错误。
4. 验收测试
验收测试把软件系统作为单一的实体进行 测试,目的是验证系统确实能够满足用户的 需要,在这个测试步骤中发现的往往是系统 需求说明书中的错误。
期待着相等条件的出现; (4)“差1”错(即,多循环一次或少循环一次); (5)错误的或不存在的循环终止条件; (6)当遇到发散的迭代时不能终止循环; (7)错误地修改循环变量。
白盒测试又称为结构测试,它的前提是可 以把程序看成装在一个透明的白盒子里,也 就是完全了解程序的结构和处理过程。这种 方法按照程序内部的逻辑测试程序,检验程 序中的每条通路是否都能按预定要求正确工 作。
(使用程序设计的控制结构导出测试方案)
包含所有可能情况的测试称为穷尽测试, 对于实际程序而言,穷尽测试通常是不可能 做到的。
黑盒测试又称为功能测试,它把程序看成 一个黑盒子,完全不考虑程序的内部结构和 处理过程。也就是说,黑盒测试是在程序接 口进行的测试,它只检查程序功能是否能按
照规格说明书的规定正常使用,程序是否能 适当地接收输入数据产生正确的输出信息, 并且保持外部信息(如,数据库或文件)的 完整性。
(故意不考虑控制结构,而是注意信息域)
由于错误的计算、不正确的比较或不适当 的控制流造成的错误: (1)计算次序不对或误解了运算符的优先次序; (2)混合运算(运算对象的类型彼此不相容); (3)变量初始值不正确; (4)精度不够; (5)表达式的符号表示错误。
比较后控制流变化的错误: (1)比较数据类型不同的量; (2)逻辑运算符不正确或优先次序的错误; (3)当由于精度问题两个量不会相等时,程序中却
7.1.3 软件测试的步骤
1. 模块测试
模块测试的目的是保证每个模块作为一个单元 能正确运行,所ຫໍສະໝຸດ Baidu模块测试通常又称为单元测试。 在这个测试步骤中所发现的往往是编码和详细设计 的错误。
2. 子系统测试
子系统测试是把经过单元测试的模块放在一起 形成一个子系统来测试。模块相互间的协调和通信 是这个测试过程中的主要问题,因此这个步骤着重 测试模块的接口。
如果一个模块完成外部的输入或输出时, 还应该再检查下述各点:
(1)文件属性是否正确? (2)打开文件语句是否正确? (3)格式说明书与输入/输出语句是否一致? (4)缓冲区大小与记录长度是否匹配? (5)使用文件之前先打开文件了吗? (6)文件结束条件处理了吗? (7)输入/输出错误检查并处理了吗? (8)输出信息中有文字书写错误吗?
对于一个模块而言,局部数据结构是常见 的错误来源。应该仔细设计测试方案,以便 发现下述类型的错误:
(1)错误的或不相容的说明; (2)使用尚未赋值或尚未初始化的变量; (3)错误的初始值或不正确的缺省值; (4)错误的变量名字(拼写错或截短了); (5)数据类型不相容; (6)上溢、下溢或地址异常。
5. 平行运行
平行运行就是同时运行新开发出来的系统和将 被它取代的旧系统,以便比较新旧两个系统的处理 结果。这样做的具体目的有如下几点:
(1)可以在准生产环境中运行新系统而又不冒风 险;
(2)用户能有一段熟悉新系统的时间;
(3)可以验证用户指南和使用手册之类的文档;
(4)能够以准生产模式对新系统进行全负荷测试, 可以用测试结果验证性能指标。
由于测试的目标是暴露程序中的错误,因 此由程序的编写者自己进行测试是不恰当的。 因此,在综合测试阶段通常由其他人员组成 测试小组来完成测试工作。
测试不能证明错误不存在,只能表示软件 错误已经出现。
测试决不能证明程序是正确的。即使经过 了最严格的测试之后,仍然可能还有没被发 现的错误潜藏在程序中。测试只能查找出程 序中的错误,不能证明程序中没有错误。
发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的
错误的测试。 测试的定义——为了发现程序中的错误而执 行程序的过程。
测试目标决定了测试方案的设计。如果为 了表明程序是正确的而进行测试,就会设计 一些不易暴露错误的测试方案;相反,如果 测试是为了发现程序中的错误,就会力求设 计出最能暴露错误的测试方案。
软件测试在软件生命周期中横跨两个阶段。 软件测试包括两种:
单元测试——模块的编写者和测试者是同一 个人
综合测试——由专门的测试人员承担 软件测试的工作量往往占软件开发总工作
量的40%以上
7.1 基本概念
7.1.1 软件测试的目标 (1)测试是为了发现程序中的错误而执行程序
的过程; (2)好的测试方案是极可能发现迄今为止尚未
7.1.2 黑盒测试和白盒测试 测试任何产品都有两种方法:
黑盒测试——如果已经知道了产品应该具有 的功能,可以通过测试来检验是否每个功能 都能正常使用;
白盒测试——如果知道产品内部工作过程, 可以通过测试来检验产品内部动作是否按照 规格说明书的规定正常进行,且所有内部部 件被充分利用(确保“所有齿轮吻合”)。