黑盒测试方法大对决

简介:
软件测试的方法有很多种, 其中黑盒测试方法被使用最多, 主要的原因是容易上手, 进入门坎不高. 所以很多测试人员会使用这种方法. 可是很多人对于何时该使用却不是很清楚, 因此让我们来做个简单的比较吧
  1. ECT (Equivalence Class Testing)
  a. 说明: 将受测软件的输入数据, 切成好几个分割(partitions), 对于每个分割, 将会有测试个案去涵盖它
  b. 适用时机
  比较小的功能, 或是单一 API. 或是画面某个 input control
  c. partition 的选择, 是决定你测得好不好的重要关键
  d. ECT and BVT 这两种方法最多人使用, 可是不见得是最系统化的方法来开个案.
  2. BVT (Boundary Values Testing)
  a. 说明: 因为大部分的错误都发生在极值, 所以 BVT  的测试是着重于找出代表性的边界值, 来验证系统的正确性
  b. 适用时机
  比较小的功能, 或是单一 API. 或是画面某个 input control
  c. 这个方法最容易开出测试个案, 因为只要知道输入的值域范围, 马上就可以列出测试个案
  3. UCT (User Case Testing)
  a. 说明: Use cases 是一种从使用者角度, 来描述系统行为的一种方法. 它由一连串由系统执行的行为所组成, 这些行为可能会对用户产生一些价值. 所以 UCT 是测试 use case 中所有 scenario 的组合.
  b. 适用时机
  使用者在进行验收测试.
  c. 开出来的测试个案对使用者最有意义
  4. Pairwise Testing (PT)
  a. 说明: 当你有很多测试环境的组合, 例如 3 个 browser, 5 个 OS, 4 个数据库, 你将会有很多环境组合要测试. PT 会利用每两两组合的方式, 而不是去测试所有的组合, 来降低索要测试的组合量
  b. 适用时机
  要降低测试的组合可以使用. 不过建议自己先列出最重要, 或是风险最高的组合. 之后再利用 PT 来补不足的之处.
 5. STD (State Transition Testing)
  a. 说明: 利用一些涵盖条件(涵盖所有 state, event 或是 transition), 展开 state transition diagram 的 scenario, 让我们可以最小集合, 测试大部份的状况
  b. 适用时机
  设计时间时用来验证是否所有 event 都考虑周密, 或者要对模块做自动化测试适合使用
  6. DTT (Decision Table Testing)
  a. 说明: 列出程序所思考的逻辑条件, 排列出所有可能情况, 并且确认其所产生的输出或是对应的系统行为是否正确
  b. 适用时机
  适合复杂的功能, 或者是比较 high level 的功能
  c. 开出来的测试个案对使用者还算有意义, 但是对于开发团队, 可以用来厘清需求的范围和正确性
  d. 通常在列逻辑条件时, 可以搭配 ECT 来使用, 让你的条件更加丰富.


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
8天前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
21 1
|
25天前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
45 1
|
7天前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
2月前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
77 6
|
1天前
|
存储 JavaScript 测试技术
Playwright 在 GitHub actions 在 GitHub 上运行测试的方法
Playwright 测试可以在任何 CI 提供商上运行。本指南介绍了一种使用 GitHub actions 在 GitHub 上运行测试的方法
5 1
|
18天前
|
测试技术 Python
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
本文介绍了使用Python的unittest框架来加载测试用例的四种方法,包括通过测试用例类、模块、路径和逐条加载测试用例。
43 0
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
|
18天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
40 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
22天前
|
测试技术 UED
软件测试中的探索性测试:一种高效且灵活的测试方法
本文将深入探讨探索性测试的核心概念、优势及其在实际项目中的应用。我们将从探索性测试的基本定义入手,逐步解析其在不同场景下的具体实施方法和最佳实践。通过详细的案例分析和方法对比,帮助读者全面了解这种既高效又灵活的软件测试技术。
|
21天前
|
安全 测试技术 API
一图看懂API测试9种方法
一图看懂API测试九种方法:冒烟测试验证基本功能,功能测试确保符合规格,集成测试检查组件协同工作,回归测试防止新变更引入问题,负载测试评估性能稳定性,压力测试挑战极限负载,安全测试发现并修复漏洞,用户界面测试确保UI与API协调,模糊测试提升异常数据处理鲁棒性。
|
23天前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法