欢迎来到天天文库
浏览记录
ID:50029411
大小:257.50 KB
页数:106页
时间:2020-03-01
《软件测试的方法和技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章软件测试的方法和技术3.1软件测试方法概述3.2白盒测试3.3黑盒测试3.4测试用例设计3.1软件测试方法概述软件测试的种类大致可分为人工测试和基于计算机的测试。而基于计算机的测试又可分为黑盒测试和白盒测试。1.黑盒测试黑盒测试是根据软件产品的功能设计规格,在计算机上进行测试,以证实每个已经实现的功能是否符合要求。黑盒测试意味着测试要在软件的接口处进行。2.白盒测试白盒测试是根据软件产品的内部工作过程,在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。白盒测试把测试对象看做一个打开的盒子,允许测试人员利用程序
2、内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。3.2白盒测试白盒测试也称为结构测试或逻辑驱动测试,前提是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能够按预定要求正确工作,而不管产品的功能,主要用于软件验证。白盒测试方法又可分为静态测试和动态测试。静态测试是一种不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。它瞄准的是纠正
3、软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。而动态测试需要软件的执行,当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。它显示了一个系统在检查状态下是正确还是不正确。白盒测试的动态测试要根据程序的控制结构设计测试用例,其原则是:(1)保证一个模块中的所有独立路径至少被使用一次;(2)对所有逻辑值均需测试true和false;(3)在上下边界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。下面将介绍几种实用的白盒测试用例设计方法,包括程序插桩、逻辑覆盖、基本路径测试等。3.2
4、.1程序插桩在软件动态测试中,程序插桩是一种基本的测试手段,有着广泛的应用。1.方法简介程序插桩方法是借助往被测程序中插入操作,来实现测试目的的方法。如果我们想要了解一个程序在某次运行中所有可执行语句被覆盖的情况,或是每个语句的实际执行次数,最好的办法是利用插桩技术。这里仅以计算整数X和整数Y的最大公约数程序为例,说明插桩方法的要点。图3-3给出了这一程序的流程图。图3-3插桩后求最大公约数程序的流程图设计插桩程序时需要考虑的问题包括:①探测哪些信息;②在程序的什么部位设置探测点;③需要设置多少个探测点。2.断言语句在程序中特定部位插入某些用以判断变量
5、特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实。我们把插入的这些语句称为断言。这一做法是程序正确性证明的基本步骤,尽管算不上严格的证明,但方法本身仍然是很实用的。下面以求两个非负数NUM和DEN之商的Wensley迭代算法为例,对断言语句的作用做一简要说明。图3-5计算非负数之商的迭代程序图3-6插入断言后的迭代程序3.2.2逻辑覆盖逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术,是通过对程序逻辑结构的遍历实现程序的覆盖,它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。这一方法要求测试人员对程序的
6、逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节。它属于动态测试。从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正条件判定覆盖。为便于理解,使用如下所示的程序,图3-7所示的是其流程图。图3-7参考例子流程图intfunction1(boola,boolb,boolc){intx;x=0;if(a&&(b
7、
8、c))x=1;returnx;}1.语句覆盖为了暴露程序中的错误,程序中的每条语句至少应该执行一次。所以,语句覆盖的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。2.
9、判定覆盖比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。3.条件覆盖在设计程序中,一个判定语句是由多个条件组合而成的复合判定。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。4.条件判定组合覆盖条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。5.多条件覆盖多条件覆盖
10、也称为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现
此文档下载收益归作者所有