课外系统测试.

上传人:我** 文档编号:117867648 上传时间:2019-12-11 格式:PPTX 页数:55 大小:510.85KB
返回 下载 相关 举报
课外系统测试._第1页
第1页 / 共55页
课外系统测试._第2页
第2页 / 共55页
课外系统测试._第3页
第3页 / 共55页
课外系统测试._第4页
第4页 / 共55页
课外系统测试._第5页
第5页 / 共55页
点击查看更多>>
资源描述

《课外系统测试.》由会员分享,可在线阅读,更多相关《课外系统测试.(55页珍藏版)》请在金锄头文库上搜索。

1、7.1 系统测试概述 错误的概念: “测试是证明程序中不存在错误的过程” “程序测试的目的是要证明程序正确地执行了预期的功能” “程序测试的过程是使人们确信程序可完成预期要完成的工 作过程” 测试的正确定义:为了发现错误而执行程序的过程。从这 个定义出发可以看出应该把查出了新错误的测试看作是成 功的测试,没有发现错误的测试则是失败的测试。 测试的基本方法 黑盒测试 黑盒测试是测试者把程序看成是一个黑盒,完全不 考虑程序内部结构和内部特性而进行的测试 穷举输入测试 两个推断 程序测试并不能保证程序中没有错误。 由于穷举测试是不可能的,因此测试的目标应该是使 有限的测试投资获得最大的收益,即以有限

2、的测试数 据查出最多的错误。 测试的基本方法 白盒测试 白盒测试或逻辑驱动测试允许人们检查程序的内部 结构,是测试者从检查程序的逻辑着手,得出测试 数据,进行测试的过程 穷举路径测试 7.1.2 测试的基本原则 1、尽早开展测试 2、避免同化效应 测试人员与开发人员一起在某个项目中工作较长时间后,容 易受开发人员对软件观点的影响,变得容易赞同开发人员的观 点。 测试人员对软件的熟悉程度越高,越容易忽略一些看起来较 小的问题。这也是一些测试人员感觉越来越难发现缺陷的原 因。 3、在发现较多错误的地方投入更多的测试 4、确定预期输出 5、程序员应避免测试自己的程序 6、程序设计机构不应测试自己的程

3、序 7、对非法的和非预期的输入情况,也要像对合法的、预期的输 入一样,编写测试数据 8、检查程序是否做了要做的事仅是成功的一半,另一半是看程 序是否做了不要它做的事。这条原则意味着在程序测试时,必须 对那些人们不需要的“副作用”进行检查。 9、不要扔掉测试数据 10、在进行测试设计时不要设想程序中不会查出错误 7.1.3 测试测试 内容及测试测试 手段 系统测试常用的手段有两种: 人工测试:一种是不依赖于计算机的测试。经验 表明,人工测试能相当有效地查找错误,因此每 一个应用系统都要用一种或多种人工测试技术。 常用的人工测试技术有程序审查会、人工运行及 复查等。 计算机测试:即准备一些测试数据

4、和测试程序在 计算机上运行,以此来查找程序错误。 人工测试方法人工测试方法 1、程序审查会 2、人工运行 3、静态检验 7.2 人工测试方法 7.2.1 程序审查会 程序审查会(Code Inspections)是让小组成员阅读 程序代码而进行的一系列步骤和查找错误的办法。 组成(4-5人): 调解人,调解人一般由能力强的程序员担任 程序员,被审查程序的作者 系统分析或设计人员 测试专家 系统分析员或设计员负责对程序的结果进行评审,测 试专家负责对整个测试过程和结果进行评审。 7.2.1 程序审查会 会前准备: 调解人在会议开发之前(前几天),把这个程 序清单和设计规范分发给小组的其他成员 会

5、议任务: 1、讲述程序的逻辑结构。期间大家提出问题加 以追究,以断定错误是否存在。 2、根据常见程序错误检验单分析程序。 会期: 90分钟至120分钟之间 6.2.1 程序审查会 注意的问题 如果程序员把审查会看成是对他的人格的攻击,从而采 取自卫的态度,那么审查过程就会没有什么效果。 程序员抱虚心的态度参加会议,用正确的和建设性的眼 光看待审查处理 即审查会的目的在于发现程序中的错误,从而改进他的 工作质量。 审查会的结果应该只限于与会者知道。如果部门或组织 的经理使用了审查会的结果,那么这种审查过程马上就 会失去意义。 7.2.1 程序审查会 常见程序错误检验单包含的经常出现的软件错误 数

6、据引用错误 数据说明错误 计算错误 比较错误 控制流程错误 接口错误 输入/输出错误 其它检查 接口错误,Java 举例 public MyDemo() public static void operate(StringBuffer x,StringBuffer y) x.append(y); y=x; System.out.println(x+,+y); public static void main(String args) StringBuffer a=new StringBuffer(A); StringBuffer b=new StringBuffer(B); operate(a,b

7、); System.out.println(a+,+b); x 会指向 a 所指向的内存(可以理解为都指向A),y 会指向 b 所指向的内存,( 可以理解为都指向B) x.append(y); /这句话把 y 指向的值追加给x指向的值,这个时候x 和a 指向的内 存都是AB,y指向的内存仍然是B y=x;/这句话就是把 x 的值 附值给 y, 附的是地址,这样 a,y,x 同时值向 AB,b 仍然指向 B 7.2.3 静态检验 静态检查可以看作一个人参加的程序审查会,或 一个人参加的人工运行。让一个人读程序,依照 查错表来检查程序或用测试数据把程序“走”一 遍。 静态检验 利用测试数据进行单人

8、的检验 弊端 过程松散 缺乏激励机制 “黑盒”穷举输入测试或“白盒”的穷举路径测 试通常是不可能实现的 设计测试数据的目的是在所有可能的测试数据中 ,研究怎样的子集有可能发现最多的程序错误 一般来说可以先使用“黑盒”方法设计测试数据 ,然后检查程序的逻辑关系(即用“白盒”方法 )进行补充设计,最后得到一个合理而严格的一 组测试数据 7.3 测试测试 用例的设计设计 7.3.1 测试用例的设计步骤 测试用例(Test Case)是为某个特殊目标而编 制(设计)一组输入数据、执行条件和预期结果 ,以便测试某个程序路径或核实是否满足某个特 定需求。 测试用例设计重点在于输入数据的设计,根据输 入数据

9、说明执行条件和预期的结果。 7.3 测试测试 用例的设计设计 测试设计一般包括以下几个步骤: 1、测试需求的分析 2、业务流程分析 3、测试用例设计 用例编号:测试用例的编号有一定的规则,例如测试用例的 编号的命名规则是:项目名称测试阶段类型(系统测试阶段 )编号,定义测试用例编号,便于查找测试用例,便于测试 用例的跟踪 测试软件:指明被测试的软件或项目的名称,软件或项目的 版本(内部版本号),测试具体功能模块等 测试标题:对测试用例的描述,测试用例标题应该清楚表达 其用途。 重要级别:定义测试用例的优先级别,可以笼统的分为“高 ” 和“低”两个级别。一般来说,如果软件需求的优先级为 “高”,

10、那么针对该需求的测试用例优先级也为“高”;反之 亦然 测试输入:提供测试执行中的各种输入条件 操作步骤:提供测试执行过程的步骤 预期结果:提供测试执行的预期结果 7.3 测试测试 用例的设计设计 4、测试用例评审 测试用例设计完成后,为了确认测试过程和方法是 否正确,是否有遗漏的测试点,需要进行测试用例 的评审。 5、测试用例更新完善 测试用例编写完成之后需要不断完善,软件产品新 增功能或更新需求后,测试用例必须配套修改更新 ;在测试过程中发现设计测试用例时考虑不周,需 要对测试用例进行修改完善;在软件交付使用后客 户反馈有软件缺陷,而缺陷又是因为测试用例存在 漏洞造成,也需要对测试用例进行完

11、善。 7.3.2 白盒测试 白盒测试主要用于检查程序内部的结构、逻辑、 循环和路径 主要思想是通过程序逻辑结构的遍历实现程序的 覆盖。 语句覆盖 考虑一种合理的白盒测试,即编写足够的测试数据 ,使得每条语句至少执行一次 A2;B0和X3 路径:ace 判定覆盖 要求必须编写足够的测试数据,使得每个判定至少 有一次“真”和一次“假”的结果。另一种说法是 ,每个分支方向都必须至少经过一次 A3,B0,X3和A2,B1,X1 acd及abe 条件覆盖 要求写出足够的测试数据,以使判定中每个条件的所有可能结果至 少出现一次,并且要在程序或子程序的每个入口点至少进入一次 A2,B0,X4,ace A1,

12、B1,X1,abd 条件判定覆盖 要求足够的测试数据,使得判定中每个条件的所有可能结果至少出 现一次,每个判定本身所有可能结果也至少出现一次,同时每个入 口点至少要进入一次 A1,B0,X3 A2,B1,X1 多重条件覆盖 要求写出足够的测试数据使得每个判定中条件结果的所有可能组合 至少出现一次和所有的入口点都至少进入一次 A2,B0,X4 覆盖, A2,B1,X1 覆盖, A1,B0,X2 覆盖, A1,B1,X1 覆盖, A1,B0 A1,B0 A1,B0 A1,B0 A2,X1 A2,X1 A2,X1 A2,X1 逻辑覆盖测试 对于每一个只有一个条件的程序, 每个判定的所有结果至少出现一

13、次 每个入口点至少进入一次(以确保全部的语句至少 执行一次)。 对于具有多重条件判定的程序来说 测试数据能使每个判定中所有可能的条件组合结果 至少出现一次, 程序的所有入口点至少要进入一次。 7.3.3 黑盒测试 注重与软件的功能性需求 主要方法是验证程序能否接受输入数据而产生正 确的输出信息。 多用于系统测试和验收测试等高层测试。 7.3.3 黑盒测试 黑盒测试通常能发现以下几类错误: 功能不对或遗漏 界面错误 数据结构或外部数据库访问错误 性能错误 初始化和终止错误 1等价类划分 测试数据的特性 它通过一个测试数据的多方面效果来减少其余的测试数 据数,而产生这些测试数据是要达到某些预定的“

14、合理 的”测试目标 它是覆盖其余可能的测试数据的一个大集合 用等价类划分进行测试数据设计要分两步进行 确定每一个条件 划分等价类 找出测试数据 (1)确定等价类 确定等价类的办法是:先取出每一个输入条件,然后把每个输入条件 化成两组或更多组,然后可以列出等价类表 确定等价类的几条原则: 如果某个输入条件规定了值的范围,例如X值的范围是1999,就可以确 定一个有效等价类1X999和两个无效等价类X1、X999。 如果一个输入条件规定了值的个数,例如每班学生人数不超过40人,就 可以确定一个有效等价类1学生人数40和两个无效等价类学生人数0 、学生人数40。 如果一个输入条件规定了一个输入值的集合,而且有理由确信程序对每个 输入值都分别进行处理,则对集合中每个元素可以确定一个等价类(在集 合中的元素),同时可以对集合确定一个无效等价类(不在集合中的元素 )。 如果一个输入条件规定了“必须如何”的条件(例如标识符的第一个字符 必须是字母),则可以确定一个有效等价类(是字母)和一个无效等价类 (不是字母)。 如果有理由确信某一个等价类中的各元素在程序中的处理方式是有区别的 ,那就应把这个等价类分成更小的等价类。 (2)确定测试数据 确定测试数据的过程 给每个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号