关于黑盒测试用例设计方法的探讨
2022-07-17尹金
摘要:软件测试能够在很大程度上保证软件的质量,而测试用例是软件测试过程中的关键环节,基于此本文对黑盒测试用例的设计原则进行分析,根据实践经验总结了黑盒测试用例的几种设计方法。
关键词:黑盒测试;测试用例;因果图
引言:在软件开发和使用周期当中,软件测试是保证其质量的关键手段。目前国家、企业和用户对软件质量的要求越来越高,软件测试的方法也受到了越来越多的重视,黑盒测试是一种有效的测试手段,能够提高测试效率保证测试效果。
1.黑盒测试用例的设计原则
1.1真实性
真实性是黑盒测试用例最关键的原则,也是最基础的原则,测试者是在测试用例的基础上对软件质量进行测试的。如果软件测试用例出现错误,那么就会导致整个软件测试出现错误,影响最终结果的准确性,进而对之后软件开发造成负面影响。
1.2可读性
软件测试的目的并不只是为了让测试者理解,更重要的是要让其他人了解,让软件开发者了解,因此就要保证在软件测试结果当中要具有一定的可读性,不会出现表述不清的问题,给软件测试的接受者造成阅读困难。
1.4可执行性
可执行性是指用户在进行测试时,能够按照测试用例的步骤描述进行测试,因此在测试用例时应当将所有的测试步骤和方法描述清楚,在描述过程时要保证思路清晰,语言明确。不管是软件开发者还是软件用户,都能够对软件检测过程产生清晰認知,在进行拆分设计时也应当保证结构和思路的合理性。
1.5一致性
一致性要求测试者在测试过程中减少主观因素的影响,增加操作时的稳定性和确定性,避免因为测试者个人因素的变化导致最终测试结果发生改变。因此,测试用例在测试过程中,应当保证操作过程与最终的结果是一致的。
2.黑盒测试用例的设计方法
2.1等价类划分
在黑盒测试方法当中,等价类划分法是一种非常典型的黑盒测试方法,这种测试方法的优点就在于测试用例时不必考虑软件的结构,只需要根据规格书的需求进行。这种方法就相当于将程序当中的输入域划分成几个不同的部分,在这些部分里面选择比较具有代表性的几个数据作为主要的测试用例。这之中的每一类代表性数据都应当承担着等价的作用,也就是说应当与同一类当中其他值的作用完全等价。假设,在某一类的代表性数据当中发现了错误,那么在同一类里面的其他数据也一定会查出同样的错误;反之如果在典型数据中没有查出错误,那么在其他数据当中也不会查出错误。在利用等价类划分方法测试用例时,需要根据规格的具体说明来对数据进行划分,在划分等价类之后列出相应的等价类表。为了能够保证软件测试的效果,要对这些数据进行更加彻底地测试。考虑到测试过程需要用到打开量的信息,这对信息技术人员要求很高,且存在较大的工作量,很容易造成工作失误,这种软件测试可能无法提高软件质量。因此利用等价类划分的方法测试用例,可以帮助程序员减少工作量,用相对较少的具有代表性的数据对软件质量进行测试来取得最佳的效果,能够在很大程度上减少程序员的出错率。等价类划分方法同样也分为有效和无效等价类两种情况,有效等价类指的是合理、科学地选择数据集合,将有意义的数据集合在一起,符合程序设置规格。而无效等价类,相当于是利用了一些并不合理的也没有意义的数据集合进行测试,因此也不符合程序的设置规格,导致最后没有产生任何测试效果[1]。因此,在利用等价类划分方法测试用例时应当充分考虑这两种情况,软件的基础功能就是要能够接受合理的、科学的数据,同时也要能够经受得住意外的考验。例如,有一张3.5寸的软盘,标准内存是1.44MB而实际内存是1.38MB,因此在利用等价类划分方法进行测试时,可以设置三个等价类,其输入域分别为:<0,但这种情况几乎不予考虑;0≤容量≤1.38以及1.38≤容量三个不同的等价类。在这之中只有0≤容量≤1.38是有效类,其他两类均为无效类。
2.2边界值分析
边界值分析方法是一种能够补充等价划分方法的一种测试技术,与等价类不同的是,它不通过选择等价类当中的任意元素进行测试,而是选择被等价类排除的边界成分作为测试用例。通过大量的测试实践表明,利用边界值分析法测试用例,能够查出更多等价划分法无法测试的错误,获得更好的测试效果。因为在软件当中有很多数据错误发生在集合范围之外,这些数据处于输入域或者是输出域的边界。所谓边界值分析法就是设计测试的用例在输入或是输出的边界提取数据,例如输入和输出域边界的最大值或者是最小值,两个区域第一个数据或者是最后一个数据,还包括刚刚超过边界范围的值,这种测试方法是对前者等价类划分法的一种补充。很多软件开发者容易在信息域的边界信息上出错,比如说常会把小于等于0直接写作小于0,因此在集合边界部分的数据也应当被严格检查,这些地方会经常出现数据错误。同时,针对边界附近的数据进行检测能够测试出更多错误也能够大大提高测试效率。等价类划分方法是主要针对数据域内部的某一个数据或者是一个比较具有代表作用的典型值作为主要的测试数据,而边界值分析法不仅要考虑输入的数据还要对输出数据的情况进行考虑,并将这些数据划分为有效等价类和无效等价类,在这些等价类的边界区域选取至少三个代表性数据作为测试数据,这三个数据应当是正好处于边界值上,稍大于边界值或者是稍小于边界值。如果希望得出的结果更加准确,则可以向外多扩展一个数据进入测试当中。
2.3因果图分析
在软件实际投入运用时,问题的结果经常会受多种复杂条件的取值影响,例如高校借书软件的处理结果,会受借阅者的身份、借阅证有效日期、借阅图书数量、借阅图书是否有空余、所借阅的书籍类型等多个因素相关[2]。又比如游客使用软件订购旅行社的套餐时所享受的折扣与游客的身份(学生、儿童等)、游客的软件使用等级、游客预定的线路以及所选择的出行日期等因素有关,因此在处理结果时应当考虑多种复杂因素的影响。因果图分析就是根据程序规格中说明的要求做相关描述,将输入条件作为“原因”,程序状态发生的变化或是输出作为“结果”,根据相关程序的归纳、说明和定义绘制因果网络图,之后将网络图转换为判定表,并在判定表当中的每一列设计一个测试用例,这种判定表又被称为是决策表,主要作用是辅助测试或者是在设计阶段对算法进行描述。这种方法的优点就在于能将结果相关的多个不同因素以及可能因素进行列举,相对于其他方法来说操作比较简单,同时也可以尽量避免出现遗漏。在设计阶段描述程序进行算法处理时,常常会将判定表根据区域划分成四个部分:左上角与问题相关的所有条件、右上角相关条件当中取值组成的矩阵、左下角可能会出现的行动、右下角各种不同的取值在组合下可能会采取的行动。如果是测试阶段用的判定表应当比设计阶段的判定表多一行“测试用例”的标注,在对每一列条例取值时组合设计一个典型值进入测试中去。
2.4试错法
试错法基本上是根据测试员的经验和直觉,由测试员列举出在程序当中可能会出现的错误,以及容易产生错误的位置,并对这些位置进行有针对性测试,也就是对程序当中可能会出现的错误进行试错。例如成绩录入模板的测试用例,在成绩录入过程中,需要处理的数据量十分庞大,不仅是要对部分课程成绩进行录入还需要平时成绩与期末成绩相加,最后输入最终成绩。如果对每个数据进行检查,检查的工作量十分庞大,还会容易出现错误,所以根据实践经验,在成绩录入时,可能会在等级边缘部分出错。因为成绩输入过程中会受有效数据范围的限制,所以基本不会出太大的错误,而总评的等级是由其他各个部门的成績相加换算得来的,并没有确定的结果。因此可以在测试时将等级边缘部分的成绩作为测试用例,设置的平时成绩、实践成绩、期中考核、期末成绩以百分制的形式录入,在总评成绩处则显示为等级制。前四部分成绩按照相关规定进行合理分布,如果测试结果中表明了成绩输入是正常的,但是总评的结果却在等级边界部分且总评依旧显示百分制结果,并非等级制,则可以判断程序当中出现了一些错误。
2.5正交试验设计
正交试验设计需要大量的试验点,并能够从这些试验点当中挑选出真正有用的、有代表性的点。正交试验设计需要科学安排试验内容,将所有因素和水平在试验当中均匀分配并进行合理搭配,保证试验变化存在一定规律。正交试验设计法测试用例,首先要利用软件相关说明找出可能会影响工作和操作的因素和对象,其次利用正交表格对发现的各个因子的状态进行组合,创建一个有效的测试输入数据表格,根据数据的分布建立因果图,再围绕因果图的各个节点延伸出正交表,在这种测试方式中得出的数据表,测试用例的数量能够大大降低[3]。
总结:黑盒测试方法是一种效果十分显著的软件测试方法,目前已经出现了很多黑盒测试用例的设计方法,这几种方法各有优劣。因此在软件测试的过程中不能只使用同一种方法进行测试,应当结合多种方法的优点才能够真正发挥软件测试的效果。
参考文献:
[1]妥泽花.基于黑盒测试与白盒测试的比较探究[J].电子世界,2021,(11):55-56.
[2]张喻平.黑盒测试中测试用例优先级改进算法分析[J].电脑知识与技术,2020,16(02):91-92+98.
[3]樊茜,何雨昂,黄葵.伺服软件的复杂时序测试用例设计方法[J].电子技术与软件工程,2019,(24):48-49.
基金项目:
合肥市现代职业教育集团横向课题:职业教育信息化软件开发人才供给及产教融合研究与实践;
安徽省省级质量工程项目:人工智能技术应用特色高水平专业(2021tszy010);
安徽工商职业学院校级一般教研项目:“1+X”证书制度下人工智能技术应用专业课程群建设研究(2021xjjy20);
作者简介:
尹金(1986.04),女,汉族,安徽省人,硕士研究生,讲师,主要研究方向为机器学习、人工智能技术应用,工作单位:安徽工商职业学院信息工程学院。