系统测试基础知识

上传人:第*** 文档编号:53547159 上传时间:2018-09-02 格式:PPT 页数:80 大小:846KB
返回 下载 相关 举报
系统测试基础知识_第1页
第1页 / 共80页
系统测试基础知识_第2页
第2页 / 共80页
系统测试基础知识_第3页
第3页 / 共80页
系统测试基础知识_第4页
第4页 / 共80页
系统测试基础知识_第5页
第5页 / 共80页
点击查看更多>>
资源描述

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

1、系统测试,系统测试,了解系统测试的原则、方法、手段 理解测试情况设计的几种基本方法 掌握系统测试过程常见的测试类型 掌握系统测试文档的结构及要求 了解基本的测试工具,系统测试,1 系统测试概述 2 系统测试过程 3 系统测试文档 4 测试工具简介,系统测试在系统开发过程中占有重要的地位。任何一个系统分析员,在系统分析和设计时都不可能把所有问题都考虑周到;任何一个程序员在系统实现时,总是或多或少地发生差错。然而对系统而言,不允许出现任何差错,所以测试是非常重要的。可以说,测试就是寻找“系统错误”,特别是寻找不经常出现的错误、隐藏着的错误。此外,还要对系统的容错、纠错能力等进行测试。,系统测试,1

2、 系统测试概述,1.1 系统测试的原则 1.2 系统测试的方法 1.3 系统测试过程中应注意的问题 1.4 测试情况设计,1.1 系统测试概述,著名软件测试专家迈尔斯(Grenford J. Myers)在软件测试技巧一书中,就系统测试目的提出以下观点: 测试是为了发现错误而执行程序的过程; 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例,在于能够发现至今未能发现的错误; 一个成功的测试是发现了至今未发现过的错误。,1.1 系统测试的原则,根据测试目的,一般情况下应遵循的测试原则是: 1) 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 不应把软件测试仅仅看作是

3、软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中。坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些发生错误的隐患。 2) 测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。 测试以前应当根据测试的要求选择测试用例(Test case),用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。,1.1 系统测试的原则,3) 程序员应避免测试自己的程序。程序员应尽可能避免测试自己编写的程序,程序开发小组也应尽可能避免测试本小组开发的程序。如果条件允许,最好建立独立的软件测试小组

4、或测试机构。这点不能与程序的调试(debuging)相混淆。调试由程序员自己来做更有效。 4) 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指异常的、临界的,可能引起问题异变的输入条件。软件系统处理非法命令的能力必须在测试时受到检验。用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误。,1.1 系统测试的原则,5) 充分注意测试中的群集现象。 在被测程序段中,若发现错误数目多,则残存错误数目也比较多。这种错误群集性现象,已为许多程序的测试实践所证实。根据这个规律,应当对错误群集的程序段进行

5、重点测试,以提高测试投资的效益。 6) 严格执行测试计划,排除测试的随意性。 测试之前应仔细考虑测试的项目,对每一项测试做出周密的计划,包括被测程序的功能、输入和输出、测试内容、进度安排、资源要求等.,1.1 系统测试的原则,7) 应当对每一个测试结果做全面检查。 有些错误的征兆在输出实测结果时已经明显地出现了,但是如果不仔细地全面地检查测试结果,就会使这些错误被遗漏掉。 8) 妥善保存测试计划,测试用例,出错统计和最终分析报告。 按照测试计划要求,将所有测试过程进行详细记录,并将测试文档资料完整保存,以便在以后的系统维护中查阅。,1.2 系统测试的方法,按照迈尔斯的定义,测试是一个执行程序的

6、过程,即要求被测程序在机器上运行。其实,不执行程序也可以发现程序的错误。为便于区分,一般把前者称为“动态测试”,后者称为“静态分析”。广义地说,它们都属于程序测试,测试的方法分类见图1。,1.2 系统测试的方法,图 1 测试的方法分类,程序 测试,静态分析 (程序不执行),动态测试 (程序执行),静态分析器分析 (自动方式),代码评审 (人工方式),黑盒测试(测试程序功能),白盒测试(测试程序结构),代码会审代码走查 桌面检查,1. 静态分析,顾名思义,静态分析就是通过对被测程序的静态审查,发现代码中潜在的错误。这种方法的主要特性是不利用计算机运行被测试的程序,而是采用其他手段达到检测的目的。

7、它一般用人工方式完成,故亦称人工测试或代码评审;也可借助于静态分析器在机器上以自动方式进行检查,但不要求程序本身在机器上运行。 代码审查一般按代码审查单阅读程序,查找错误。内容包括:检查代码和设计的一致性;检查代码的标准性、可读性;检查代码逻辑表达的正确性和完整性;检查代码结构的合理性等。按照评审的不同组织形式,代码评审又可区分为代码会审、走查和桌面检查三种。对某个具体的程序,通常使用一种或一种以上评审方式进行综合评审。,2. 动态测试,动态测试是实际运行被测程序,输入相应的测试用例,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性。 动态测试可分为两类:一类把被测程序看成一个黑

8、盒,根据程序的功能来设计测试用例,称为黑盒测试;另一类则根据被测程序的内部结构设计测试用例,测试者需事先了解被测程序的结构,故称为白盒测试。,1.2 系统测试的方法,黑盒测试。黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否能按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边界分析、因果图、猜测错误

9、等,主要用于软件确认测试。,1.2 系统测试的方法,白盒测试。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作的过程,可通过测试来检测程序内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,1.2 系统测试的方法,白盒测试需全面了解程序内部逻辑结构,对所有逻辑路径进行测试,是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数有时是天文数字,但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试

10、决不能查出程序违反了设计规范,即程序本身是个错误的程序;第二,穷举路径测试不可能查出程序中因遗漏路径而出错;第三,穷举路径测试可能发现不了一些与数据相关的错误。,1.2 系统测试的方法,2)测试和测试 如果软件是为多个客户开发,那么由每个客户都实施正式的验收测试是不现实的。大多数软件产品的开发人员采用所谓测试和测试的步骤,以便让最终用户快速找出错误。测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。被测试的软件由开发人员安排在可控的环境下进行检验,并记录发现的错误和使用中的问题。,1.2 系统测试的方法,测试是由软件的多个用户在一个或多个用户的实际使

11、用环境下进行的测试。与测试不同的是,开发者通常不在测试现场。因而,测试是在开发者无法控制的环境下进行的软件现场应用。在测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告,开发者在综合用户的报告之后,做出修改,最后将软件产品交付给全体用户使用。,1.3 系统测试过程中应注意的的问题,在测试过程中一般把发现的错误bug按其严重性大致分为4类:致命错误(系统崩溃或挂起、破坏数据)、严重错误(使系统不稳定、产生错误结果、菜单功能无法实现)、一般错误(在完成某一功能时出现的错误,但并不影响该功能的实现)、建议项 (软件不完善或用户使用不方便之处)。,1.3 系统测试过程中应注意

12、的的问题,下面,对一些显而易见的、容易被开发者忽略的错误进行列举和分析,这些错误一般很容易避免和修改,但会给用户造成使用上的困难。 1) 易用性问题:用户无法使用或不方便使用 不符合用户操作习惯。如:快捷键定义不科学、不实用,键位分布不合理、按键太多,甚至没有快捷键。 界面中英文混杂,界面元素参差不齐,文字显示不全。 无自动安装程序或安装程序不完善。 界面中的信息不能及时刷新,不能正确反映当前数据状态,可能误导用户。如:数据库中剩余记录个数和参数设置对话框中的预设值常常显示为历史值而不是当前值。,1.3 系统测试过程中应注意的的问题,提示信息意义不明或为原始的英文提示。 要求用户输入多余的、本

13、来系统可以自己得到的数据。如:服务是否启动,安装后用户要手动修改某些配置文件。 某一项功能的冗余操作太多。如:对话框嵌套层次太多。 不能记忆用户的设置或操作习惯,用户每次进入都需要重新操作一次初始环境。 对复杂的操作无联机帮助。,1.3 系统测试过程中应注意的的问题,2) 稳定性问题:影响用户正常工作 程序运行过程中不断申请但不完全释放资源,造成系统性能越来越低,并出现不规律的死机现象。 不能重现的错误,有些与代码中的未初始化变量有关,有些与系统不检查异常情况有关。 对一般性错误的屏蔽能力较差。 对输入的数据没有进行充分并且有效的有效性检查,造成不合要求的数据进入数据库。,1.3 系统测试过程

14、中应注意的的问题,3) 其他问题 用户文档问题:无标准,无新功能使用方法,无版本改动说明。不仅要认为没有说明文档的产品不是一个完整的产品,也要认为没有说明或没有正确说明的功能是一个没有完全实现的功能,因为用户无法用得起来。 兼容性问题:对硬件平台或软件平台的兼容性不好。比如:在这台计算机上可以稳定运行,而在另一台上运行就极不稳定。 数据接口问题:未提供与一些常用的文件格式的接口。如TXT文件、Word文件,1.4 测试情况设计,测试是不存在错误的证明,尽管有些软件经过“精心测试”,但运行后还是不可靠。正如迪杰斯特拉(Edsger W. Dijkstra)所述“测试可能是一种表明存在错误的有效途

15、径,但无法表明不存在错误”。意思就是,如果一个软件用测试数据运行时输出发生错误,则该软件必然存在着错误;但如果输出是正确的,软件可能仍然存在错误;特定的测试只能显示软件在这套特定的测试数据下能正确运行。,1.4 测试情况设计,因此,在测试过程中,无论是采用人工测试还是计算机辅助测试,其中最重要的问题就是设计有效的测试情况,常用的的测试情况设计方法有:逻辑覆盖、等价划分、边界分析、因果图和猜测错误等。其中逻辑覆盖测试是白盒测试方法,其余是黑盒测试方法。,1.4 测试情况设计,1) 逻辑覆盖 逻辑覆盖是对一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行(即这里所说的覆盖)程序逻辑路径

16、的方法。覆盖程度由低到高大致分为以下几类: 语句覆盖。设计若干测试用例,使程序中每一可执行语句至少执行一次; 判断覆盖。设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次; 条件覆盖。设计用例,使判断中的每个条件的可能取值至少满足一次;,1) 逻辑覆盖,判断/条件覆盖。设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次; 条件组合覆盖。设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足的测试用例也一定是满足、的测试用例。 路径覆盖。设计足够的测试用例,使程序的每条可能路径都至少执行一次。 如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。,1.4 测试情况设计,2) 等价类划分 等价类划分是用黑盒测试法设计测试用例的一种技术。它是将程序(或者模块)输入定义域中的所有可能的输入数据(含有效和无效)划分成若干个等价类,每一类的一个代表性的数据在测试中的作用,就等价于这一类中的所有其他数据。也就是说,如果某一类的一个用例发现了错误,这一等价类中的所有其他用例也能发现同样的错误,反之亦然。借以实现测试的经济性,大大减少测试的工作量。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 初中课件

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