软件的黑盒测试方法解析与优化

摘要:软件测试是保证软件质量的重要手段,尤其是自动化测试可以提高测试效率,降低成本。黑盒测试是针对非计算机专业人员进行的测试,为了确保测试质量,必须总结出一套适合业务人员使用的测试方法。文章从实际需要出发,对黑盒测试方法进行了分析,并提出了优化方案。希望可以降低软件测试成本,提高测试效率,对软件测试人员的工作有所帮助。

  关键词:软件测试;黑盒测试;测试策略

  引言

  黑盒测试是目前软件业界采用的主流测试方法,这种方法以业务应用为驱动,通过控制输入及其对业务的预期影响来判断代码实现是否正确。 实践证明,这是一种行之有效的测试方法。

  1、黑盒测试常用技术及方法

  黑盒测试方法主要运用于单元功能和性能方面的测试。其常用的技术方法有三种。

  1.1 边界值分析法

  边界值分析的基本思想是使用最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)处取输入变量值。如果要进一步测试被测对象的健壮性,除了变量的五个边界值外,还要通过采用一个略超过最大值(max+)和一个略小于最小值(min-)的取值来看看超过极值时系统会有什么表现。如果被测对象是多个独立变量的函数,这些变量受物理量的限制,则很适合边界值分析。

  1.2 等价类划分法

  等价类划分法是依据软件的任务书、需求规格说明或设计文档,把输入数据范围划分为多个区间(即等价类),在每个等价类中选取有代表性的数据设计测试用例。划分等价类是应用等价类划分的关键,既要划分出所有等价类,也要确保没有划分重复的等价类。等价类划分少了会导致测试不充分,等价类划分重复了会导致设计多余的测试用例。例如,对于if(int_DataA>=100 &&int_DataA<200){…},首先针对变量int_DataA进行等价类划分,就能划分为三个等价类(-∞,100)、\[100,200)和\[200,+∞),其中\[100,200)为有效等价类,而(-∞,100)和\[200,+∞)为无效等价类。然后再针对每一个等价类选取其中的数据进行测试用例设计。

  1.3 基于决策表测试法

  决策表指以表格方式给出的可能输入条件和程序所的对应输出结果之间的严格的逻辑关系.基于决策表设计出相应的测试用例的测试方法即为基于决策表的测试法。该测试方法在所有功能性测试方法中是最严格的。

  2、黑盒测试方法的优化

  2.1 数值更改黑盒测试的思路

  首先描述一下数值更改的几种设计思路和模式。一般设计员进行数值更改往往使用直接查找工程文件的方法。如查找到需要更改的数值,就直接使用新数值进行更改。多数设计员认为只要没有漏改数值,就不会有问题。但不幸的是,还是会被测试人员发现一些程序中的错误。本文将按照软件工程开发测试流程的八个模块进行分析,提供一些数值更改的思路。针对数值更改的设计思路和模式,相应的测试思路如下:

  (1)首先确定设计更改的需求是否达到目的;

  (2)确认设计更改点所处的功能模块的功能是否满足要求;

  (3)找出该更改点涉及的相关功能和接口;找相关接口要注意查阅相关的设计文档,如接口定义、通信协议、程序结构、芯片资料、设计标准等,设计人员的笔误往往集中在更改点涉及的相关接口;

  (4)确认更改点涉及部分的功能是否能够满足要求;

  (5)按测试要求做好测试记录并最后出具报告。

  2.2 随机模拟法在黑盒测试中的应用

  该方法的基本思想是为了求解数学、物理、工程技术或生产管理等方面的问题。首先建立一个与求解有关的概率模型或随机过程,使它的参数等于所求问题的解,然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,最后给出所求解的近似值。概率统计是随机模拟法的理论基础,其基本手段是随机抽样。对于那些难以进行或条件不满足的试验而言,这无疑是一种极好的替代方法。在应用时,要先产生一种均匀分布的随机数序列,然后再设法转换成特定要求的概率分布的随机数序列,并以此作为数字模拟试验的输入变量序列进行模拟求解。其基本步骤:一是建立概率模型,即对所研究的问题构造一个符合其特点的概率模型;二是产生随机数序列作为系统的抽样输入,进行大量的数字模拟试验,从而得到大量的模拟试验值。产生随机数的数学方法,最常用的有同余法、平方取中法以及易位指令加法等;常用的随机数检验方法有参数检验、均匀性检验、独立性检验、组合规律检验和游程检验等;三是对模拟试验结果进行统计处理(计算频率、均值等特征值),给出所求问题的解和解的精度估计。设计测试用例要经历划分等价类和选取测试用例两步,首先要进行等价类划分,之后在此基础上通过随机模拟方法随机选取测试用例,这样可以使选取的测试用例组合覆盖程序的全部输入域,因而更具有一般性和代表性。

 2.3 基于需求的测试优先化方法

  优先化方法一般基于以下四个优先化因子:

  (1)用户指派优先权(CP)是一个需求对于用户的重要性的度量,由用户为每项需求指派范围从1~10的值,值越高,优先权越高;

  (2)需求易变率(RV)表示基于一项需求在开发周期中被修改的次数,是对需求变更的估计;

  (3)执行复杂性(IC)是从开发团队的角度对需求实现难易程度的主观度量。一般按每项需求可接受的实现难易度给出一个1~10之间的值,值越大,所可能包含的缺陷数越多;

  (4)需求缺陷倾向(FP)可帮助开发团队从软件以前多个版本收集的数据发现易出错的需求,并找出实现这些需求的代码。缺陷倾向越大的模块,造成域失效的可能性越大。

  优先化因子的收集与更新过程是:先由用户指定系统各项需求的优先权以及开发阶段需求的增加和修改;需求分析者记录需求和相关优先权,并记下需求的任何变动;接着由软件维护工程师修复缺陷,并将故障映射回受其影响的需求;开发者再对各项需求执行的复杂程度给出客观评价;测试者为每项需求编写测试用例,同时将需求映射到其测试用例并运行。最后记录用例失效,并将其映射到引起该失效的测试用例。

  2.4 测试用例的分布策略

  一般而言,针对一个软件的测试用例集是不可能穷尽的,只能根据各种原则选择部分典型的用例进行测试。特别是对于一些大型软件,最终可能需要数以万计的测试用例来对其进行测试,在测试用例设计之前大量的测试用例该如何进行分布才能达到相对更好的测试效果呢?

  (1)基于矩阵的首次分布策略

  理论上,程序规模与测试用例的数量并非线性关系,因为程序规模越大,复杂度就越高,关联因素也越多,所以,对软件来说,这并不是单纯行数的增长。但是在工程中,为了便于实际操作,大多会简单将它们假设为线性关系。

  为了把握好测试用例数目的合理分布,可采用矩阵式首次分布预测法进行分布。表1所示是以软件子功能作为矩阵的行,以功能测试的基础测试观点作为矩阵的列给出的矩阵法示意表。表1中的行列元素仅仅是举例说明。

  (2)基于分析结果的再次分布策略

  如果是按照上述基于矩阵的首次分布策略单纯地实施完最初设计的测试用例就认为测试结束,那么测试就不能称之为完整的测试。而必须依据第一轮测试发现的bug的分布特征、bug的收敛趋势等分析结果来判断是否需要继续测试。在需要继续增加测试的情况下,可以采用基于分析结果的再次分布策略来确定增加部分测试用例的分布。具体实施方法是:根据功能点和基础测试观点进行bug的分布规律分析,将测试发现的bug数都正确地填写在表1的矩阵中,然后根据数字明确哪些子功能是薄弱点,哪些基础测试观点是bug最多的观点,根据软件测试中的80-20规则(80%的bug集中在20%的程序代码内),对于这些交叉点提高测试用例密度,并进行增加部分的测试用例再次分布。

  2.5 基于输入输出关系的综合黑盒测试方法

  这是针对黑盒测试存在的问题提出的一种测试用例设计方法。根据系统规格说明和系统输入输出之间的关系等附加信息,来确定输入参数之间的覆盖和约束关系,并对参数输入域进行约减;接着对各组进行处理,对各个组合中的输入变量进行两两组合覆盖,再对各相关组的结果进行水平拼接组合。实践结果表明,该方法在不影响测试检错能力的情况下,可以有效地提高测试用例的选择效果。

  利用输入输出关系对测试用例集进行约简和优化时,首先对输入输出关系自身进行约简,然后进行关联性分析,并将其划分成若干个彼此独立的相关组;接着对各相关组分别进行,可仅对每个输出涉及到的输入变量进行组合覆盖,进而利用组内元素的关联性通过公共元素进行水平拼接,最后再把各个相关组的结果进行水平拼接。结果表明,改进后的方法可以产生数量最少的用例集。

  利用测试用例集的约简技术和优化,可以大大地缩减测试计划,降低测试成本。利用已知的输入输出关系,通过对输入输出关系自身的特点(包含和关联)进行分析来对输入输出关系进行约简和分组,然后把每个相关组视为独立的输入输出关系分别进行处理,再对每个输出所涉及的输入变量进行组合覆盖,进而利用关联性把这些组合覆盖的测试数据进行水平拼接,最后再把各个相关组的结果进行水平拼接所样产生的结果不仅最接近最优解,而且时间复杂度也指数级下降,从而得到了较大的优化。

  3、结语

  为了提高软件测试的质量和效率,本文针对黑盒测试中的软件测试方法进行了分析,并根据实际操作总结出了针对黑盒测试的改进方法。实践证明,通过测试方法的优化,可使软件测试更加系统化、灵活化,其测试效率和质量都会得到明显提升。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-23 10:08:00

软件的黑盒测试方法解析与优化的相关文章

黑盒测试方法大对决

软件测试的方法有很多种, 其中黑盒测试方法被使用最多, 主要的原因是容易上手, 进入门坎不高. 所以很多测试人员会使用这种方法. 可是很多人对于何时该使用却不是很清楚, 因此让我们来做个简单的比较吧 1. ECT (Equivalence Class Testing) a. 说明: 将受测软件的输入数据, 切成好几个分割(partitions), 对于每个分割, 将会有测试个案去涵盖它 b. 适用时机 比较小的功能, 或是单一 API. 或是画面某个 input control c. parti

黑盒测试方法---边界值分析

边界值分析法 一.方法简介 1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界.   2.与等价划分的区别    1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件.    2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况.   3.边界值分析方法的考虑:    长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不

JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)_javascript技巧

 最近做了个项目,其中有项目需求是要实现跑马灯抽奖效果,实现此功能主要用到js相关知识,废话不多说,感兴趣的朋友可以阅读下全文. 开始之前先来看上篇文章遗漏的两个问题和几个知识点,是自己重构的过程中需要用到的: 1.移动端1px像素线的问题 对于设计师给我的手机端网页的设计稿都是2倍图.按照道理来说,在写网页的时候,所有对象的实际尺寸都是会除2.但是对于1像素的线呢? 先来看两张图,设计稿的效果:   在三星 S4下的实际显示效果:   可以看到这个时候1px的线竟然显示不出来了.这个问题是跟

JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)_javascript技巧

在上篇文章给大家介绍了JavaScript实现跑马灯抽奖活动实例代码解析与优化(一),既然是要编写插件.那么叫做"插件"的东西肯定是具有的某些特征能够满足我们平时开发的需求或者是提高我们的开发效率.那么叫做插件的东西应该具有哪些基本特征呢?让我们来总结一下: 1.JavaScript 插件一些基本特征: 配置一定要简单 插件中定义的变量不污染全局变量: 同一段代码可以在不同的地方复用: 用户可以自定义自己功能参数: 具有销毁变量和参数的功能: 如果按照以上的几个特征来写插件的话,我们可

SaaS软件服务优点全解析

本文讲的是SaaS软件服务优点全解析,[IT168 资讯]随着SOA.联合身份管理技术(Federated Identity Management)以及托管集成技术的发展,IT资源的物理位置会变得越来越不重要,Internet基础设施正使企业内外的界面模糊起来.对企业来说,如何使软件与硬件技术的发展更快速.方便地应用于企业,快速实现企业不断变化的业务流程,快速集成与展现不同来源的业务数据,成为了当前企业应用IT技术需要考虑的问题.以往那种从新购买软件硬件,从头建设的方式,从需求分析.选型.设计.

好的黑盒测试方法应该是什么?

很多测试人员会询问, 是否有一种测试方法, 可以很系统化地, 来开立所有测试个案. 我也很期待有这种东西, 可惜一直没有看到, 不管哪种黑盒测试方法, 都有它的优点和缺点. 更重要的是黑盒测试有个重大的致命点, 它是完全依赖测试人员的经验. 如果测试人员的产品领域知识, 以及产品所处的系统知识丰富, 就能开出更好的测试个案. 例如: 等价分析法(Equivalence Class). 他要求先找出等价区域 (Partition or equivalence class),  然后对每个区域开出一

解析网站优化哪些方法不可使用

SEO搜索引擎优化的意思,SEO也分白帽SEO和黑帽SEO,也许这两种方法都可给网站带来优化的效果,但是黑帽SEO存在一定的危险性,被搜索引擎发现后会有严重的后果.所以网站优化中有些方法是不可用的,要想网站能长久的生存下去,还是避免作弊的手段.博客给大家说说哪些方法是网站优化过程中不可使用的. 首先:避免隐藏文字.最常见的隐藏文字的方法就是把文字的颜色和背景的颜色相同,这样用户很难分辨是文字的形式,但是搜索引擎是可以看到的.这样的做法旨在提高关键词在网页中的密度,又不被用户看到影响用户体验.这样

解析网站优化容易被忽视的细节

在企业网站优化过程中我们会遇到很多细节问题,很多站长特别是新手seoer不太在意容易忽视这些细节,但是细节决定成败,这些细节的问题很可能会影响到网站优化的进行,反过来说如果站长们将细节做到完美会更有竞争优势.今天易水上海seo解析企业网站优化容易被忽视的几个细节: 第一:目录结构的优化细节,对于目录结构站长们都很熟悉,这里我们打个比方http://www.xxx.com/yy这个是一级目录,http://www.xxx.com/yy/zz这个是二级目录,以此类推,这里需要注意的是,对于每个页面到

黑盒测试方法---等价类划分

等价类划分方法 一.方法简介   1.定义  是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.    2.划分等价类:  等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的