今天和女朋友吵架了,(假设你有女朋友)。
今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐
因为你需要买礼物给你女朋友,但是你不知道她想要啥
决定。痛定思痛
决定分享一下今天的主题——黑盒测试
什么是黑盒子测试?
正如前面刚刚提到的,你需要给你女朋友买礼物,但是你不知道她喜欢什么
所以,你只能
1.你试图给女朋友买一份她喜欢的红色连衣裙(输入)。2.你尝试给她买一份她喜欢的音乐会门票(输入)。
…
以上每一次尝试,你都在观察她的反应(输出)。你并不需要了解礼物的制造过程(算法的内部结构)
就这样,其实以上的动作,就是黑盒测试的测试用例
黑盒测试是一种测试方法,我们不需要了解程序的内部结构或内部功能,只关注程序的输入和输出。类似于你买礼物,你并不需要知道所有礼物的详细信息,你只需要知道你女朋友的信息(输入),然后选择一个她可能会喜欢的礼物(输出)。
在真实的软件测试环境中,黑盒测试有助于发现输入/输出错误,用户界面的错误,以及在数据结构或操作系统的行为中的初始化和终止错误。说白了,黑盒测试就是最经典的手工测试,测试人员不关心软件的内部知识或实现细节,而是专注于根据提供的规范或要求验证功能。
在真实的软件测试环境中,黑盒测试有助于发现输入/输出错误,用户界面的错误,以及在数据结构或操作系统的行为中的初始化和终止错误。说白了,黑盒测试就是最经典的手工测试,测试人员不关心软件的内部知识或实现细节,而是专注于根据提供的规范或要求验证功能。
今天和女朋友吵架了,(假设你有女朋友)
黑盒测试可以通过以下方式进行:
语法驱动测试——这种类型的测试适用于可以用某种语言在语法上表示的系统。例如,语言可以用上下文无关语法来表示。在此,生成测试用例,以便每个语法规则至少使用一次。
等价划分——我们经常看到许多类型的输入的工作原理相似,因此我们可以将它们分组并仅测试每组中的一个输入,而不是单独给出所有输入。这个想法是将系统的输入域划分为几个等价类,使得该类的每个成员的工作方式相似,即,如果一个类中的测试用例导致某些错误,则该类的其他成员也会导致相同的错误。错误。
该技术涉及两个步骤:
等价类的识别 -将任何输入域划分为至少两个集合:有效值和无效值。例如,如果有效范围是 0 到 100,则选择一个有效输入(如 49)和一个无效输入(如 104)。
生成测试用例 - (i) 为每个有效和无效的输入类别分配一个唯一的标识号。(ii) 编写一个涵盖所有有效和无效测试用例的测试用例,考虑到没有两个无效输入会相互掩盖。要计算数字的平方根,等价类将为(a) 有效输入:
完全平方输出的整数将是一个整数。
不是完美平方输出的整个数字将是十进制数。
正小数
负数(整数或小数)。
数字以外的字符,如“a”、“!”、“;”等。
边界值分析——边界是非常容易发生错误的地方。因此,如果针对输入域的边界值设计测试用例,则测试效率会提高,发现错误的概率也会增加。例如 – 如果有效范围是 10 到 100,则除了有效和无效输入之外还测试 10,100。
因果图——该技术在称为原因的逻辑输入与称为结果的相应操作之间建立了一种关系。原因和影响用布尔图表示。遵循以下步骤:
确定输入(原因)和输出(结果)。
绘制因果图。
将图转换为决策表。
将决策表规则转换为测试用例。
例如,在下面的因果图中:
它可以转换成决策表,如下所示:
每一列对应一个规则,该规则将成为测试用例进行测试。所以会有4个测试用例。
基于需求的测试——它包括验证软件系统的 SRS 中给出的需求。
兼容性测试——测试用例结果不仅取决于产品,还取决于提供功能的基础设施。当基础设施参数发生变化时,仍有望正常工作。通常影响软件兼容性的一些参数是:
处理器(Pentium 3、Pentium 4)和多个处理器。
机器的架构和特性(32 位或 64 位)。
后端组件,例如数据库服务器。
操作系统(Windows、Linux 等)。
功能测试:确定系统的软件功能需求。
回归测试:确保新添加的代码与现有代码兼容。换句话说,新的软件更新不会影响软件的功能。这是在系统维护操作和升级之后进行的。
非功能测试:非功能测试也称为 NFT。此测试不是软件的功能测试。它重点关注软件的性能、可用性和可扩展性。
appium
Slenuim
Microsoft Coded UI
Applitools
HP QTP.
发现缺失的功能、不正确的功能和接口错误
发现访问数据库时遇到的错误
发现启动和终止任何功能时发生的错误。
发现软件性能或行为中的错误。
独立测试:黑盒测试由不参与应用程序开发的测试人员执行,这有助于确保测试的公正性。
从用户的角度进行测试:黑盒测试是从最终用户的角度进行的,这有助于确保应用程序满足用户需求并且易于使用。
不了解内部代码:执行黑盒测试的测试人员无法访问应用程序的内部代码,这使他们能够专注于测试应用程序的外部行为和功能。
基于需求的测试:黑盒测试通常基于应用程序的需求,这有助于确保应用程序满足所需的规范。
不同的测试技术:黑盒测试可以使用各种测试技术来执行,例如功能测试、可用性测试、验收测试和回归测试。
易于自动化:使用各种自动化工具可以轻松实现黑盒测试的自动化,这有助于减少总体测试时间和工作量。
可扩展性:黑盒测试可以根据被测试应用程序的大小和复杂性来扩大或缩小。
对应用程序的了解有限:执行黑盒测试的测试人员对所测试的应用程序的了解有限,这有助于确保测试更能代表最终用户将如何与应用程序交互。
测试人员不需要具备更多的功能知识或编程技能来实施黑盒测试。
它对于在较大系统中实施测试非常有效。
测试是从用户或客户的角度执行的。
测试用例很容易重现。
它用于查找功能规范中的歧义和矛盾。
黑盒测试的缺点:
在实施测试过程时有可能重复相同的测试。
如果没有明确的功能规范,测试用例很难实施。
由于测试不同阶段的输入复杂,执行测试用例很困难。
有时,无法检测到测试失败的原因。
应用程序中的某些程序未经测试。
它没有揭示控制结构中的错误。
使用大量输入样本空间可能会非常耗时且耗费大量时间。
微信公众号搜索【一个正经的测试】,专注于AI与软件测试技术和宝藏干货分享,每天准时更新原创技术文章,每月不定期赠送技术书籍,让我们在测试会所在测试社区这个大家庭一起学习交流。喜欢记得星标?我,每天及时获得最新推送,
后台回复“软件测试基础”、“AI与大模型“,简历与面试”等领取测试资源,回复“微信交流群”、“内推群”一起进群吹水摸鱼。
个人微信llwfancymyself添加请注明来意 😃