测试人员在使用组合测试时应该执行的第一步是什么?

软件测试 测试设计
2022-02-06 20:19:43

假设,假设我正在测试本网站的“搜索和比较航班”功能*,并且我想应用组合测试技术。

测试人员应该从哪里开始这个测试过程?他们的第一步应该是什么?

*我并没有真正测试这个网站,这只是作为这个假设问题的一个例子。

1个回答

组合测试是一种测试具有许多输入的操作的方法。对于那个网站,我将从识别操作开始。有时会有系统规范,但通常没有,而且无论如何规范不可能在每个细节上都与系统匹配。我建议阅读规范,然后仔细研究每个功能。

识别操作

这是一个繁忙的网站。我注意到的第一件事是你可以搜索东西。如果您填写一些字段并单击一个按钮,该站点将响应一些搜索结果。

在页面的搜索部分发生了一些较小的操作。例如,在航班搜索页面上,如果您在 From: to To: 框中输入一个位置,该站点会尝试使该位置更具体。例如,“奥斯汀”变成“美国奥斯汀”。

我注意到该网站的下一件事是在搜索框的下方和右侧有几个广告。广告大小不一。有些是静态的,有些是滚动的。有些在他们下面有额外的文字。

识别输入

确定了操作之后,您接下来要确定输入。例如,字段值是搜索操作的输入,但也有其他输入:有一个要搜索的项目数据库(例如航班、酒店房间或租车)。搜索操作还可能使用对用户而言不易察觉的输入:基于站点所有者的业务关系而偏向某些供应商,或基于您之前与站点的历史记录的偏见。

同样,To: 和 From: 框似乎有一个地名数据库。有些地名可能是独一无二的(我怀疑美国只有一个卡拉马祖,但有多个地方叫奥斯汀)。

我刷新了几次页面,从来没有说广告改变了位置,但这并不意味着广告布局是静态的:例如,每个广告的内容和位置可能会因一天中的时间或查看者的地理位置而异。

分析输入

在确定了输入之后,您接下来要根据它们的范围和相互依赖性来分析它们。输入的范围是输入影响的一组操作。一些输入特定于一个操作(搜索框中的字段值),而其他输入可能会影响多个操作(例如用户在站点的先前历史记录或用户的地理位置)。有时将大范围的输入称为环境是很方便的。对于网站,环境可能包括浏览器、语言设置、时区和屏幕分辨率等因素。

一个输入的相互依赖关系是它与其他输入的关系,即输入是否与其他输入交互。有时一个输入的允许值取决于另一个输入。例如,在航班页面上,出发日期需要在返回日期之前,而在假期页面上,国家和城市输入取决于地区输入。

一种更重要的相互依赖感是你自己的信念,即系统的行为取决于两个输入的交互。如果您确定两个输入彼此无关,请将其写下来。相反,如果您确定系统对于某些变量的不同组合表现不同,也请写下来。该信息将帮助您选择最终测试的输入元组。