软件工程白盒测试

合集下载

软件工程中软件测试方法

软件工程中软件测试方法

软件工程中软件测试方法软件测试是软件工程中非常重要的环节,它用于验证和评估软件系统是否满足预期的需求,并发现其中的错误和缺陷。

在软件测试过程中,可以采用多种不同的测试方法来确保软件的质量和稳定性。

以下是一些常见的软件测试方法:1. 黑盒测试:这种测试方法着重于测试软件系统的功能性,而不考虑内部的实现细节。

测试人员只关注输入和输出之间的关系,通过输入不同的数据,检查系统的响应和输出是否符合预期。

黑盒测试通常包括等价类划分、边界值分析、决策表等技术来设计测试用例。

2. 白盒测试:与黑盒测试相反,白盒测试关注软件系统的内部结构和实现。

测试人员需要了解代码的逻辑和结构,在此基础上设计相关的测试用例。

白盒测试通常包括语句覆盖、分支覆盖、路径覆盖等技术,以确保代码的全面覆盖率。

3. 灰盒测试:灰盒测试是黑盒测试和白盒测试的结合,既考虑系统的功能性,也考虑内部的实现。

测试人员在设计测试用例时,会兼顾输入输出关系和代码结构等因素。

4. 冒烟测试:冒烟测试也称为可靠性测试或基本功能测试,用于验证软件系统的基本功能是否正常工作。

在软件开发过程中的早期阶段,进行冒烟测试可以尽早发现严重的错误和缺陷。

5. 性能测试:性能测试用于评估软件系统在不同负载下的性能表现,包括响应时间、吞吐量、并发性能等指标。

通过性能测试,可以确定系统在实际使用场景下的性能瓶颈,并进行性能优化。

6. 安全测试:安全测试用于评估软件系统的安全性,包括数据安全、身份认证、访问控制等方面。

通过安全测试,可以发现系统中的安全漏洞和弱点,并提供相应的安全防护措施。

7. 兼容性测试:兼容性测试用于验证软件系统在不同的操作系统、浏览器、设备等环境下的兼容性。

通过兼容性测试,可以确保软件在各种环境下都能正常运行。

以上是软件工程中常见的软件测试方法,每种方法都有其特定的应用场景和测试目标。

在实际项目中,通常会根据需求和资源的情况,选择合适的测试方法来保证软件的质量和稳定性。

软件工程中的软件测试与验证

软件工程中的软件测试与验证

软件工程中的软件测试与验证在软件工程中,软件测试与验证是确保软件质量和功能完整性的重要环节。

通过对软件系统的测试和验证,可以发现和解决潜在的错误或问题,从而提高软件的可靠性和稳定性。

本文将探讨软件测试与验证的基本概念、分类、方法和重要性。

一、软件测试与验证的基本概念软件测试是指通过运行软件系统并与预期结果进行比较来评估系统的特性和性能。

验证是指确认软件系统是否满足了所期望的需求和规范。

二、软件测试与验证的分类1. 功能测试:验证软件的功能是否按照要求正确运行。

例如,对于一个计算器应用程序,验证加减乘除功能是否正常。

2. 性能测试:测试软件在不同负载和压力下的性能表现。

例如,测试一个电商网站在同时访问人数增加时的响应时间和吞吐量。

3. 安全测试:测试软件系统的安全性,发现和修复潜在的安全漏洞和隐患。

例如,测试一个银行应用程序的防火墙和身份验证系统。

4. 兼容性测试:测试软件在不同操作系统、浏览器或设备上的兼容性。

例如,测试一个网站在不同浏览器中的显示效果是否一致。

5. 冒烟测试:测试软件系统的基本功能,以确定软件是否可以进行更详细的测试。

例如,对于一个新开发的游戏软件,验证游戏的基本操作是否可用。

三、软件测试与验证的方法1. 黑盒测试:测试者只关注软件的输入和输出,不了解内部实现细节。

通过输入不同的数据和条件,验证软件是否按照规范输出正确的结果。

2. 白盒测试:测试者了解软件的内部结构和逻辑,并基于此设计测试用例。

通过检查程序的数据结构、路径和边界条件,发现并修复潜在的错误。

3. 灰盒测试:结合黑盒测试和白盒测试的特点,既关注软件的功能,又关注其内部实现。

通过分析代码和使用不同的数据进行测试,评估软件的可用性和稳定性。

四、软件测试与验证的重要性1. 提高软件质量:通过测试和验证,可以发现和解决软件中的错误和问题,确保软件的质量和正确性,减少用户的使用问题和投诉。

2. 减少开发成本:在软件开发的早期阶段,发现和修复错误的成本相对较低。

黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试

黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试

⿊盒测试、⽩盒测试、单元测试、集成测试、系统测试、验收
测试
⿊盒测试、⽩盒测试、单元测试、集成测试、系统测试、验收测试
⿊盒测试、⽩盒测试、单元测试基本由从开发⼈员在不同阶段要做的事。

单元测试:是指对软件中的最⼩可测试单元进⾏检查和验证。

单元测试是在软件开发过程中要进⾏的最低级别的测试活动,软件的独⽴单元将在与程序的其他部分想隔离的情况下进⾏测试。

⿊盒测试:在不考虑程序内部结构和逻辑结构的情况下,来测试系统的功能是否满⾜规格说明书。

⼀般会有⼀个输⼊值、⼀个输出值、和期望值做⽐较。

⿊盒测试也叫做功能测试,它是通过测试来检测每个功能是否都能正常使⽤。

⿊盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界⾯和软件功能进⾏测试。

⽩盒测试:主要应⽤在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构。

测试⼿段有:语句覆盖,判定覆盖,条件覆盖,路径覆盖,条件组合覆盖。

所以也叫作结构测试或逻辑驱动测试。

白盒测试也称结构测试或逻辑驱动测试

白盒测试也称结构测试或逻辑驱动测试

白盒测试也称结构测试或逻辑驱动测‎试,它是按照程序‎内部的结构测‎试程序,通过测试来检‎测产品内部动‎作是否按照设‎计规格说明书‎的规定正常进‎行,检验程序中的‎每条通路是否‎都能按预定要‎求正确工作。

这一方法是把‎测试对象看作‎一个打开的盒‎子,测试人员依据‎程序内部逻辑‎结构相关信息‎,设计或选择测‎试用例,对程序所有逻‎辑路径进行测‎试,通过在不同点‎检查程序的状‎态,确定实际的状‎态是否与预期‎的状态一致。

概述采用什么方法‎对软件进行测‎试呢?常用的软件测‎试方法有两大‎类:静态测试方法‎和动态测试方‎法。

其中软件的静‎态测试不要求‎在计算机上实‎际执行所测程‎序,主要以一些人‎工的模拟技术‎对软件进行分‎析和测试;而软件的动态‎测试是通过输‎入一组预先按‎照一定的测试‎准则构造的实‎例数据来动态‎运行程序,而达到发现程‎序错误的过程‎。

白盒测试的测‎试方法有代码‎检查法、静态结构分析‎法、静态质量度量‎法、逻辑覆盖法、基本路径测试‎法、域测试、符号测试、Z路径覆盖、程序变异。

白盒测试法的‎覆盖标准有逻‎辑覆盖、循环覆盖和基‎本路径测试。

其中逻辑覆盖‎包括语句覆盖‎、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖‎和路径覆盖。

六种覆盖标准‎:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖‎和路径覆盖发‎现错误的能力‎呈由弱至强的‎变化。

语句覆盖每条‎语句至少执行‎一次。

判定覆盖每个‎判定的每个分‎支至少执行一‎次。

条件覆盖每个‎判定的每个条‎件应取到各种‎可能的值。

判定/条件覆盖同时‎满足判定覆盖‎条件覆盖。

条件组合覆盖‎每个判定中各‎条件的每一种‎组合至少出现‎一次。

路径覆盖使程‎序中每一条可‎能的路径至少‎执行一次。

"白盒"法全面了解程‎序内部逻辑结‎构、对所有逻辑路‎径进行测试。

"白盒"法是穷举路径‎测试。

在使用这一方‎案时,测试者必须检‎查程序的内部‎结构,从检查程序的‎逻辑着手,得出测试数据‎。

黑盒测试&白盒测试

黑盒测试&白盒测试

一、白盒测试白盒测试(White-box Testing,又称逻辑驱动测试,结构测试)是把测试对象看作一个打开的盒子。

利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。

白盒测试又称为结构测试和逻辑驱动测试。

白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。

其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。

语句覆盖每条语句至少执行一次。

判定覆盖每个判定的每个分支至少执行一次。

条件覆盖每个判定的每个条件应取到各种可能的值。

判定/条件覆盖同时满足判定覆盖条件覆盖。

条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

路径覆盖使程序中每一条可能的路径至少执行一次。

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

"白盒"法是穷举路径测试。

在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

贯穿程序的独立路径数是天文数字。

但即使每条路径都测试了仍然可能有错误。

第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。

第二,穷举路径测试不可能查出程序中因遗漏路径而出错。

第三,穷举路径测试可能发现不了一些与数据相关的错误。

白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。

白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、嵌入式软件的测试、测试的可视化等。

简述白盒测试概念

简述白盒测试概念

简述白盒测试目录1. 概述 (3)2. 白盒测试 (3)2.1. 白盒测试的基本概念 (3)2.2. 白盒测试的常用方法 (3)2.2.1. 逻辑覆盖测试 (3)2.2.1.1. 语句覆盖 (3)2.2.1.2. 判定覆盖 (4)2.2.1.3. 条件覆盖 (4)2.2.1.4. 判定/条件覆盖 (4)2.2.1.5. 条件组合覆盖 (4)2.2.1.6. 路径测试 (4)2.2.2. 循环覆盖测试 (4)2.2.2.1. 简单循环的测试策略 (4)2.2.2.2. 嵌套循环的测试策略 (4)2.2.2.3. 串接循环的测试策略 (4)2.2.2.4. 不规则循环 (5)2.2.3. 基本路径测试 (5)2.2.3.1. 步骤一:画出控制流图 (5)2.2.3.2. 步骤二:计算圈复杂度 (5)2.2.3.3. 步骤三:导出测试用例 (5)2.2.3.4. 步骤四:执行测试用例 (5)2.2.3.5. 工具方法:图形矩阵 (6)2.2.4. 静态数据流分析 (6)3. 总结 (6)1.概述20世纪60年代中期,随着计算机硬件的迅猛发展,计算机的应用范围迅速扩大,软件开发数量急剧增长,计算机系统应用越来越广泛。

软件快速的需求增长使得软件开发中的矛盾越来越突出——软件危机出现了。

软件工程应运而生,软件测试的作用越来越重要。

而白盒测试就是一种软件测试用例的设计方法。

2.白盒测试2.1.白盒测试的基本概念白盒测试又称结构测试,透明盒测试,逻辑驱动测试或基于代码的测试。

白盒测试是测试被测单元内部如何工作的一种方法。

其目的是通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

它允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑进行测试,提高代码质量。

由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。

软件工程名词解释

软件工程名词解释

1.抽象:现实世界中一定事物、状态或过程之间总存在着某些相似的方面,把这些相似的方面几种概括起来,暂时忽略它们之间的差异。

2.对象:描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。

3.结构化程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个这个程序是结构化的。

4.模块:模块是由边界元素限定的相邻的程序元素的序列,而且有一个总体标识符来代表它。

5.模块化:把程序划分成独立运行且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

6.软件:是程序、数据及相关文档的完整集合。

程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

7.软件工程:是指导计算机软件开发和维护的工程科学。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护8.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

9.软件生命周期:是指从软件定义、开发、使用、维护到淘汰的全过程。

10.数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

11.条件覆盖:条件覆盖的含义是,不仅每条语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

12.判定覆盖:不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。

13.语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次。

14.黑盒测试:黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。

软件工程的白盒和黑盒测试归纳

软件工程的白盒和黑盒测试归纳

软件工程的白盒和黑盒测试归纳一、黑盒测试和白盒测试APP测试中黑盒测试:产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,全部内部成分是否经过检查。

1.第一熟悉:黑盒测试测试特点:测试功能;测试依据:需求规格说明书方法举例:等价类划分、边界值测试优点:能站在用户的立场上进行测试缺点:不能测试程序内部特定部位,如程序有误,那么无法觉察。

白盒测试测试特点:测试程序接口与结构测试依据:软件程序方法举例:规律掩盖优点:对程序内部特定部位进行掩盖测试。

缺点:无法检验程序外部特性。

2.其次熟悉:黑盒测试把程序看作一个不能翻开的黑盒子,在完全不考虑程序内部结构和内部特性的状况下,针对“软件界面”和“软件功能“进行测试,只检查功能是否符合需求规格说明书能正常使用。

因此黑盒测试又叫功能测试或数据驱动测试。

白盒测试是对软件的过程性细节做细致的检查。

这种方法是把测试对象看作一个翻开的盒子,他允许测试人员采用程序内部的规律结构及有关信息,设计或选择测试用例,对程序全部规律路径进行测试。

通过在不同点检查程序状态,确定实际状态是否与预期的状态全都。

因此白盒测试又称为”结构测试“或”规律驱动测试白盒测试是根据程序内部的结构来测试程序,通过测试检验产品内部动作是否根据设计规格说明书的要求正常进行,检验程序中的每条通道是否都根据规定正常工作。

3•第三熟悉:黑盒测试主要是为了觉察以下错误:(1)是否有不正确或者遗漏了的功能;(2)在接口上,输入能否正确的接受?能否输出正确的结果?(3)是否有数据结构错误或外部信息(例如数据库文件)访问错误?(4)性能上是否能够满意要求?(5)是否有初始化或终止性错误?黑盒的测试用例技术设计有三种:边界值分析、等价类划分、错误推想法。

白盒测试主要是想对程序模块进行以下检查:(1)对程序模块的全部独立的执行路径至少测试一遍;(2)对全部的规律判定,取“真“与”假”的两种状况都能至少测一遍;(3)在循环的边界和运行的界限内执行循环体;(4)测试内部数据结构的有效性,等等;(5)静态白盒测试:即代码审查,正式审查和检验设计和程序代码;(6)动态白盒测试采用查看代码功能和实现方式得到的信息来设计和执行测试,也叫结构测试;白盒的测试用例技术包括:规律掩盖和基本路径测试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

白盒测试白盒测试以程序的结构为依据,所有又称为结构测试。

早期的白盒测试把注意力放在流程图的各个判定框,使用不同的逻辑覆盖标准来表达对程序进行测试的详尽程度。

随着测试技术的发展,人们越来越重视对程序执行路径的考察,并且用程序图代替流程图来设计测试用例。

为了区分这两种白盒测试技术,以下把前者称为逻辑覆盖测试,后者称为路径测试。

一、逻辑覆盖测试逻辑覆盖测试法(Logic Coverage Testing)考察的重点是图中的判定框(菱形框)。

因为这些判定若不是与选择结构有关,就是与循环结构有关,是决定程序结构的关键成分。

按照对被测程序所作测试的有效程度,逻辑覆盖测试可由弱到强区分为5种覆盖标准:举例说明:有一个程序段如下:bd(a)语句覆盖:设计若干个测试用例,运行被测程序,使得每一个可执行语句至少执行一次。

例如在上图所给出的例子中,正好所有的可执行语句都在路径L1(a->c->e)上,所以选择路径L1设计测试用例,就可以覆盖所有的可执行语句。

L1(a->c->e)={(A>1) and (B=0) } and {(A=2) or (x/A>1)}=(A=2) and (B=0) or {(A>1) and (B=0) and (x/A>1)}测试用例可以设计为:【(2,0,4),(2,0,3)】覆盖ace【L1】从程序中每个可执行语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面的检验每一个可执行语句。

但与后面介绍的其它覆盖相比,语句覆盖是最弱的逻辑覆盖准则。

(b)判定覆盖所谓判定覆盖就是设计若干个测试用例,运行被测试程序,使得程序中每个判断的取真分支和取假分支至少经历一次。

判定覆盖又称为分支覆盖。

如上例如果选择路径L1(a->c->e)和L2(a->b->d),可得满足要求得测试用例:L2(a->b->d)={(A<=1) or (B≠0) } and {(A≠2) and (x<=1)}=( A<=1) and (x<=1) or {( B≠0) and (A≠2) and (x<=1)}测试用例可以设计为:【(2,0,4),(2,0,3)】覆盖ace【L1】【(1,1,1),(1,1,1)】覆盖abd【L2】如果选取路径L3(a->b->e)和L4(a->c->d)L3(a->b->e)={(A<=1) or (B≠0) } and {(A=2) or (x>1)}={( A<=1) and (x>1)} or {( B≠0) and (A=2) } or {( B≠0) and (x>1)}L4(a->c->d)={(A>1) and (B=0) } and {(A≠2) and (x/A<=1)}还可以得到另一组可用得测试用例:【(2,1,1),(2,1,2)】覆盖abe【L3】【(3,0,3),(3,1,1)】覆盖acd【L4】所有测试用例得取法不唯一。

注意有例外情况,例如,如果把上例中第二个判定中的条件x>1错写成x<1,那么利用上面两组测试用例,仍能得到同样的结果。

这表明,只是判定覆盖,还不能保证一定能查出在判断得条件中存在得错误。

因此还需要更强的逻辑覆盖准则检验判断内部条件。

(c)条件覆盖所谓条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。

上例中,我们事先可对所有条件得取值加以标记。

例如:对于第一个判断:条件A>1取真值为T1,取假值为T1条件B=1取真值为T2,取假值为T2对于第二个判断:条件A=2取真值为T3,取假值为T3条件x>1取真值为T4,取假值为T4盖了判断中所有条件得可能取值。

但是后一组测试用例虽满足了条件覆盖,但只覆盖了第一个判断得取假分支和第二个判断得取真分支,不满足判定覆盖得要求。

为了解决这一矛盾,需要对条件和分支兼顾,有必要考虑以下得判定-条件覆盖。

(d)判定-条件覆盖所谓判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件得所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一但是事实并非如此。

因为往往某些条件掩盖了另一些条件。

对于条件表达式(A>1)and (B=0)来说,若(A>1)的测试结果为真,则还有测试(B=0),才能决定表达式得值;而若(A>1)的测试结果为假,可以立刻确定表达式得结果为假。

这时往往就不再测试(B=0)的取值了。

因此,条件(B=0)就没有检查。

同样,对于条件表达式(A=2)or (X>1)来说,若(A=2)得测试结果为真,就可以立即确定表达式的结果为真。

这时,条件(X>1)就没有检查。

因此,采用判定-条件覆盖,逻辑表达式中的错误不一定能够查得出来。

(e)条件组合覆盖所谓条件组合覆盖就是设计足够得测试用例,运行被测程序,使得每个判断得所有可能得条件取值组合至少执行一次。

上例中,先对各个判断得条件取值组合加以标记。

如下:记①A>1,B=0 作T1 T2,属第一个判断得取真分支;②A>1,B≠0 作T1 T2,属第一个判断得取假分支;③A≯1,B=0 作T1 T2,属第一个判断得取假分支;④A≯1,B≠0 作T1 T2,属第一个判断得取假分支;⑤A=2,x>1 作T3 T4,属第二个判断得取真分支;⑥A=2,x≯1 作T3 T4,属第二个判断得取真分支;⑦A≠2,x>1 作T3 T4,属第二个判断得取真分支;⑧A≠2,x≯1 作T3 T4,属第二个判断得取假分支;支,但路径漏掉了L4。

测试还不完全。

六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组...白盒测试的概述由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。

由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。

由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。

白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

白盒的测试用例需要做到:·保证一个模块中的所有独立路径至少被使用一次·对所有逻辑值均需测试true 和false·在上下边界及可操作范围内运行所有循环·检查内部数据结构以确保其有效性白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

白盒测试的实施步骤:1.测试计划阶段:根据需求说明书,制定测试进度。

2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

3.测试执行阶段:输入测试用例,得到测试结果。

4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

白盒测试的方法:总体上分为静态方法和动态方法两大类。

静态分析是一种不通过执行程序而进行测试的技术。

静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后, 对软件系统行为的分析。

动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。

它显示了一个系统在检查状态下是正确还是不正确。

在动态分析技术中,最重要的技术是路径和分支测试。

下面要介绍的六种覆盖测试方法属于动态分析方法。

黑盒测试(black—box testing)又称功能测试、数据驱动测试或基于规范的测试。

用这种方法进行测试时,被测程序被当作看不见内部的黑盒。

在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。

因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。

完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。

由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试。

黑盒测试首先是程序通常的功能性测试。

要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖;用数据类型和数据值的最小集测试;用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;用假想的数据类型和数据值运行,测试排斥不规则输入的能力;对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量等)。

不仅要考核“程序是否做了该做的?”还要考察“程序是否没做不该做的2”同时还要考察程序在其他一些情况下是否正常。

这些情况包括数据类型和数据值的异常等等。

下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d)猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。

每一个方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一个较好的测试用例集。

1.等价类划分等价类划分是一种典型的黑盒测试方法。

等价类是指某个输入域的集合。

它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的。

因此我们只要在一个集合中选取一个测试数据即可。

等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。

这样就可使用少数测试用例检验程序在一大类情况下的反映。

在考虑等价类时,应该注意区别以下两种不同的情况:有效等价类:有效等价类指的是对程序的规范是有意义的、合理的输入数据所构成的集合。

在具体问题中,有效等价类可以是一个,也可以是多个。

无效等价类:无效等价类指对程序的规范是不合理的或无意义的输入数据所构成的集合。

对于具体的问题,无效等价类至少应有一个,也可能有多个。

确定等价类有以下几条原则:如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。

例如,程序的规范中提到的输入条包括“……项数可以从1到999……”,则可取有效等价类为“l考项数<999”,无效等价类为“项数<l,,及“项数>999”。

输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。

相关文档
最新文档