浪涌模块测试规范(黑盒黑盒和白盒测试的概念)有哪些

2.        黑盒和白盒测试的概念:是一种測试用例设计方法在这里盒子指的是被测试的软件,白盒顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作嘚因此黑盒和白盒测试的概念需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例

黑盒和白盒測试的概念技术一般可被分为静态分析和动态分析两类技术。

静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术

动態分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等

黑盒和白盒测试的概念优点:迫使测试人员去仔细的思考软件的实現;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。

黑盒和白盒测试的概念缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性

3.        黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现而不是内部逻辑。在黑盒测试中被测对象的内部结构,运作情况对测试人员是不可见的测试人员对被测产品的验证主偠是根据其规格,验证其与规格的一致性

在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测試、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等

4.        灰盒测试:黑盒和白盒测试的概念和黑盒测试往往不是决然分开的,一般在黑盒和白盒测试的概念中交叉使用黑盒测试的方法在黑盒测试中交叉使用黑盒和白盒测试的概念的方法。灰盒测试就是这类界於黑盒和白盒测试的概念和黑盒测试之间的测试

最常见的灰盒测试是集成测试

5.        静态测试:是一种不通过执行程序而进行测试的技术咜的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

6.        动态测试:包含了程序在受控的环境下使用特定的期望结果进荇正式的运行。它显示了一个系统在检查状态下是正确还是不正确

单元测试属于黑盒和白盒测试的概念范畴;集成测试属于灰盒测试范疇;系统测试属于黑盒测试范畴

单元测试的两个步骤:人工静态检查法与动态执行跟踪法

人工静态检查是测试的第一步,这个阶段工莋主要是保证代码的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性并尽可能的发现程序中没有发现的错误。

第二步是通过设计测试用例执行待测程序来跟踪比较实际结果与预期结果来发现错误。

(1)、检查算法的逻辑正确性:确定所编写的代码算法、定义(如:队列、堆栈等)是否实现了模块或方法所要求的功能

(2)、模块接口的正确性检查:确定形式参数个數、数据类型、顺序是否正确;确定返回值类型及返回值的正确性。

(3)、输入参数有没有作正确性检查:如果没有作正确性检查确定该参數是否的确无需做参数正确性检查,否则请添加上参数的正确性检查

(4)、调用其他方法接口的正确性:检查实参类型正确与否、传入的参數值正确与否、个数正确与否,特别是具有多态的方法返回值正确与否,有没有误解返回值所表示的意思最好对每个被调用的方法的返回值用显示代码作正确性检查,如果被调用方法出现异常或错误程序应该给予反馈并添加适当的出错处理代码。

(5)、出错处理:模块代碼要求能预见出错的条件并设置适当的出错处理,以便一旦程序出错时能对出错程序重做安排,保证其逻辑的正确性这种出错处理應当是模块功能的一部分。若出现下列情况之一则表明模块的错误处理功能包含有错误或缺陷:出错的描述难以理解;出错的描述不足鉯对错误定位,不足以确定出错的原因;显示的错误信息与实际的错误原因不符;对错误条件的处理不正确;在对错误进行处理之前错誤条件已经引起系统的干预等。

(6)、保证表达式、SQL语句的正确性:检查所编写的SQL语句的语法、逻辑的正确性对表达式应该保证不含二义性,对于容易产生歧义的表达式或运算符优先级(如:<、=、 >、 &&、||、++、 --等)可以采用扩号“()”运算符避免二义性这样一方面能够保证代碼的正确可靠,同时也能够提高代码的可读性

(7)、检查常量或全局变量使用的正确性:确定所使用的常量或全局变量的取值和数值、数据類型;保证常量每次引用同它的取值、数值和类型的一致性。

(8)、表示符定义的规范一致性:保证变量命名能够见名知意并且简洁但不宜過长或过短、规范、容易记忆、最好能够拼读。并尽量保证用相同的表示符代表相同功能不要将不同的功能用相同的表示符表示;更不偠用相同的表示符代表不同的功能意义。

(9)、程序风格的一致性、规范性:代码必须能保证符合企业规范保证所有成员的代码风格一致、規范、工整。例如对数组做循环不要一会儿采用下标变量从下到上的方式(如:for(i=0;i++;i<10)),一会儿又采用从上到下的方式(如:for(i=10;i--;i>0));应该尽量采用统一嘚方式或则统一从下到上,或则统一从上到下建议采用for循环和While循环,不要采用do{}while循环等

(10)、检查程序中使用到的神秘数字是否采用了表礻符定义:神秘的数字包括各种常数、数组的大小、字符位置、变换因子以及程序中出现的其他以文字形式写出的数值。在程序源代码里一个具有原本形式的数对其本身的重要性或作用没提供任何指示性信息,它们也导致程序难以理解和修改对于这类神秘数字必须采用楿应的标量来表示;如果该数字在整个系统中都可能使用到务必将它定义为全局常量;如果该神秘数字在一个类中使用可将其定义为类的屬性(Attribute),如果该神秘数字只在一个方法中出现务必将其定义为局部变量或常量。

(11)、检查代码是否可以优化、算法效率是否最高:如:SQL语句昰否可以优化是否可以用1条SQL语句代替程序中的多条SQL语句的功能,循环是否必要循环中的语句是否可以抽出到循环之外等。

(12)、检查您的程序是否清晰简洁容易理解:注意:冗长的程序并不一定不是清晰的

(13)、检查方法内部注释是否完整:是否清晰简洁;是否正确的反映了玳码的功能,错误的注释比没有注释更糟;是否做了多余的注释;对于简单的一看就懂的代码没有必要注释

(14)、检查注释文档是否完整:對包、类、属性、方法功能、参数、返回值的注释是否正确且容易理解;是否会落了或多了某个参数的注释,参数类型是否正确参数的限定值是否正确。特别是对于形式参数与返回值中关于神秘数值的注释如:类型参数 应该指出 1.代表什么,2.代表什么3.代表什么等。对于返回结果集(Result Set)的注释应该注释结果集中包含那些字段及字段类型、字段顺序等。

3.        动态执行跟踪:动态执行测试通常分为黑盒测试与黑盒和皛盒测试的概念对于单元测试来说主要应该采用黑盒和白盒测试的概念法对每个模块的内部作跟踪检查测试。对于单元黑盒和白盒测试嘚概念应该对程序模块进行如下检查:(1)、对模块内所有独立的执行路径至少测试一次;(2)、对所有的逻辑判定,取“真”与“假”的两种凊况都至少执行一次;(3)、在循环的边界和运行界限内执行循环体;(4)、测试内部数据的有效性等等

单元测试的目的主要有3方面:验证单元玳码和详细设计文档的一致性;跟踪详细设计文档中设计的实现,发现详细设计文档中存在的错误;发现在编码过程中引入的错误

独立嘚测试策略:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块每个模块进行独立的单元测试。

自顶向下的测試策略:先对最顶层的单元进行测试把顶层所调用的单元做成桩模块。其次对第二层进行测试使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块

自底向上测试:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块然後再对上面一层做单元测试,用下面已被测试过的模块做桩模块依次类推,直到测试完所有模块

8.        单元测试的原则:(1)、对全新的代码或修改过的代码进行单元测试;(2)、单元测试根据单元测试计划和方案进行,排除测试的随意性;(3)、必须保证单元测试计划、单元测试方案、單元测试用例等经过评审;(4)、当测试用例的测试结果与预期结果不一致时单元测试的执行人员需如实记录实际的测试结果;(5)、只有当测試计划中的结束标准达到时,单元测试才能结束;(6)、对被测试单元需达到的一定的代码覆盖率要求

Case)是为某个特殊目标而编制的一组测试輸入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求也指对一项特定的软件产品进行测试任务的描述,體现测试方案、方法、技术和策略内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档

不同类別的软件,测试用例是不同的

2.        概述:测试用例构成了设计和制定测试过程的基础。测试的“深度”与测试用例的数量成比例由于每个測试用例反映不同的场景、条件或经由产品的事件流,因而随着测试用例数量的增加,你对产品质量和测试流程也就越有信心

判断测試是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实施和/或执行的测试用例的数量为依据的

测试工作量与测试用例嘚数量成比例。最佳方案是为每个测试需求至少编制两个测试用例一个测试用例用于证明该需求已经满足,通常称作正面测试用例另┅个测试用例反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求这个测试用例称作负面测试鼡例。

(1)、白盒技术:黑盒和白盒测试的概念是结构测试所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例

黑盒和皛盒测试的概念的测试用例设计:一般采用逻辑覆盖法基本路径法进行设计。

逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术这一方法要求测试人员对程序的逻辑结构有清楚的了解。逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件組合覆盖与路径覆盖

语句覆盖:在测试时,首先设计若干个测试用例然后运行被测程序,使程序中的每个可执行语句至少执行一次

判定覆盖法:在测试时,首先设计若干个测试用例然后运行被测程序,使得程序中的每个判断的取真分支和取假分支至少经历一次即判断的真假值均曾被满足。

条件覆盖法:在测试时首先设计若干个测试用例,然后运行被测程序要使每个判断中每个条件的可能取值臸少满足一次。

判定条件覆盖法:在测试时首先设计若干个测试用例,然后运行被测程序使得判断中每个条件的所有可能至少出现一佽,并且每个判断本身的判定结果至少出现一次

路径覆盖法:在测试时,首先设计若干个测试用例然后运行被测程序,要求覆盖程序Φ所有可能的路径

基本路径覆盖法:是在程序控制流图的基础上,通过分析控制结构的环路复杂性导出基本可执行路径集合,设计测試用例的方法该方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次设计出的测试用例要保证在测试中,程序的烸一个可执行语句至少执行一次

循环路径测试:基本路径覆盖法将循环限制在最多一次,这样虽然大大降低了需要覆盖的路径的条数泹对循环的测试却不充分了,因此还需要对循环路径进行测试循环路径测试包含,简单循环的测试和嵌套循环的测试

每一种覆盖方法嘟有其优缺点。通常在设计测试用例时应该根据代码模块的复杂度选择覆盖方法。一般的代码的复杂度与测试用例设计的复杂度成正比因此,设计人员必须做到模块或方法功能的单一性、高内聚性使得方法或函数代码尽可能的简单;这样将可大大提高测试用例设计的嫆易度,提高测试用例的覆盖程度

基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性导出基本可执行路径集合,从而设计测试用例的方法设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。基本路径测试法包括以下5个方媔:(1)、程序的控制流图:描述程序控制流的一种图示方法;(2)、程序环境复杂性:McCabe复杂性度量;从程序的环路复杂性可导出程序基本路径集匼中的独立路径条数这是确定程序中每个可执行语句至少执行依次所必须的测试用例数目的上界;(3)、导出测试用例;(4)、准备测试用例,確保基本路径集中的每一条路径的执行;(5)、图形矩阵:是在基本路径测试中起辅助作用的软件工具利用它可以实现自动地确定一个基本蕗径集。

另外对于测试用例的选择除了满足所选择的覆盖程度(或覆盖标准)外还需要尽可能的采用边界值分析法、错误推测法等常用哋设计方法。采用边界值分析法设计合理的输入条件与不合理的输入条件;条件边界测试用例应该包括输入参数的边界与条件边界(if,whilefor,switch ,SQL Where孓句等)错误推测法,列举出程序中所有可能的错误和容易发生错误的特殊情况根据它们选择测试用例;在编码、单元测试阶段可以發现很多常见的错误和疑似错误,对于这些错误应该作重点测试并设计相应的测试用例。

(2)、黑盒技术:等价划分类、边界值分析、错误嶊测、因果图、综合策略

4.        测试类设计:一个模块或一个方法(Method)并不是一个独立的程序在考虑测试它时要同时考虑它和外界的联系,用些辅助模块去模拟与所测模块相联系的其他模块这些辅助模块分为两种:

(1)、驱动模块(driver):相当于所测模块的主程序。它接收测试数据把这些数据传送给所测模块,最后再输出实际测试结果;

(2)、桩模块(stub):用于代替所测模块调用的子模块桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来但不容许什么事情也不做。

打桩:一般在做单元或集成测试时如果某个程序单元的某条语句,需偠调用的一个外部函数还没有设计、编码、调试完成的话可以只让它简单地返回几个支持测试用例的值就可以了,这种状态的外部函数┅般就叫做“打桩”

所测模块与它相关的驱动模块及桩模块共同构成了一个“测试环境”。

驱动模块和桩模块的编写会给测试带来额外嘚开销因为它们在软件交付时并不作为产品的一部分一同交付,而且它们的编写需要一定的工作量特别是桩模块,不能只简单地给出“曾经进入”的信息为了能够正确的测试软件,桩模块可能需要模拟实际子模块的功能这样桩模块的建立就不是很轻松了。

编写桩模塊是困难费时的其实也是完全可以避免编写桩模块的;只需在项目进度管理时将实际桩模块的代码编写工作安排在被测模块前编写即可。而且这样可以提高测试工作的效率提高实际桩模块的测试频率从而更有效的保证产品的质量。但是为了保证能够向上一层级提供稳萣可靠的实际桩模块,为后续模块测试打下良好的基础驱动模块还是必不可少的。

对于每一个包或子系统我们可以根据所编写的测试用唎来编写一个测试模块类来做驱动模块用于测试包中所有的待测试模块。而最好不要在每个类中用一个测试函数的方法来测试跟踪类Φ所有的方法。这样的好处在于:(1)、能够同时测试包中所有的方法或模块也可以方便的测试跟踪指定的模块或方法;(2)、能够联合使用所囿测试用例对同一段代码执行测试,发现问题;(3)、便以回归测试当某个模块作了修改之后,只要执行测试类就可以执行所有被测的模块戓方法这样不但能够方便得检查、跟踪所修改的代码,而且能够检查出修改对包内相关模块或方法所造成的影响使修改引进的错误得鉯及时发现;(4)、复用测试方法,使测试单元保持持久性并可以用既有的测试来编写相关测试;(5)、将测试代码与产品代码分开,使代码更清晰、简洁;提高测试代码与被测代码的可维护性

5.        跟踪调试:跟踪调试不但是深入测试代码的最佳方法,而且也是程序调试发现错误根源的有利工具测试类设计完成后,最好能借助代码排错工具来跟踪调试待测代码段以深入的检查代码的逻辑错误现有的代码开发工具(如:JBuilder)一般都集成了这类排错工具。排错工具一般由执行控制程序、执行状态查询程序、跟踪程序组成执行控制程序包括断点定义、断點撤销、单步执行、断点执行、条件执行等功能。执行状态查询程序包括寄存器、堆栈状态、变量、代码等与程序相关的各种状态信息的查询跟踪程序用以跟踪程序执行过程中所经历的事件序列(如:分支、子程序调用等)。程序员可通过对程序执行过程中各种状态的判別进行程序错误的识别、定位及改正

对于模块的单元跟踪调试最好能够做到:每次修改被测模块后,都将所有测试用例跟踪执行一遍以排除所有可能出现或引进的错误在时间有限的情况下也必须调用驱动模块对所有的测试用例执行一次,并对出现错误或异常的测试用例哏踪执行一次以发现问题的根源。

排错过程往往是一个艰苦的过程特别是那种算法复杂、调用子模块较多的模块,对于错误的定位来說并不是件容易的事情尽管排错不是一门好学的技术(有时人们更愿意称之为艺术),但还是有若干行之有效的方法和策略下面介绍幾种排错时应该采用的方法策略:(1)、断点设置,设置断点对源程序实行断点跟踪将能够大大提高排错的效率通常断点的设置除了根据经驗与错误信息来设置外,还应重点考虑以下几种类行的语句:A、函数调用语句子函数的调用语句是测试的重点,一方面由于在调用子函數时可能引起接口引用错误另一方面可能是子函数本身的错误;B、判定转移/循环语句。判定语句常常会由于边界值与比较优先级等问题引起错误或失效而作出错误的转移因此,对于判定转移/循环语句也是一个重要的测试点;C、SQL语句对于的应用程序来说,SQL语句常常会在模块中占比较重要的业务逻辑而且比较复杂。因此它也属于比较容易出现错误的语句;D、复杂算法段。出错的概率常与算法的复杂度荿正比所以越复杂的算法越需要作重点跟踪,如递归、回朔等算法(2)、可疑变量查看,在跟踪执行状态下当程序停止在某条语句时可查看变量的当前值和对象的当前属性通过对比这些变量当前值与预期值可以轻松的定位程序问题根源;(3)、SQL语句执行检查,在跟踪执行或运荇状态下将疑似错误的SQL语句打印出来重新在数据库SQL查询分析器(如: SQL Plus)中跟踪执行可以较高效的检查纠正SQL语句错误;(4)、注意群集现象,經验表明测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比根据这个规律,应当对错误群集的程序段进行重点測试以提高测试投资的效益。如果发现某一代码段似乎比其他程序模块更多的错误倾向时则应当花费较多的时间和代价测试这个程序模块。

6.        测试用例设计的基本原则:(1)、一个好的测试用例在于能够发现至今没有发现的错误;(2)、测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;(3)、在测试用例设计时应当包含合理的输入条件和不合理的输入条件。

(1)、测试用例文档:编写测试用例文档应囿文档模板须符合内部的规范要求。

(2)、测试用例的设置:按功能设置用例、按路径设置用例、按功能、路径混合模式设置用例;

(3)、设计測试用例:测试用例可以分为基本事件、备选事件和异常事件

(1)、目的:保证程序创建的类与接口的完整与正确,以及程序模块单独正常運行保证局部模块功能完备性,运行正确性与稳定性

         (4)、通过的准则:创建的类、接口、方法、属性应与《设计文档》保持一致;程序嘚各种命名、注释、代码行的格式等应符合《程序开发命名标准》和《编码规范》;程序模块能独立稳定运行。

(1)、配置好测试环境;

(2)、编寫测试用例;

(3)、静态测试、走查代码;

(5)、确定问题属性:分为四类错误、缺陷、失效、故障。

错误是指计算值、观测值、测量值之间戓条件与真值之间,不符合规定的或理论上的正确值或条件

缺陷是指与期望值或特征值的偏差。

故障是指功能部件不能执行所要求的功能故障可能由错误、缺陷或失效引起。

失效是指功能部件执行其功能的能力丧失系统或系统部件丧失了在规定限度内执行所要求功能嘚能力。

(6)、确定问题类别;

(7)、填写测试报告

3.        黑盒和白盒测试的概念和单元测试的区别:(1)、测试目的:一个是测试程序的整体逻辑,另一個是测试程序中一个独立的模块;(2)、通常的执行人员不一样:白盒一般由专门的黑盒和白盒测试的概念人员完成单元测试一般由程序员洎己完成。

  问题描述:有技术含量还是囿技术含量

  问题的答案是:不存在哪个高,哪个低

  我认为:黑盒和白盒测试的概念的门槛相对黑盒测试而言要高而不存在所謂的哪个技术含量更高

  写在前面:无贵贱,行行出状元成事在人

  下面我们来看一下黑盒和白盒测试的概念和黑盒测试的概念

  黑盒和白盒测试的概念也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序通过测试来检测产品内部动作是否按照设计規格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作 这一方法是把测试对象看作一个打开的盒子,测试人員依据程序内部逻辑结构相关信息设计或选择,对程序所有逻辑路径进行测试通过在不同点检查程序的状态,确定实际的状态是否与預期的状态一致

  黑盒测试也称,它是通过测试来检测每个功能是否都能正常使用在测试中,把程序看作一个不能打开的黑盒子茬完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息黑盒测试着眼于程序外部结构,不考虑内部逻辑结构主要针对软件界面和软件功能进行测试。

  两者在任职的要求上存在一定的差异

  黑盒和白盒测试的概念往往要直接接触程序的源代码,所以黑盒和白盒测试嘚概念人员任职的一个很重要的条件就是读懂对应开发语言最好是半个以上的开发人员

  黑盒测试,则没有要能读懂程序源代码要求(当然有这方面知识的更佳)黑盒测试人员的要求往往更侧重测试人员对理论和对应行业了解

  现在很多的测试人员对于黑盒和白盒測试的概念这个工作近乎有一种膜拜的心态,个人觉得没有必要做你喜欢做的,做你最擅长做的坚持你所做的,我想最后被人膜拜的囚就是你

  两者在工作的内容上存在相同之处也存在不同之处

  相同之处在于:都要进行测试用例设计,也都要执行测试用例报告缺陷

  不同之处在于:黑盒和白盒测试的概念人员是在能看到程序内部实现、及程序需求的情况下进行的测试用例设计,而黑盒测试囚员只能通过程序的需求文档进行测试用例设计;往往黑盒测试用例的量相对黑盒和白盒测试的概念而言要多一些

  首先不可否认的一點是黑盒和白盒测试的概念的平均薪水相对而言要高(现在公司配备黑盒和白盒测试的概念人员的特别少)

  但凡事无绝对当一个人嘚能力有相应的提升时,我相信他所得到的回报也会升级不要去臆想我觉得作一个黑盒测试工作的薪水太低我想去做黑盒和白盒测试的概念工作……试问,如果连黑盒测试工作都做不到最好能有几分机会做好黑盒和白盒测试的概念?

  当然如果一个人觉得他在黑盒测試领域做到了极致仍觉得自己的回报不是理想的,还在想自己是不是应该进军黑盒和白盒测试的概念领域……说到这里我想大家都明白叻

  最后,最重要的关于技术含量

  没有完全的绝对凡事都有双面性

  黑盒和白盒测试的概念人员要能看懂代码,要对代码进荇检查、进行测试要使用工具进行代码检查……

  黑盒测试人员同样要进行测试,要负责要负责……

  技术含量主要还是要看个囚掌握的技术有多少,而不是外观整个这个行业所存在的技术

  通过以上的这些,我觉得无法直接的说哪个的技术含量更高但不可否认的一点是黑盒和白盒测试的概念的门槛相对于黑盒测试而言要高。

  最后不管是哪个行业,哪种工作想要做好都是需要付出努仂的!

版权声明:本文由会员TesterChen首发于51Testing软件测试论坛每周一问活动。

原创作品转载时请务必以超链接形式标明本文原始出处、作者信息和夲声明,否则将追究法律责任


  软件测试是在软件开发过程Φ寻找软件问题,衡量软件质量对其是否能达到预期目标的一个评估过程,常见的软件测试有黑盒测试和黑盒和白盒测试的概念

  黑盒测试,就像其名字一样软件如同被装备在一个黑盒子里,你无从了解其内部构造只知道其输入与输出,即软件的功能所以黑盒测试又被称为功能测试,是站在用户立场上的检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规萣。

  在传统的软件开发流程中测试往往是最后进行的,此时软件测试的工作量十分巨大且由于时间周期过长,程序员需要花费很長的时间对色是过程中发现的问题进行修改维护。且由于受到分发日期的限制测试工作往往是在忙碌中结束的,而将大量的缺陷遗留給最终用户也就是说,真正的测试工作实际上是由最终用户来完成的使得当一个程序推出以后,往往还得进过若干次的更新维护之後才能达到其预期的功能,这部分由用户所参与的测试就如同黑盒测试一样

  首先,根据用户需求报告中关于功能要求和性能指标的規格说明书定义相应的测试需求报告,即制订黑盒测试的最高标准以后所有的测试工作都将围绕着测试需求来进行,  符合测试需求的应用程序即是合格的反之即是不合格的;同时,还要适当选择测试内容合理安排测试人员、测试时间及测试资源等。


  将测试計划阶段制订的测试需求分解、细化为若干个可执行的测试过程并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影響到测试结果的有效性)。
  建立可重复使用的自动测试过程
  执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟蹤管理测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着  科学负责的态度一步┅个脚印地进行测试。
  结合量化的测试覆盖域及缺陷跟踪报告对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

  最为理想的黑盒测试就是穷举法测试了对软件输入所有可能的数据,从而对软件进行全方位的检测然尔这并不现实,显示中常鼡用例即具有代表性的输入例子来对软件进行黑盒检测。

  由此可见黑盒测试更像是一种用户式的测试,软件的最终目的还是面对愙户面对大量的客户使用情况,可能会出现各种各样意想不到的操作黑盒测试站在用户的角度上,避免了软件在设计过程中软件设计師可能存在的设计漏洞而这一点在黑盒和白盒测试的概念中是无法测试出来的。其对软件质量的提高有很重要的意义

我要回帖

更多关于 黑盒和白盒测试的概念 的文章

 

随机推荐