『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

一个程序可以有多个输入,等价类划分就是将这些输入数据按照输入需求进行分类,将它们划分为若干个子集,这些子集即为等价类(某个输入域的子集合),在每个等价类中选择有代表性的数据设计测试用例。

举个例子:

(1)先从程序规格说明书中找出各个输入条件;(2)再为每个输入条件划分等价类,形成若干互不相交的子集;(3)列出等价表

等价类划分法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。

(1)划分等价类

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试代表值就等价于这一类其他值的测试。

那在划分等价类的时候,会出现有效等价类和无效等价类,这个时候我们需要怎么判断呢?

有效等价类就是有效值的集合,它们是符合程序要求、合理且有意义的输入数据。

无效等价类就是无效值的集合,它们是不符合程序要求、不合理或无意义的输入数据。

因此,在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。

同时,在划分等价类的时候,需要遵循一定的划分原则:

等价类划分原则:

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

原则2:如果输入条件规定了输入值的集合或者规定了**“必须如何”的条件**的情况下,可以确立一个有效等价类和一个无效等价类。

原则3:如果输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

原则4:如果规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确定n个有效等价类和一个无效等价类。

原则5:如果规定了输入数据必须遵守的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

原则6:在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。

同一个等价类中的数据发现程序缺陷的能力是相同的,如果使用等价类中的其中一个数据不能捕获缺陷,那么使用等价类中的其他数据也不能捕获缺陷;同样,如果等价类中的其中一个数据能够捕获缺陷,那么该等价类中的其他数据也能捕获缺陷,即等价类中的所有输入数据都是等效的。

(2)设计测试用例

看到这里,不妨再做下案例分析。

案例1:每个学生可以选修1~3门课程,要求采用等价类设计测试用例。

解题思路:首先分析有效等价类和无效等价类,然后建立等价类表。

【解析】

(1)根据题干分析有效等价类和无效等价类:

有效等价类:选修1~3门课

无效等价类:没有选修课、选修3门课以上

(3)根据等价类表设计测试用例覆盖有效等价类和无效等价类:

案例2:某连锁酒店集团实行积分奖励计划,会员每次入住集团旗下酒店均可以获得一定积分,积分由欢迎积分加消费积分构成。其中欢迎积分跟酒店等级有关,具体标准如表1-1所示;消费积分跟每次入住消费金额有关,具体标准为每消费1元获得2积分(不足1元的部分不给分)。此外,集团会员分为优先会员、金会员、白金会员三个级别,金会员和白金会员在入住酒店时可获得消费积分的额外奖励,奖励规则如表1-2所示。

表1-1集团不同等级酒店的欢迎积分标准

表1-2额外积分奖励规则

该酒店集团开发了一个程序来计算会员每次入住后所累积的积分,程序的输入包括会员级别L、酒店等级C和消费金额A(单位:元),程序的输出为本次积分S。其中,L为单个字母且大小写不敏感,C为取值1到6的整数,A为正浮点数且最多保留两位小数,S为整数。

【问题二】根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空(1)-(13)。

(1)边界值分析法是对软件的输入或输出边界进行测试的一种方法,它通常作为等价类划分法的一种补充测试。

(2)在等价类划分法中,无论是输入等价类还是输出等价类,都会有多个边界,而边界值分析法就是在这些边界附近寻找某些点作为测试数据,而不是在等价类内部选择测试数据。

设计测试用例步骤:

(1)首先划分等价类,根据等价类划分情况确定边界情况。

(2)选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。

原则1:如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据

原则2:如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据

原则3:根据规格说明的每个输出条件,使用前面的原则1。

原则4:根据规格说明的每个输出条件,使用前面的原则2。

原则5:如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

原则6:如果程序中使用了一个内部数据结构,则应该选择这个内部数据结构边界上的值作为测试用例。

原则7:分析规格说明,找出其他可能的边界条件。

错误推测法就是人们可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。

(1)列举出程序中所有可能有的错误和容易发生错误的特殊情况(比如,程序只能输入数字,测试时可以输入字母进行测试)。(2)根据它们选择测试用例。

如果在测试时必须考虑输入条件的各种组合以及各种输出情况,那么可以使用一种适用于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。

因果图使用一些简单的逻辑符号和直线将程序的因(输入)与果(输出)连接起来,一般原因用ci表示,结果用ei表示,各结点表示状态,可以取值“0”或“1”,其中“0”表示状态不出现,“1”表示状态出现。

如下图所示:

ci与ei之间有恒等、非(~)、或(∨)、与(∧)4种关系,分别为:

恒等:在恒等关系中,要求程序有一个输入和一个输出,输出与输入保持一致。若c1为1,则e1也为1,若c1为0,则e1也为0。

非:非使用符号“~”表示,在这种关系中,要求程序有一个输入和一个输出,输出是输入的取反。若c1为1,则e1为0,若c1为0,则e1为1。

或:使用符号“∨”表示,或关系可以有任意个输入,只要这些输入中有一个为1,则输出为1,否则输出为0。

与:使用符号“∧”表示,与关系也可以有任意个输入,但只有这些输入全部为1,输出才能为1,否则输出为0。

总结:

为了表示原因与原因之间,原因与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。

(1)输入条件的约束类别可分为四种:

E(Exclusive,这些依赖关系在软件测试中称为“约束”,异)、I(atleastone,或)、O(oneandonlyone,唯一)、R(Requires,要求),在因果图中,用特定的符号表明这些约束关系。

(2)输出条件的约束类别只有一种:

(1)因果图设计测试用例思想:

(2)使用因果图设计测试用例的步骤:

因果图法的优点:

程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。采用因果图法设计该软件的测试用例。

具体解析如下:(1)分析程序规格说明中的原因和结果:

(4)简化判定表,第7列和第8列合并

(5)根据判定表生成测试用例

判定表也称为决策表,其实质就是一种逻辑表。在程序设计发展初期,判定表就已经被当作程序开发的辅助工具了,帮助开发人员整理开发模式和流程,因为它可以把复杂的逻辑关系和多种条件组合的情况表达的既具体又明确,利用判定表可以设计出完整的测试用例集合。

为了让大家明白什么是判定表,下面通过一个“图书阅读指南”来制作一个判定表,图书阅读指南指明了图书阅读过程中可能出现的状况,以及针对各种情况给读者的建议。

(1)在图书阅读过程中可能会出现3种情况:

如果回答是肯定的,则使用“Y”标记;

如果回答是否定的,则使用“N”标记。

那么这3种情况可以有23=8种组合,针对这8种组合。

(2)阅读指南给读者提供了4条建议:

(3)针对以上分析,得出以下图书阅读指南判定表。

(4)在实际测试中,条件桩往往很多,而且每个条件桩都有真假两个条件项,有n个条件桩的判定表就会有2n种条件规则,如果每条规则都设计一个测试用例,不仅工作量大,而且有些工作量可能是重复的无意义的。例如在“图书阅读指南”中,第1、2条规则,第1条规则取值为:Y、Y、Y,执行结果为“停止阅读并休息”;第2条规则取值为:Y、Y、N,执行结果也是为“停止阅读并休息”;对于这两条规则来说,前两个问题的取值相同,执行结果一样。

这些不影响结果取值的问题称为无关条件项,用“-”表示。忽略无关条件项,可以将两条规则合并。

合并规则需要满足如下两个条件:①两条规则采取的动作相同;②两条规则的条件项取值相似。

(5)根据合并规则,可以将“图书阅读指南”判定表合并。

判定表是把作为条件的所有输入的各种组合值以及对应的输出值都罗列出来而形成的表格,判定表由4个部分组成,判定表结构如下:

其中每一列称为一个规则。判定表的4个部分分别为:

在判定表中,任何一个条件组合的特定取值及其相应要执行的操作称为一条规则,即判定表中的每一列就是一条规则,每一列都可以设计一个测试用例,根据判定表设计测试用例就不会有所遗漏。

某公司的薪资管理制度如下:员工工资分为年薪制与月薪制两种,员工的错误定位包括普通错误与严重错误两种,如果是年薪制的员工,犯普通错误扣款2%,犯严重错误扣款4%;如果是月薪制的员工,犯普通错误扣款4%,犯严重错误扣款8%。该公司编写了一款软件用于员工工资计算发放,现在要对该软件进行测试。

对公司员工工资管理进行分析,可得出员工工资由4个因素决定:年薪、月薪、普通错误、严重错误。其中,年薪与月薪不可能同时并存,但普通错误与严重错误可以并存。

员工最终扣款结果有7种:未扣款、扣款2%、扣款4%、扣款6%(2%+4%)、扣款4%、扣款8%、扣款12%(4%+8%)。

采用判定表驱动法设计该软件的测试用例。

具体解析如下:

正交实验设计法(Orthogonalexperimentaldesign)是指从大量的实验点中挑选出适量的、有代表性的点,依据Glois理论导出“正交表”,从而合理的安排实验的一种实验设计方法。

接下来对这三个步骤进行一一解析。

(1)举个栗子(步骤一):

提取因子,构造因子状态表——即分析软件的规格需求说明得到影响软件功能的因子,确定因子可以有哪些取值,即确定因子的状态。

例如,某一软件的运行受到操作系统和数据库的影响,因此影响其运行是否成功的因子有操作系统和数据库两个,而操作系统有Windows、Linux、Mac三个取值,数据库有MySQL、MongoDB、Oracle三个取值,因此操作系统的因子状态为3,数据库因子状态为3。得到如下因子-状态表:

(2)举个栗子(步骤二):

加权筛选,简化因子状态表——在实际软件测试中,软件的因子及因子的状态会有很多,每个因子及其状态对软件的作用也大不相同,如果把这些因子及状态都划分到因子-状态表中,最后生成的测试用例会相当庞大,从而影响软件测试的效率。因此需要根据因子及状态的重要程度进行加权筛选,选出重要的因子与状态,简化因子-状态表。

(3)举个栗子(步骤三):

构建正交表,设计测试用例——正交表的表示形式为Ln(tc)来表示。

正交表最大的特点是取点均匀分散、齐整可比,每一列中每种数字出现的次数都相等,即每种状态的取值次数相等。

写到这里,对正交实验设计法做个小结:

具体解析如下:(1)提取因子,构造因子状态表

(2)加权筛选,简化因子状态表

现在的软件几乎都是由事件来触发的,事情触发便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。

场景可以看成是基本流与备选流的集合。用例的场景用来描述流经用例的路径,从用例的开始到结束遍历这条路径上所有的基本流和备选流。

基本事件流,从系统某个初始状态开始,经一系列状态后,到达最终状态的一个业务流程,并且是最主要、最基本的一个业务流程(无任何差错,程序从开始直接到执行结束)。

备选事件流,以基本流为基础,在基本流所经过的每个判定节点处满足不同的触发条件而导致的其他事件流。

从上图可以看出,图中经过用例的每条路径都用基本流和备选流来表示。

基本流:采用直黑线表示,是经过用例的最简单的路径。

备选流:采用不同色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。

场景法设计测试用例的基本步骤如下:

(1)根据需求规格说明,描述出程序的基本流及各项备选流。

(2)根据基本流和各项备选流生成不同的场景。

(3)对每一个场景生成相应的测试用例。

(4)对生成的所有测试用例重新复审,去掉多余的测试用例。测试用例确定后,对每一个测试用例确定测试数据值。

写到这里,对场景法做个小结:

案例解析如下:

(1)确定基本流和备选流

(2)根据基本流和备选流来确定场景,如下表:

表购物系统场景表

(3)根据每一个场景,设计需要的测试用例

可以采用矩阵或判定表来确定和管理测试用例,下面介绍一种通用的格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。在矩阵中,

购物系统场景矩阵见下表:

表购物系统场景矩阵

(4)设计具体的测试用例数据(假设所购物品单价为30元)

表购物系统具体测试用例

此处还未学习明白,静待后续更新……

写到这里,对上面八大黑盒测试方法做个小结。

(1)首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。

(2)在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。

(3)可以用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验。

(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。

(5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表。

(6)对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。

(7)对于业务流清晰的软件,可以使用场景贯穿测试,再综合使用各种测试方法。

(1)优点:①对较大的代码单元来说,黑盒测试比白盒测试的效率高,测试人员不需要了解实现的细节,包括特定的编程语言;②测试人员和编程人员是相互独立的,从用户的角度进行测试,很容易被接受和理解,有助于暴露任何与规格不一致或者歧异的地方,测试用例可以在规格完成后马上进行。

(2)缺点:不能测试程序内部特定部位,比如程序未执行的代码,这些代码得不到测试,则无法发现错误。若没有清晰的和简明的规格,测试用例很难被设计,不易进行充分性测试。

THE END
1.书是什么书,百度百科给出的解释是两句话:一句是“人类用来记录一切成就和知识的主要工具”;一句是“书本一般指装订成册的、印刷有文字的纸张集合体”。 依据第一句,书永远都不会消失。它是人类知识成就记录的载体,不论它以何种形式存在,纸质版、电子版、量子版,亦或是我们现在还想象不到的“未来版”,它都叫书。 https://www.jianshu.com/p/7998a44320f0
2.书店的魅力:如何选择书籍与提升阅读体验读者书评和阅读在当今这个信息爆炸的时代,书店作为一个知识的殿堂,依然吸引着无数读者。书店不仅是购买书籍的地方,更是一个文化交流和思想碰撞的空间。本文将从多个角度探讨如何有效地阅读与书店相关的内容,以及如何在书店中更好地选择和阅读书籍。 书店的定义与发展 (Definition and Development of Bookstores) https://www.163.com/dy/article/JJKDP9D70556A727.html
3.图书馆资源的概念及构成辨析0可以看出,这个定义综合了前文所提的两种观点,并修正了个别不准确的用词。第一种观点说图书馆资源是一种“信息集合”,不能准确包括图书馆各类资源,而第二种观点过于宽泛,不够精确。 2图书馆资源的构成 图书馆资源的构成同样存在多种观点,一种观点从图书馆资源作为一种动态的信息资源体系的角度出发,认为有四个要素https://m.renrendoc.com/paper/141463660.html
4.论图书馆的设计论文(精选14篇)图书馆资源的构成同样存在多种观点, 一种观点从图书馆资源作为一种动态的信息资源体系的角度出发, 认为有四个要素:信息资源、用户信息资源、信息人员:主要批图书馆员、信息设施:包括技术与设备;另一种观点认为图书馆资源有四个内容:文献资源、网络信息资源、人才资源、设备资源;第三种观点比较泛, 认为有七个要素:文https://www.360wenmi.com/f/files49wq9fo.html
5.期刊定义构成要素及媒体特点期刊定义:(“杂志”) “是有固定名称,用卷、期或者年、季、月顺序编号,以印刷方式复制的,以纸介质为载体的,成册的连续出版物。” 期刊构成要素: 1.有一个稳定的名称(名) 2.连续出版(连) 3.以卷、期或年、季、月等顺序编号(号) 4.具有以纸为载体、用印刷方式复制并装订成册的物质形态(物) http://www.taigechina.com/NewsShow.asp?Id=375
6.浙江省文化产业结构特征及区域比较研究从文化及相关产业增加值要素构成看,劳动者报酬、固定资产折旧、生产税净额和营业盈余分别占42.43%、15.66%、18.78%和23.14%。分行业看,文化服务业的劳动报酬比重高达51.36%,而生产税净额和营业盈余比重合计仅占28.82%。分层分类别看,核心层中的新闻服务和文化艺术服务的劳动报酬比重分别高达83.99%和84.60%,而生产税净http://tjj.zj.gov.cn/art/2014/8/27/art_1530863_20981068.html
7.图书馆资源的概念及构成辨析(5)动态性。动态性是指一个系统必须随着时间的推移及外部环境的变化,系统组成要素亦不断发展变化。图书馆资源的动态性决定了图书馆资源的不断发展变化,正如图书馆资源从诞生之日发展到今日,其内涵和外延正逐步扩大一样。 从上述的分析中,本文试对图书馆资源概念作如下定义:图书馆资源是指图书馆为了资源利用而组织起https://www.unjs.com/lunwen/jiaoyu/20080120140124_17198.html
8.通用论文格式排版详细说明一、论文封面及首页 1封面及首页由我校图书馆统一制作,首页内容与格式与封面相同; 2学校代码:填写学校代码; 3研究生学号:填写研究生证号;无学生证的,填写姓名拼音大写和授予学位年份,例如:王立国2005年被授予学位,则填写WANGLIGUO2005; 4分类号:按《中国图书资料分类法》一书填写(可到图书馆查询); https://bylw.yjbys.com/lunwengeshi/62618.html
9.关于书籍设计图书的整体设计要求在有限的空间(封面、版面)里,把构成图书的各种要素——文字字体、图片图形、线条线框、颜色色块等诸因素,根据特定内容的需要进行组合排列,按照造型艺术的原理,把构思与计划以视觉形式表达出来。整体设计的计划应与书稿的内容、性质相匹配,又要与印刷工艺要求相适应。 https://www.douban.com/note/179138616/
10.2018级老年服务与管理专业人才培养方案老年行政事务管理:行政事务管理员(2)→助理级(4年)→中级(5年)→高级 六、培养目标 培养思想政治坚定、德技并修、全面发展,适应人口老龄化的社会需要,掌握养老及涉老岗位必备的基础理论和专业知识,具备较强的现代养老机构管理能力、良好的人际沟通能力和对老年人实施整体照护的能力,具有良好职业道德,面向老年照护https://jwc.wfhlxy.com/info/1023/1358.htm
11.构成图书馆的要素()合同法律关系的构成要素有( )。 A. 内容 B. 主体 C. 规范 D. 客体 E. 行为 查看完整题目与答案 冯风看了某广告公司的宣传材料后,邮寄购买了某厂家的减肥产品,经使用发现无效,他可选择下列哪些方式维护自己的合法权益()。 A. 要求厂家赔偿损失 B. 要求广告公司承担赔偿责任 C. 要求行政主管部https://www.shuashuati.com/ti/055c69556ef243ecb95fd9ae7adea300.html?fm=bd0534dad314eb5d215b8e55da4996d21b
12.南昌大学4、网络检索可视化 网络检索的可视化是指将数据库中的不可见的语义关系用图像形式可视化显示并表达用户检索过程。可视化信息是以二维或三维的空间形式展现的。例如,复旦大学图书馆在其主页(http://www.library.fudan.edu.cn) 推出的可视化图书查询系统,可点击某一层、某一架的藏书,直接看到图书的外形。 https://ygb.ncu.edu.cn/yjsh/xstd/xszljs/cdf321077dc54d5dbe5a8eb11d272fe3_mobile.htm
13.本体概述涛涌四海1.定义 2.本体的目标和作用 3.本体构成要素 4.领域本体与上层本体 5.本体语言 6.构造Ontology 的规则 7.本体在信息检索的应用 1.定义 –1991/Neches 等:给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义; https://www.cnblogs.com/cnlht/p/9495638.html
14.项目计划书(精选15篇)4、计算机2.5万元; 5、图书1.6万元; 完成上述建设内容,共需投入资金14.6万元。 附件1:福泉市高石乡翁巴小学校园现状平面图 附件2:福泉市高石乡翁巴小学校园规划平面图 附件3:福泉市高石乡翁巴小学校舍设施设备购置统计表 项目计划书 7 一、可持续发展企业的十条要素: https://www.ruiwen.com/gongwen/jihuashu/1304493.html
15.高校竞争范文12篇(全文)高校核心竞争力主要由高校的特色力、管理力、学习力等要素构成,高校的办学特色是高校核心竞争力的核心构成部分,是一个高校在激烈的竞争中力求发展的基础。高校应根据自身所拥有的行业特色或学科优势,加强建设特色专业学科,提高科研能力,建立自身特有的人才培养体系。以高校的特色专业为核心通过产生和整合更具有竞争价值的https://www.99xueshu.com/w/ikeydn332tgv.html
16.UML与面向对象设计构成要素 对象 生命线 控制焦点 案例:图书管理系统 案例描述: 课件里的案例比较奇怪,边界类比较少讲但是在这个案例里用了很多。会显得比较乱。 常见问题 消息循环发送 *[i:= 1..n ]:Message2() 消息条件发送 1.[a>b]:message() 2.使用文字说明 https://blog.csdn.net/weixin_33804582/article/details/93910235
17.20076文摘参考第一种观点认为警察权是警察法学的基本理论中“警察行为”要素中的一个要素—权力要素。也就是说警察权不是警察法学的基本理论中的一个独立的专章论述的问题,而是作为警察行为的构成要素:目的要素、手段要素和权力要素其中之一,并且认为是“警察权力是警察机关和警察人员实施警察行为的基础要素”。 https://www.xjpcedu.cn/info/1160/4102.htm