gpt4 book ai didi

javascript - 软件故障注入(inject)的真正用途是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 05:19:07 24 4
gpt4 key购买 nike

我对软件故障注入(inject)的基本理解是这样的:

无法运行所有可能的测试来测试软件。因此,人们求助于对代码进行修改并分析由此产生的错误程度。

但这有什么用呢?

比如说我们有:

function foo(a, b) {
return a/b;
}

我们把它改成了

function foo(a, b) {
return Math.floor(a/b);
}

那又怎样呢?

这到底有什么用?

编辑

@狮子座,假设我写了一个软件来查找斐波那契数列。我写的测试看起来像这样:断言(fib(1) == 1);

assert(fib(0) == 0);

assert(fib(3) == 2);

我声称 100% 的覆盖率,因为所有代码行都在这里执行。

我的客户运行这些测试并且全部通过。所以他想,“也许测试本身是错误的。让我介绍一下它们的一些变化”。

所以他把其中一个改成了断言(fib(1) == 5);

测试失败。他能从中得出什么结论?

最佳答案

假设您聘请了一家公司来向您交付一些软件,他们 promise 会以 90% 的覆盖率对他们的代码进行单元测试,这看起来很划算。

所以你决定在这些测试中插入错误,所以你希望看到通过测试的覆盖率要低得多,但是,在插入错误之后,你发现它仍然有 90% 的覆盖率:-)

这些测试有多大用处?

比如这个测试对不对?

@Test
public void testAdd() {
int result = 0;
Claszz c = new Claszz();
int result2 = c.add(-1, 1);
assertEquals(result,0);
}

关于javascript - 软件故障注入(inject)的真正用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21364626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com