实验名称 软件测试(1)---黑盒测试 日期 2023年12月19日
一、实验目的:
掌握等价类划分、边界值分析、因果图法和判定表驱动的黑盒测试技术,并能应用黑盒测试技术设计测试用例,解决实际问题。
(原理概述)
1. 黑盒测试从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。
2. 等价类划分将程序的输入域划分成若干子集,然后从中选取少数具有代表性的数据作为测试用例。
3. 边界值分析法根据输入或输出的边界值设计测试用例。
4. 因果图法和判定表驱动分析和表达多逻辑条件下执行不同操作的测试情况。
二、实验环境:
QTP
- 实验内容:
1.在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对输入条件的要求如下:
① 用户名要求位数为4~16位,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字。
② 密码要求为6~16位之间,只能使用英文字母、数字以及“-”、“_”。
③ 确认密码必须与密码内容相同。
要求如下:
- 分析程序规格说明,写出每个输入条件的有效等价类和无效等价类,列出等价类表。
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
用户名 | 4-16位 | 1 | 少于16位 | 8 |
多于16位 | 9 | |||
首字符为字母 | 2 | 首字符为除字母、数字之外的其他字符 | 10 | |
首字符为数字 | 3 | |||
英文字母、数字以及“-”、“_” | 4 | 组合中除了含英文字母、数字以及“-”、“_”之外的其他字符 | 11 | |
密码 | 6~16位 | 5 | 少于16位 | 12 |
多于16位 | 13 | |||
英文字母、数字以及“-”、“_” | 6 | 组合中除了含英文字母、数字以及“-”、“_”之外的其他字符 | 14 | |
确认密码 | 内存同密码相同 | 7 | 内存同密码相同,但是字母大小写不同 | 15 |
(2) 根据等价类表,应用健壮性测试的方法,基于单缺陷的假设,设计测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号。
用例编号 | 用户名 | 密码 | 确认密码 | 预期输出 | 覆盖等价类号 |
TC1 | user123 | password123 | password123 | success | 1,2,3,4,5,6,7 |
TC2 | aaaa | aaaaaa | aaaaaa | success | 1,2,4,5,6,7 |
TC3 | abcdefghij | abcdef | abcdef | success | 1,3,4,5,6,7 |
TC4 | user123 | pass | 1pass | failure | 5,12 |
TC5 | User123 | password123 | Password123 | failure | 15 |
TC6 | user123 | password@123 | password@123 | failure | 6,14 |
TC7 | user123456 | passW | passW | success | 1,2,4,12,13,14 |
TC8 | user@ | passWord123 | Password123 | failure | 8,10,11 |
TC9 | 123456 | Password123 | Password123 | failure | 9,13 |
TC10 | user123 | passWord | passWord | failure | 13,14 |
- 在上述等价类划分的基础上,通过健壮边界值的分析方法补充测试用例。注:只需列出补充的内容。
输入条件 | 等价类 | 边界值 |
用户名 | 4-16位 | 3,4,5,8,15,16,17 |
密码 | 6-16位 | 5,6,7,8,15,16,17 |
用例编号 | 用户名 | 密码 | 确认密码 | 预期输出 | 覆盖等价类号 |
TC11 | user1234 | passW123 | passW123 | Success | 1, 2, 4, 5, 6, 7 |
TC12 | user12345 | passWord123 | passWord123 | Success | 1, 2, 4, 5, 6, 7 |
TC13 | user123456 | 123456 | 123456 | Success | 1, 3, 4, 5, 6, 7 |
TC14 | user1234567 | pas | pass | Failure | 1, 2, 4, 5, 12 |
TC15 | user12345678 | Password123 | password123 | Failure | 1, 9, 13, 15 |
TC16 | user123456789 | passWord | passWord | Failure | 1, 9, 13, 14 |
TC17 | abc_123 | abcdefg123456 | abcdefg123456 | Success | 1,2,4,5,6,7 |
TC18 | 123_abc | abcdefg123456 | abcdefg123456 | Success | 1,3,4,5,6,7 |
实验结论及问题讨论
实验结论:有效等价类和无效等价类的分析可以帮助测试人员设计全面的测试用例,确保系统在各种输入条件下都能正确处理用户的输入。
问题讨论:
- 规格中并未明确说明特殊字符的具体定义,对于"-"和""的含义可能存在歧义。如果这两个字符有特殊含义,比如作为分隔符或其他用途,那么可能需要进一步明确规范。
- 在密码规则中,没有具体说明是否必须包含英文字母和数字,这也是一个潜在的歧义点,根据具体要求可能需要加以补充说明。
- 对于用户名和密码的最大长度限制,有时可能需要考虑系统的实际存储限制,确保输入长度不超过系统能够处理的最大限制。
2.试用因果图分析法和判定表驱动为三角形问题中的直角三角形设计测试用例。假定三边边长均为正数,满足以下规则:
① 当三边中任意两边边长之和小于第三边,则不为三角形;
② 当其中两边边长的平方和等于第三边的平方,则为直角三角形;
③ 当任意两边边长的平方和都不等于第三边的平方,则为非直角三角形。
要求如下:
- 分析程序的规格说明,列出原因和结果。
原因:
C1—a+b>c
C2—b+c>a
C3—c+a>b
C4—a^2+b^2=c^2
C5—b^2+c^2=a^2
C6—c^2+a^2=b^2
结果:
E1—不为三角形
E2—非直角三角形
E3—直角三角形
中间结果:
N1—符合三角形一般规则
N2—符合直角三角形一般规则
- 找出原因与结果间的因果关系、原因与原因间的约束关系,画出因果图。
- 将因果图转换成判定表。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
条件 | C1—a+b>c | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
C2—b+c>a | - | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
C3—c+a>b | - | - | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
C4—a^2+b^2=c^2 | - | - | - | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
C5—b^2+c^2=a^2 | - | - | - | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
C6—c^2+a^2=b^2 | - | - | - | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | |
动作 | E1—不为三角形 | √ | √ | √ | ||||||||
E2—非直角三角形 | √ | |||||||||||
E3—直角三角形 | √ | √ | √ |
(4)根据判定表,设计测试用例的输入数据和预期输出。
测试用例编号 | a | b | c | 预期输出 | 实际输出 | 测试结果 |
T1 | 1 | 2 | 3 | 不为三角形 | 不为三角形 | Passed |
T2 | 4 | 2 | 2 | 不为三角形 | 不为三角形 | Passed |
T3 | 2 | 4 | 2 | 不为三角形 | 不为三角形 | Passed |
T4 | 2 | 3 | 4 | 非直角三角形 | 非直角三角形 | Passed |
T5 | 3 | 5 | 4 | 直角三角形 | 直角三角形 | Passed |
T6 | 5 | 3 | 4 | 直角三角形 | 直角三角形 | Passed |
T7 | 9 | 12 | 15 | 直角三角形 | 直角三角形 | Passed |
实验结论及问题讨论
实验结论:因果图和判定表提供了清晰的测试指导,涵盖了各种可能的输入条件和对应的输出结果。
测试用例的设计考虑了每个因果关系的情况,确保了对程序规格的全面覆盖。
问题讨论:
- 需要确保程序在处理极端情况(比如边界值、特殊值)时能够正确工作。
- 规格说明中没有明确说明输入的范围,可能需要在测试中考虑一些边界值,例如零和负数边长。
- 需要确保程序对非法输入的处理是合理的,例如输入字符串或其他非数值类型的数据。
- 设计测试用例、使用各种测试方法进行Winows计算器的测试,并对测试结果进行分析
1 测试1(执行简单计算)
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
操作数1 | 数字 | 1 | 非数字 | 4 |
操作数2 | 数字 | 2 | 非数字 | 5 |
运算符 | +、-、*、/ | 3 | 非+、-、*、/ | 6 |
1.2过程
用例描述 | 计算器简单的加,减,乘,除的计算 | ||
前置条件 | 打开Windows 的计算器界面 | ||
测试内容描述 | |||
步骤描述 | 输入数据 | 预期结果 | |
输入操作数1 | 6 | 6 | |
输入运算符 | + | 6+ | |
输入操作数2 | 1 | 6+1 | |
点击等号 | 7 |
2 测试2(执行科学计算)
2.1 输入
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
操作数1 | 数字或常量(A~F) | 1 | 非数字或常量(A~F) | 4 |
操作数2 | 数字或常量(A~F) | 2 | 非数字或常量(A~F) | 5 |
操作符 | 规定的操作符 | 3 | 非规定的操作符 | 6 |
2.2过程
用例描述 | 计算器的科学计算 | |
前置条件 | 打开Windows XP 的计算器界面 | |
测试内容描述 | ||
步骤描述 | 输入数据 | |
1。单击“查看“菜单中的科学型 | 单击“查看“菜单的科学型按钮 | |
2。 如下计算 |
3 实验结果
打开Windows 计算器(开始—所有程序—附件—计算器),如下图所示:
设计测试用例并记录,实验结果如下表所示:
1 测试1(执行简单计算)
测试用例编号 | 输入数据 | 输出 | 覆盖 | ||
第一个数字 | 运算符 | 第二个数字 | |||
1 | 1 | + | 2 | 3 | 1、2、3 |
2 | a | + | 1 | Error | 2、3、4 |
3 | 1 | + | b | Error | 1、3、5 |
4 | 2 | 】 | 2 | Error | 1、2、6 |
5 | a | a | a | Error | 4、5、6 |
2 测试2(执行科学计算)
测试用例编号 | 输入数据 | 输出 | 覆盖 | ||||
十进制数 | 二进制数 | 八进制数 | 十六进制数 | 转换 | |||
1 | 1 | 二进制 | 0001 | 1、2、3 | |||
2 | 0111 | 十进制数 | 7 | 1、2、3 | |||
3 | 16A | 十进制数 | 362 | 1、2、3 | |||
4 | AF | 八进制数 | 257 | 1、2、3 | |||
5 | 456 | 二进制数 | 100101110 | 1、2、3 | |||
6 | H | 十进制数 | Error | 3、4、5 |
实验结论及问题讨论
结论:黑盒测试技术是我们常用的软件测试的方法,在测试中我们需要将等价类划分、边界值分析、因果图法和判定表驱动等联合起来使用。
问题讨论:开始划分等价类的时候忘记边界值的问题,没有将边界值考虑进去,使得测试用例没有尽可能的覆盖。其次在进行边界值分析的时候。
四、心得体会:
通过此次实验,我明白黑盒测试技术是一种测试方法,其中测试人员关注于测试软件的功能、输入和输出,而不考虑内部实现细节。等价类划分、边界值分析、因果图法和判定表驱动是黑盒测试中常用的技术,它们有助于有效地设计测试用例和提高测试覆盖率。
等价类划分是一种有效的测试用例设计方法,通过将输入值分为等价类,减少了测试用例的数量,但保持了对系统各种情况的覆盖。通过这种方法,我能够更有针对性地设计测试用例,确保每个等价类都得到了适当的测试。这有助于提高测试效率和覆盖面。边界值分析是一种深入挖掘输入值的方法,通过关注输入值的边界条件,可以捕捉到潜在的错误。在测试过程中,我发现特别关注输入值的最大值、最小值以及接近边界的值,可以有效地发现一些边界相关的问题。这种方法对于提高测试的质量和发现潜在缺陷非常有效。因果图法帮助我理清了系统中不同元素之间的因果关系。通过绘制因果图,我能够更好地理解系统的逻辑流程,从而更有效地设计测试用例。这种方法有助于发现输入和输出之间的关系,以及潜在的逻辑错误。因果图法在处理复杂系统时特别有用。判定表驱动测试是一种结构化的方法,通过将测试条件列成表格,可以更清晰地组织和管理测试用例。这种方法使得测试用例的设计更加系统化,我能够明确每个测试条件的组合,确保每种情况都得到了覆盖。判定表驱动方法在需要考虑多个条件组合的情况下尤为有用。
总的来说,这些黑盒测试技术在实际测试中发挥了重要的作用。它们帮助我设计了更加全面和高效的测试用例,确保了对系统功能的全面覆盖。组合使用这些技术,我能够更全面地挖掘潜在的问题,提高测试的效率和准确性。