软件黑盒测试
黑盒测试是一种软件测试技术,它可以检查软件的功能,而不会窥视其内部结构或编码,黑盒测试的主要来源是客户声明的要求规范。
在此方法中,测试人员选择一个函数并提供输入值以检查它的功能,并检查该函数是否给出了预期的输出。如果函数产生正确的输出,则在测试中传递,否则测试失败。测试团队将结果报告给开发团队,然后测试下一个功能。如果出现严重问题,在完成所有功能的测试后,会将测试结果返回给开发团队进行更正。
1、黑盒测试基于要求的规范,因此在开始时进行检查。
2、测试人员通过选择有效和无效的输入值来检查软件是正确还是错误地处理它们,从而创建肯定的测试场景和不利的测试场景。
3、测试人员开发各种测试用例,如决策表,所有对测试,等效划分,误差估计,因果图等。
4、包括执行所有测试用例。
5、测试仪将预期输出与实际输出进行比较。
6、最后一步,如果软件中存在任何缺陷,则将其修复并再次测试。
测试程序
黑盒测试的测试过程是测试人员对软件工作有特定知识的一种过程,它开发测试用例以检查软件功能的准确性。
它不需要软件的编程知识。所有测试用例都是通过考虑特定函数的输入和输出来设计的。测试人员知道特定输入的确定输出,但不知道结果是如何产生的。黑盒测试中使用各种技术进行测试,如决策表技术,边界值分析技术,状态转换,全对测试,因果图技术,等价划分技术,错误猜测技术,用例技术和用户故事技术。所有这些技术都已在本教程中详细解释。
测试用例
测试用例是根据要求的规范创建的。这些测试用例通常是根据软件的工作描述创建的,包括要求,设计参数和其他规范。对于测试,测试设计者通过采用有效输入值和不利测试场景来选择正测试场景,方法是采用无效输入值来确定正确的输出。测试用例主要用于功能测试,但也可用于非功能测试。测试用例是由测试团队设计的,没有任何软件开发团队的参与。
黑盒测试使用的技术
以下是黑盒测试使用的技术
编号 | 技术 | 描述说明 |
---|---|---|
1 | 决策表技术 | 决策表技术是一种系统方法,以表形式捕获各种输入组合及其各自的系统行为。它适用于在两个和两个以上输入之间具有逻辑关系的函数。 |
2 | 边界值问题技术 | 边界值技术用于测试边界值,边界值是包含变量上限和下限的边界值。它在输入边界值时测试软件是否产生正确的输出。 |
3 | 状态转换技术 | 状态转换技术用于在向同一功能提供不同的输入值时捕获软件应用程序的行为。它适用于那些提供访问应用程序的特定尝试次数的应用程序类型。 |
4 | 成对测试技术 | 成对测试技术用于测试所有可能的离散值组合。这种组合方法用于测试使用复选框输入,单选按钮输入,列表框,文本框等的应用程序。 |
5 | 因果技术 | 因果技术强调了给定结果与影响结果的所有因素之间的关系。它基于一系列要求。 |
6 | 等价类划分技术 | 等价类划分是一种软件测试技术,其输入数据被划分为有效值和无效值的分区,并且所有分区必须表现出相同的行为。 |
7 | 错误猜测技术 | 错误猜测是一种没有用于识别错误的特定方法的技术。它基于测试分析师的经验,测试人员使用该经验来猜测软件的有问题区域。 |
8 | 用例技术 | 用例技术用于根据系统的使用情况从系统的开头到结尾识别测试用例。通过使用这种技术,测试团队创建了一个测试场景,可以从头到尾根据每个功能的功能运行整个软件。 |
黑盒测试中的决策表技术
决策表技术是用于黑盒测试的广泛使用的用例设计技术之一。这是一种系统方法,它以表格形式捕获各种输入组合及其各自的系统行为。
它也称为因果表。该技术用于系统地选择测试用例; 它节省了测试时间,并为软件应用程序的测试区域提供了良好的覆盖。
决策表技术适用于在两个和两个以上输入之间具有逻辑关系的函数。
该技术与输入的正确组合有关,并确定各种输入组合的结果。要通过决策表技术设计测试用例,需要将条件视为输入,将操作视为输出。
下面通过一个例子来理解它:
大多数人都使用电子邮件帐户,当使用电子邮件帐户时,需要输入电子邮件及其相关密码。
如果电子邮件和密码都正确匹配,则将用户定向到电子邮件帐户的主页; 否则,它将返回登录页面,并显示错误消息“电子邮件不正确”或“密码不正确”。
现在,看看如何为登录功能创建决策表,可以使用电子邮件和密码登录。电子邮件和密码都是条件,预期结果是操作。
在表中,有四个条件或测试用例来测试登录功能。在第一个条件下,如果电子邮件和密码都正确,则应将用户定向到帐户的主页。
在第二种情况下,如果电子邮件正确,但密码不正确,则该功能应显示“密码不正确”。在第三种情况下,如果电子邮件不正确,但密码正确,则应显示“电子邮件不正确”。
现在,在第四个也是最后一个条件下,电子邮件和密码都不正确,那么应显示错误的电子邮件账号。
在此示例中,已包含所有可能的条件或测试用例,并且以相同的方式,测试团队还包括所有可能的测试用例,以便可以在测试级别上修复即将发生的错误。
为了找到所有可能条件的数量,测试者使用2^n公式,其中n表示输入的数量; 在该示例中,输入的数量是2(一个是真,第二个是假)。
可能条件数= 2^第二个条件的值数可能的条件数= 2 ^ 2 = 4
在使用决策表技术时,测试人员确定预期输出,如果函数产生预期输出,则在测试中传递,如果不是,则失败。将失败的软件发送回开发团队以修复缺陷。
软件边界值分析
边界值分析是广泛使用的黑盒测试用例设计技术之一。它用于测试边界值,因为边界附近的输入值具有较高的误差机会。
每当我们通过边界值分析进行测试时,测试人员会在输入边界值时关注软件是否产生正确的输出。
边界值是包含变量上限和下限的值。假设age是任何函数的变量,其最小值为18,最大值为30,18和30都将被视为边界值。
边界值分析的基本假设是,使用边界值创建的测试用例最有可能导致错误。
18和30是边界值,所以测试人员更关注这些值,但这并不说就忽略了像19,20,21,27,29这样的中间值。为该范围的每个值开发测试用例。
边界值的测试是通过制作有效和无效的分区来完成的。测试无效分区是因为在不利条件下测试输出也是必要的。
让我们通过实践来理解:
想象一下,有一个函数接受18到30之间的数字,其中18是最小值,30是有效分区的最大值,该分区的其他值是:19,20,21,22,...,30。无效分区由小于18的数字组成,如:12,14,15,16和17以及31,32,34,36等。为有效和无效分区开发测试用例,以捕获系统在不同输入条件下的行为。
如果软件系统接受有效数字并提供所需的输出,则软件系统将在测试中传递,如果不是,则不成功。在另一种情况下,软件系统不应接受无效数字,如果输入的数字无效,则应显示错误信息。 如果正在测试的软件遵循所有测试指南和规范,则将其发送给发布团队,否则发送给开发团队以修复缺陷。
软件测试状态转化技术
状态转换的一般含义是,相同情况的不同形式,并且根据含义,状态转换方法也是如此。当不同的输入值赋予相同的函数时,它用于捕获软件应用程序的行为。 我们都使用过自动取款机,当从中取款时,它会显示帐户详细信息。
现在再次进行另一次交易,然后再次显示帐户详细信息,但第二次交易后显示的详细信息与第一次交易不同,但两个详细信息都使用ATM的相同功能显示。所以这里使用了相同的函数,但每次输出不同时,这称为状态转换。
在测试软件应用程序的情况下,此方法测试函数是否遵循进入不同输入的状态转换规范。 这适用于那些提供访问应用程序的特定尝试次数的应用程序类型,例如:在指定次数的错误尝试后会锁定应用程序的登录功能。
在使用电子邮件和密码的登录功能中,它提供了特定次数的尝试来访问应用程序,在超过最大尝试次数后,它会锁定然后显示错误消息。
应用程序的登录功能提供最多三次尝试,并且在超过三次尝试之后,它将定向到错误页面:
状态转移表
状态 | 登录 | 验证 | 重定向 |
S1 | 第一次尝试 | 无效 | S2 |
S2 | 第二次尝试 | 无效 | S3 |
S3 | 第三次尝试 | 无效 | |
S4 | 主页 | ||
S5 | 错误页面 |
在上述状态转换表中,状态S1表示首次登录尝试。当第一次尝试无效时,将指示用户进行第二次尝试(状态S2)。如果第二次尝试也无效,则用户将被引导到第三次尝试(状态S3)。如果第三次和最后一次尝试无效,则将用户定向到错误页面(状态S5)。 但是如果第三次尝试是有效的,那么它将被引导到主页(状态S4)。 如果第三次尝试有效,如下状态转换表:
状态 | 登录 | 验证 | 重定向 |
S1 | 第一次尝试 | 无效 | S2 |
S2 | 第二次尝试 | 无效 | S3 |
S3 | 第三次尝试 | 无效 | |
S4 | 主页 | ||
S5 | 错误页面 |
通过使用上述状态转换表,可以执行任何软件应用程序的测试。可以通过确定所需的输出来制作状态转换表,然后运行软件系统来检查它是否提供了所需的输出。
成对测试技术
成对测试技术也称为配对测试。它用于测试所有可能的离散值组合。这种组合方法用于测试使用复选框输入,单选按钮输入的应用程序(当必须选择一个选项时使用单选按钮,例如当选择性别男性或女性时,只能选择一个选项),列表框 ,文本框等
假设有一个用于测试的软件应用程序的功能,其中有10个字段用于输入数据,因此离散组合的总数是10 ^ 10(100亿),但是所有组合的测试都很复杂,因为它会花很多时间。
下面通过一个例子来理解测试过程:
假设有一个包含10个元素的列表框,可以接受1到100个字符的文本框,单选按钮,复选框和确定按钮。
输入值在下面给出,可以由给定函数的字段接受。
1、复选框 - 已选中或未选中
2、列表框 - 0,1,2,3,4,5,6,7,8,9,
3、单选按钮 - 开或关
4、文本框 - 1到100之间的字母数。
5、确定按钮 - 不接受任何值,仅重定向到下一页
计算所有可能的组合:
Check Box = 2
List Box = 10
Radio Button = 2
Text Box = 100
Total number of test cases = 2*10*2*100
= 4000
Shell
测试用例总数(包括负测试用例)为4000。
测试4000个测试用例,是一个非常漫长而耗时的过程。因此,测试团队的任务是减少测试用例的数量,为此,测试团队认为列表框的值是第一个值为0,另一个值可以是任何数字, 现在十个值转换为2个值。
复选框和单选按钮的值不能减少,因为每个值只有2个值的组合。最后,文本框的值分为三个输入类别:有效整数,无效整数和alpha特殊字符。
现在,我们只有24个测试用例,包括负面测试用例。
2*2*2*3 = 24
现在,任务是为所有对技术组合,每列应具有相同数量的值,并且总值应等于24。
要使用文本框列,将最常见的输入放在第一个有效整数的位置,在第二个位置放置第二个最常见的输入是无效的整数,并在最后一个位置放置最不常见的输入是一个alpha特殊字符。
然后开始填充表格,第一列是一个包含三个值的文本框,下一列是一个包含2个值的列表框,第三列是一个包含2个值的复选框,最后一个列是一个单选按钮有2个值。
文本框 | 列表框 | 复选框 | 单选按钮 |
有效整数 | 0 | 选中 | ON |
有效整数 | 其它 | 未选中 | OFF |
无效整数 | 0 | 选中 | ON |
无效整数 | 其它 | 未选中 | OFF |
AlphaSpecialCharacter | 0 | 选中 | ON |
AlphaSpecialCharacter | 其它 | 未选中 | OFF |
在表中,可以看到传统的软件方法产生的是24个测试用例,而不是4000个案例,而成对测试方法仅在6对测试用例中。
因果测试技术
因果图来自黑盒测试技术,该技术强调了给定结果与影响结果的所有因素之间的关系,它用于编写动态测试用例。
当代码根据用户输入动态运行时,将使用动态测试用例。例如,在使用电子邮件帐户时,在输入有效的电子邮件时,系统会接受它,但是当您输入无效的电子邮件时,它会抛出错误消息。在这种技术中,输入条件被赋予原因,并且这些输入条件的结果具有效果。
1、因果图技术基于一系列需求,用于确定可覆盖软件最大测试区域的最小可能测试用例。
2、因果图测试的主要优点是,它减少了测试执行的时间和成本,该技术旨在减少测试用例的数量,但仍覆盖所有必要的测试用例,覆盖范围最大,以达到所需的应用程序质量。
3、因果图技术通过使用AND,OR和NOT等逻辑运算符将需求规范转换为输入和输出条件之间的逻辑关系。
因果图中使用的符号
与 - E1是一种效应,C1和C2是原因。如果C1和C2都为真,那么效果E1将为真。
或 - 如果C1和C2中的任何原因为真,那么效果E1将为真。
非 - 如果原因C1为假,则效果E1为真。
互斥 - 只有一个原因是真的。
让我们尝试用一些例子来理解这种技术:
情况:
第1列中的字符应为A或B,第2列中的字符应为数字。如果两列都包含适当的值,则进行更新。如果第1列的输入不正确,即既不是A也不是B,则将显示消息X。如果第2列中的输入不正确,即输入不是数字,则将显示消息Y。
1、如果第一列中的字符是“A”或“B”,则必须更新文件,而在第二列中,字符应为数字。
2、如果第一列中的值不正确(字符既不是A也不是B),则会显示消息X。
3、如果第二列中的值不正确(字符不是数字),则将显示消息Y。
现在,将针对上述情况制作因果图:
原因:
C1 - 第1列中的字符是A。
C2 - 第1列中的字符是B。
C3 - 第2列中的字符是数字。
效果:
E1 - 更新(C1或C2)和C3
E2 - 显示信息X(不是C1而不是C2)
E3 - 显示信息Y(非C3)
AND,OR,NOT是逻辑门。
效果E1-更新 - 效果E1存在的逻辑是“(C1或C2)和C3”。对于C1或C2,C1和C2中的任何一个都应该为真。对于逻辑AND C3(第2列中的字符应为数字),C3必须为真。换句话说,对于存在效果E1(更新),任何一个来自C1和C2,但C3必须为真。可以在图中看到原因C1和C2通过OR逻辑连接,效果E1与AND逻辑连接。
效果E2-显示信息X - 效果E2存在的逻辑是“非C1而不是C2”,这意味着C1(第1列中的字符应为A)和C2(第1列中的字符应为B)应为假。换句话说,对于效果E2的存在,第1列中的字符不应该是A或B。可以在图中看到,C1或C2通过NOT逻辑与效果E2连接。
效果E3 - 显示按摩Y-效果E3存在的逻辑是“非C3”,表示原因C3(第2列中的字符是数字)应为假。换句话说,对于效果E3的存在,第2列中的字符不应该是数字。可以在图中看到,C3通过NOT逻辑与效果E3连接。
因此,它是给定情况的因果图。测试人员需要将原因和结果转换为逻辑语句,然后设计因果图。如果函数根据输入(原因)给出输出(效果),则认为它是无缺陷的,如果不这样做,则将其发送给开发团队进行更正。
步骤总结:
1、画出效果和原因的圆圈。
2、从效果开始,然后选择导致此效果的原因。
3、最后绘制相互排斥的原因(通过一种效应和一种原因直接连接的独占原因)。
4、使用逻辑门绘制动态测试用例。
等效分区技术
等效分区是一种软件测试技术,其中输入数据被划分为有效值和无效值的分区,并且所有分区必须表现出相同的行为。如果一个分区的条件为真,则另一个等效分区的条件也必须为真,如果一个分区的条件为假,则另一个等效分区的条件也必须为假。等价划分的原则是,测试用例应设计为至少覆盖每个分区一次,每个等效分区的每个值必须表现出与其他分区相同的行为。
等效分区源自软件的要求和规范,这种方法的优点是,它有助于减少测试时间,因为从无限到有限的测试用例数量较少。它适用于测试过程的各个层面。
例如,假设存在接受特定数量的数字的软件应用程序的功能,该数字不大于和小于该特定数字。例如,将不接受仅包含六位数,少于或多于六位的OTP号,并且应用程序将用户重定向到错误页。
OTP数字 = 6位数字
软件应用程序的函数接受10位移动号码。
电话号码 = 10位数字
在这两个示例中,可以看到存在两个同等有效和无效分区的分区,在应用有效值时,例如第一个示例中的六位OTP和第二个示例中的10位移动数,两个有效分区表现相同 ,即重定向到下一页。
另外两个分区包含无效值,例如:第一个示例中的5个或少于5个,7个或7个以上,以及第二个示例中的9个或少于9个,11个或11个以上的数字,并且在应用这些无效值时, 无效分区的行为相同,即重定向到错误页面。
我们可以在示例中看到,每个示例只有三个测试用例,这也是等效分区的原理,它声明此方法旨在减少测试用例的数量。
黑盒测试用例技术
用例是黑盒测试的功能测试,用于根据系统的使用从系统的开始到结束识别测试用例。通过使用这种技术,测试团队创建了一个测试场景,可以从头到尾根据每个功能的功能运行整个软件。
在这种情况下,有一个测试人员代表用户逐个使用系统的功能。在这种情况下,有一个演员代表用户使用软件系统的功能。
这描述了软件应用程序的逐步功能,可以通过一个例子来理解,假设存在在线资金转移的软件应用程序。转账的各个步骤如下:
1、用户登录以进行实际用户的身份验证。
2、系统检查数据库的ID和密码,以确保它是否是有效用户。
3、如果验证成功,则服务器将用户连接到帐户页面,否则返回登录页面。
4、在帐户页面中,有几个选项,因为审查员正在检查汇款选项; 用户进入汇款选项。
5、在成功完成该步骤之后,用户输入他想要转账的账号。用户还需要输入其他详细信息,如银行名称,金额,IFSC代码,家庭分支等。
在最后一步中,如果存在包括验证ATM卡号和PIN的安全功能,则输入ATM卡号,PIN和其他所需详细信息。
如果系统成功执行了所有步骤,则无需为此功能设计测试用例。通过描述使用的步骤,可以很容易地为软件系统设计测试用例。