bat*_*man 6 javascript testing debugging fault
我对软件故障注入的基本了解如下:
人们无法运行所有可能的测试来测试软件.因此,人们可以在代码中进行修改并分析从中产生的错误程度.
但这有用吗?
就像说我们有:
function foo(a, b) {
return a/b;
}
Run Code Online (Sandbox Code Playgroud)
我们改成了
function foo(a, b) {
return Math.floor(a/b);
}
Run Code Online (Sandbox Code Playgroud)
那又怎样呢?
这有什么用呢?
编辑
@Leo,我说我写了一个找到Fibonacci数字的软件.我写的测试看起来像这样:
assert(fib(1) == 1);
assert(fib(0) == 0);
assert(fib(3) == 2);
我声称100%覆盖率,因为所有代码行都在这里执行.
我的客户端运行这些测试,所有测试都通过.所以他认为,"也许测试本身是错误的.让我介绍一下它们的一些变化".
所以他改变其中一个
assert(fib(1) == 5);
而且测试失败了.他能从中得出什么结论?
假设您雇佣了一家公司向您提供一些软件,并且他们承诺以 90% 的覆盖率对其代码进行单元测试,这似乎是一笔很大的交易。
因此,您决定在这些测试中插入错误,因此您期望看到通过测试的覆盖率要低得多,但是,插入错误后,您发现它的覆盖率仍然是 90% :-)
这些测试有多大用处?
例如,这个测试对吗?
@Test
public void testAdd() {
int result = 0;
Claszz c = new Claszz();
int result2 = c.add(-1, 1);
assertEquals(result,0);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |