良好的边境测试

时间:2011-06-21 15:19:19

标签: unit-testing testing

  1. 如果让我说我创建的输入文本只能接受1到100之间的任何小数,我该如何测试呢?

    恕我直言,我将在这个流程中进行测试:

    “0”,“1”,“50”,“100”,“101”,“0.9”,“100.1”,“A”

    这些足够吗?是否有结构化流程如何测试这种边界测试? (任何好文章?)我还应该测试“1 + 1”吗?

  2. 如果问题改为“接受1到100之间的任何整数”,那么这一系列的测试是否足够?输入系列是否需要与测试小数不同?

    “0”,“1”,“50”,“50.5”“100”,“101”,“0.9”,“100.1”,“A”

2 个答案:

答案 0 :(得分:2)

对于#1,你走在正确的轨道上,我想你甚至可能有太多同等级的案例。通常情况下,如果你有一个下限L和一个上界U,那么测试L和U是有效的并且L - e和L + e是无效的(其中e是最小的或相当小的增量,以便离开边界)。如果你想为理智添加一个额外的值,那么测试L和U之间的东西也是有效的。有些人会说选择L和U之间的随机值也可以,但我更喜欢我的测试是确定性的。

所以在上面的例子中,L是1,U是100.因为它是一个十进制值,e的值很棘手,因为e理论上可以是非常小的。在那里,根据您的客户场景选择合理的东西是件好事。例如,如果它是一个美元金额,选择0.01将是一个不错的选择。在这种情况下,这将给我们留下“1”,“100”,“0.99”和“100.01”。

由于您的文本框也可以接受字母,因此在此处测试非数字数据也是有意义的,就像上面用“A”所做的那样。减轻测试负担的另一种方法是将您的客户体验设计为仅允许有效值。在整数的情况下,一种方法是使用只有1到100之间的整数值的组合框。

对于#2,场景确实有所改变。 L是1,U是100,但是e现在是1,因为唯一有效的值是整数值。如果要测试小数值抛出错误,那就是不同类型的情况,并且与边界无关。所以“50.5”和“A”就足以应对错误情况。或者如果你想要舍入小数,你也可以测试它。

答案 1 :(得分:0)

边界测试(或有时称为边界值分析)的危险在于我们倾向于关注清晰明显的边界。但是可能存在许多未知且难以预测的界限。如果我们在明确和明显的界限中相信太多,那么我们就有可能在隐藏边界附近失去失败。

因此,虽然重点关注已知边界很重要,但尝试不同时间间隔的测试样本并没有坏处。

所以我会说你的测试可能会有点轻松。

你有的地方: “0”,“1”,“50”,“100”,“101”,“0.9”,“100.1”,“A”

我更倾向于在两者之间添加一些: “0”,“1”,“10”,“20”,“30”,“40”,“50”,“60”,“70”,“80”,“90”,“100”,“101 “,”0.9“,”100.1“,”A“

您可能还想考虑添加一些极端情况,例如非常大的数字或几百万个字符。

您始终需要考虑成本与价值。如果这些测试是自动化的,并且在输入数据中添加更多数据点会增加测试运行的时间,那么成本非常低。但如果这些测试是手动的,那么您可以决定减少测试集。但是,不要只是坚持边界......