单元测试 – 良好的边界测试

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

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

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

这些够了吗?是否有结构化流程如何测试这种边界测试? (任何好文章?)我还应该测试“1 1”吗?
>如果问题变为“接受1到100之间的任何整数”,那么这一系列的测试是否足够?输入系列是否需要与测试小数不同?

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

最佳答案 对于#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”就足以应对错误情况.或者如果你想要舍入小数,你也可以测试它.

点赞