黑盒测试概述
黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试方法
2.1、等价类划分法
等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
1.在输入条件中确立一个范围时,可分为一个有效等价类和两个无效等价类。如成绩的输入,要求分数在[0,100]之间,划分等价类如下:
有效等价类:分数在[0,100]之间
无效等价类:分数小于0
分数大于100
2.确定输入取值为n个 值中的一个的时候,可划分为n个有效等价类和1个无效等价类。如学历的输入,要求只能输入专科、本科、硕士、博士四种,划分等价类如下:
有效等价类:输入专科、本科、硕士、博士其中的一个
无效等价类:输入除四种学历之外的数据
3.在输入条件是真假值时,可确立为一个有效等价类(真)和一个无效等价类(假)。如一个判断题的对错,划分等价类如下:
有效等价类:对
无效等价类:错
4.在输入数据确定了只有一种符合条件的情况下,可确立为一个无效等价类和多个有效等价类,如填空题1+1=?,划分等价类如下:
有效等价类:2
无效等价类:除2之外的数字、空、空格、汉字、字母、特殊字符
5.在输入数据确定了个数的时候,可分为一个有效等价类和两个无效等价类。如一天必须上2-10节课,等价类划分如下;
有效等价类:一天上2-10节课
无效等价类:一天上课的节数小于2、一天上课的节数大于10
6.在输入数据确定了格式的时候,可分为一个有效等价类和多个无效等价类。如设置密码时要求为字符、数字、特殊字符的组合,可划分等价类如下:
有效等价类:字符、数字、特殊字符的组合
无效等价类:纯字符、纯数字、三者两两组合
2.2、边界值分析法
边界值分析法是针对输入数据的边界值的测试,一般情况下与等价类划分法结合使用,根据各个等价类的边界值设计测试用例。
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
eg:成绩的输入,分为三个等价类:
有效等价类:输入分数在[0,100]
无效等价类:分数小于0、分数大于100
可根据这三个等价类的边界值设计测试用例如下:
2.3、错误推测法
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
2.4、判定表法
是根据判定条件列出所有可能的组合,当有n个条件时,就需要列出相应的2n个测试用例
判定表的建立步骤:
①确定规则的个数。假如有n个条件.每个条件有两个取值(0,1),则有2n种规则。
②列出所有的条件桩和动作桩。
③填入条件项。
④填入动作项.等到初始判定表。
⑤合并相似规则(相同动作)。
eg:下表是对闰年判定的判定表,其中闰年的判定条件为能被4或者400整除但不能被100整除。
2.5、场景法
“场景”可以理解为一个瞬时的系统行为,狭义上可以理解为程序的一个操作,或者某个界面,也可以解读为“人物(Who)、时间(When)、地点(Where)、为什么做(Why),做了什么(What)和如何做(How)”的5W1H所组成的一系列活动,也可能场景中会包含一系列的子场景。
场景法(ScenarioAnalysis),就是通过使用“场景”对软件系统的功能点或业务流程进行描述,即针对需求模拟出不同的场景进行所有功能点及业务流程的覆盖的测试用例设计方法。
在了解场景法之前,要先了解基本流和备选流:
1、基本流:软件功能按照正确的事件流,中间无任何差错,从开始直接执行到结束的一条正确流程。
2、备选流:软件功能在执行过程中,除了基本流之外可能遇到的各种情况,是包含可能存在问题的各支流。
备注:
(1)图中经过用例的每条路径都用基本流和备选流来表示,直线表示基本流。是经过用例的最简单路径。
(2)一个备选流可能从基本六开始,在某个特定条件下执行,然后重新加入基本六中。(如备选流1和3)
(3)一个备选流可能起源于另一个备选流。(如备选流2)
(4)一个备选流也可能终止用例而不再加入到某个流。(如备选流2和4)
场景法就是将每个经过用例的可能路径,可以确定不同的用例场景。从基本流开始,再将基本流和备选流结合起来。
场景法的使用步骤如下:
(1)分析需求,根据需求说明描述出程序的基本流及各项备选流。
(2)根据基本流和各项备选流生成不同的场景。
(3)针对每一个场景生成相应的测试用例。
(4)重新审核生成的所有测试用例,把多余的测试用例去掉,确定好每一个测试用例,并设计测试数据。
场景法举例:
小明要在某购物网站上购买一件衣服,使用场景法设计测试用例。
前提条件:
1)假设小明在购物网站上的账号为:ming,密码:123
2)假设小明的银行卡账号为:62282***1216,密码:123
3)衣服的价格为:180元
步骤一:列出基本流和备选流。
步骤二:根据基本流备选流确定场景。
步骤三:针对各个场景,设计测试用例。
步骤四:去掉重复的测试用例项,输入测试数据。
测试用例
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
编写测试用例文档应有文档模板,须符合内部的规范要求,也可以是企业或项目组自行制定的文档规范。依据GB/T 15532 ,测试用例要素包括以下这些:
名称和标识:每个测试用例应有唯一的名称和标识符。
测试追踪:说明测试所依据的内容来源
用例说明:简要描述测试对象(测试项目或子项目)和特性、测试目的和所采用的测试方法。
测试环境:描述执行测试用例所需要的具体测试环境,包括硬件环境和软件环境。
测试的前置条件:该项测试执行前的前提条件,测试配置情况(如用于测试的模拟系统和测试工具等配置情况)、参数设置情况(测试开始前的设置,如标志、断点、指针、控制参数和初始化数据等)等。
输入数据:规定执行本测试用例所需的各个输入,用来执行测试用例的输入要求。
操作过程(执行步骤):执行本测试用例所需的每一步操作。
期望结果:说明测试用例执行中由被测软件所产生期望的测试结果。
用例级别:定义测试用例的优先级别,可以粗略地分为 “ 高 ” 和 “ 低 ” 两个级别,也可以分为“高”、“中”、“低”三个级别。
评价测试结果的准则:说明判断测试用例执行中产生的中间和最后结果是否正确的准则。说明测试用例执行
前提和约束:在测试用例说明中是假的所有前提条件和约束条件,如果有特别限制、参数偏差或异常处理,应该标识出来,并要说明他们对测试用例的影响。
测试终止条件:说明测试正常终止和异常终止的条件。
下表是符合GB/T 15532标准的测试用例模板:
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取