文本
成对或全对测试技术的基础
全对测试(也称为成对测试)是一种软件质量保证技术,涉及预期输入和输出值的组合。 通过这种方法,软件测试人员的评估基于测试功能所涉及的所有可能参数的成对设置。 要使用成对测试技术,测试人员必须从每种可能的值组合列表中确定正确的输入选择。 全对是一种黑盒测试方法,它遵循以下假设:大多数缺陷出现在两个值之间,而不管该值代表什么。 测试人员对软件进行分析,以推导要测试的值对的范围,以显示出最高百分比的缺陷而不会浪费时间。
考虑一个涉及农产品交付应用的成对测试示例:购物者填写一系列表格以输入人口统计信息,农产品偏好和交货时间表。 在每个这些表单页面中,客户将数据输入到各种基于文本或数字的字段中。 如果测试人员通过为这些字段输入所有可能的值组合来验证这些表格可以正常工作,则将花费不切实际的时间-比分配的测试时间长得多。
测试人员使用全对技术创建值对。 依靠他们对应用程序的了解,测试人员检查几个特征是否按预期工作,如果不起作用,则指出出现了什么缺陷。
例如,农产品交付公司要求:
用户在名字和姓氏字段中输入数据;
用户输入信用卡号; 和
用户遵守产品的一系列预期订单值。 大于期望值(599或999)的数字或数字太低,负或非整数值(09、0.9或-1)都不是应用程序中的选项。
在软件质量保证策略中,有成对测试的好处和挑战。
成对测试技术的好处
全对测试极大地减少了测试时间,从而控制了测试成本。 质量检查小组仅检查输入/输出值的一个子集(不是全部),以生成有效的测试覆盖率。 当有太多可能的配置选项和组合需要运行时,该技术就非常有用。
成对测试工具使此任务更加容易。 存在许多用于生成成对值集的开源和免费工具。 测试人员必须告知工具有关这些值集有效的应用程序功能。
无论有没有成对的测试工具,对于QA专业人员来说,分析软件并了解其功能以创建最有效的价值集至关重要。
成对测试挑战
成对测试在测试套件中并非难事。 当心这些因素可能会限制全对测试的有效性:
被测软件中变量之间未知的相互依存关系;
不现实的价值组合,或不反映最终用户的价值组合;
测试人员看不到的缺陷,例如不能反映在UI视图中但会在日志或其他跟踪器中触发错误消息的缺陷; 和
在后端处理引擎或系统中未发现缺陷的测试。
与任何软件测试技术一样,成对测试要求质量检查工程师彻底分析应用程序的给定组件如何管理输入并创建输出。 测试人员的分析技能和应用程序功能的知识对于确定哪种值或值组合最能测试应用程序至关重要。
成对:独立或组合测试方法?
是否可以将全对作为唯一的软件测试方法,取决于应用程序。 全对方法适用于测试配置设置或表单输入应用程序组件。
即使在理想的用例中,我也不建议将成对测试技术作为唯一的质量检查方法。 没有单独的测试方法能够很好地发挥作用。 使用多种测试方法来找出最多的缺陷。 这可能意味着手动或自动测试,或者测试执行样式的混合。
测试是逻辑和创造力的一部分。 如果测试人员没有广泛的应用程序技能和知识,他们可能不会编写发现缺陷的测试方案。 改变测试方法以获得最大的商业价值。
测试套件中的所有对
要合并所有测试用例,请从一个由一个团队或一组QA测试人员组成的试点计划开始。 组建一个具有多种技能的团队,其中包括一些了解应用程序功能的成员。 该小组应研究可生成所有配对分组的可用工具。 给测试团队一些时间来熟悉工具。 有些团队最终更喜欢自己创建全对值集。
接下来,考虑成对测试技术在软件开发生命周期中适合的位置。 每次功能更改时,该功能的新版本都会使测试值集无效。 评估在功能测试或回归测试期间是否应该进行成对测试。 如果无法同时执行成对测试,请着重于回归测试,此时应用程序功能应该稳定。
确定成对测试适合整体测试套件的位置。 作为测试人员,我更喜欢同时进行全对测试和边界值分析,然后评估客户或系统工作流程。 首先测试每个分组的缺陷,然后将它们组合在一起,以确保成品能够按预期运行。 一旦试验团队完成其所有对测试项目,就将该技术介绍给其他质量检查团队。 在整个组织中整合方法之后,请在六个月后重新检查所有工作流程的工作方式,并根据需要更改流程以提高效率。 如果成对测试没有发现缺陷,请考虑将其切换出另一个流程,或者增加值集的大小。
author
石头 磊哥 seven 随便叫
company
thoughtworks(离职了。。。。)
大家好,本人不才,目前依旧混迹于thoughtworks,做着一名看起来像全栈的QA,兴趣爱好前端,目前是thoughtworks 西安QA社区的leader,如果有兴趣分享话题,或者想加入tw,可以找我
roles
QA(营生) dev(front-end dev 兴趣爱好)
联系方式
如果想转载或者高薪挖我 请直接联系我 哈哈
wechat:
qileiwangnan
email:
qileilove@gmail.com