软件测试入门—你能分清fault,error和failure吗?

---恢复内容开始---

一.基本定义和抽象理解

1.1定义:

fault:意即故障、缺陷,是软件中静态的缺陷, 我们可以把它看做软件不能正常运行的根本原因,当然,为了更好的理解,这就是软件“生病”的病根,是导致其出现错误或异常的根本原因,这就说明我们设计软件过程中出现了错误。

failure:意即失败,关于某个软件,我们有预期行为的描述和要求,但是我们使用时却可能出现我们可见的,也就是外部的不正确的反应和行为。还是为了方便,我们可以把它看做软件“生病”的一系列症状和表现,通常是异常结果直接可见可知的。

error:意即错误,通常我们编译某部分代码是都会出现warnings和errors,出现这个情况时,就表明我们的病根fault导致了错误的内部状态,而error就是其表现,当然这个和失败是要区分的,当软件“生病”时,错误是内部的异常情况,它不像失败那样直接导致软件不能正常运行。

二.通过例子具体理解

2.1教材示例

2.2 error的自我经历体验

在过去的编程项目和作业中,作为软件菜鸟的我显然出现了很多错误,有大有小,有自己印象深刻的也有自己一拍大腿惊叫一声改正后就忘记了的。此处印象深刻的也是一个小错误,当然自从那次之后就基本避免了这个问题。

 1 输入20名学生一门课的考试成绩,统计各分数段的人数。
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {  int num=20;
 6    int n;
 7    int a1=0,a2=0,a3=0,a4=0,a5=0;
 8    printf("请输入成绩1~20:\n");
 9    scanf("%d",&n);
10    while(num)
11    {
12    if(1<=n&&n<60)
13   {
14      a1+=1;
15   }
16   else if(60<=n&&n<70)
17   {
18      a2+=1;
19   }
20   else if(70<=n&&n<80)
21   {
22      a3+=1;
23   }
24   else if(80<=n&&n<90)
25   {
26      a4+=1;
27   }
28   else
29   {
30      a5=+1;
31   }
32   scanf("%d",&n);
33   num--;
34    }
35    printf("1~59分数段的人数为:%d\n",a1);
36    printf("60~69分数段的人数为:%d\n",a2);
37    printf("70~79分数段的人数为:%d\n",a3);
38    printf("80~89分数段的人数为:%d\n",a4);
39    printf("90~100分数段的人数为:%d\n",a5);
40    return 0;
41 }

这是我之后正确的一段代码,之前的代码就是前面4个if,最后一个else,单纯地认为前面都没匹配的话最后只需一个else就可以了(偷懒不用再用if判断),结果导致了计算结果的严重错误,使得90~100这一分数段的人数特别多,具体数据已经不记得了。之所以印象深刻,就在于自认为已经理解了if...else的用法却一做题就出现严重错误,当然也和自己偷懒的心理有关,这些毛病在软工学生身上是万万不能存留的。当然这个错误的发现就是通过结果的不正确再进行一步一步代码和逻辑的推导达到的,也在于其本身结构的简单。此处错误就在于对if和else结构理解后还未能根据逻辑正确使用,导致了逻辑错误,使得最后一个if和else配对,其中一个对应的语句一定执行。当然,fault肯定就是没有if...else if结构啦,而failure就是计算结果和正确结果不一致。自此之后,凡是涉及到很多条件判断的语句和逻辑结构,自己都会特别小心。

三.个人总结

软件测试是软工学生必须掌握的基础技能,当然测试也是本身很耗时和耗钱的。软件的错误几乎难以避免,尤其是大型软件或者服务,更需要我们在整个软工过程中谨慎科学合理,在测试时用各种方法技巧和工具实现do right thing 和do thing right的结合。这也是本人的第一篇博客,希望每天都能不断学习进步,同时不断总结并给大家分享,共同提高。

---恢复内容结束---

原文地址:https://www.cnblogs.com/yuanmaoting/p/8536992.html

时间: 2024-11-13 03:38:42

软件测试入门—你能分清fault,error和failure吗?的相关文章

fault error and failure

程序一 错误:for循环中i>0导致index 0 取不到 Test : x=null不执行这个fault Test : x=[2,3,5];  y=3     执行fault,不会出现error Test : x=[0,3,5];  y=2     导致error但是并不会影响最后结果,不是个failure 程序二 错误: 这个程序找的是firstZero而不是lastZero Test : x=null不执行这个fault Test :  x=[0]执行了fault,但是不是error Te

Fault,Error与Failure的联系与区别

Fault: 可能导致程序失败的因素,可理解成具体的代码. Error: 在程序运行过程中与设计时的预先设想不一致的情况,如变量值错误,错误的运行路径等. Failure: 当一程序不能完成所要求的功能时,即失败. 函数findLast: Identify the fault. 在边界判断时出错 在i=0 时退出循环,没有检验第一个int值. for循环中的条件判断应为:(int i=x.length-1; i > =0; i--). 2. If possible, identify a tes

结对编程——关于Fault、Error、Failure程序设计

一.问题描述: 构造程序,分别是: •不能触发Fault •触发Fault,但是不能触发Error •触发Error,但是不能产生Failure 二.Fault.Error.Failure区别 Fault:可能导致系统或功能失效的异常条件,可译为“故障”. Error:计算.观察或测量值或条件,与真实.规定或理论上正确的值或条件之间的差异,译为“错误”.Error是能够导致系统出现Failure的系统内部状态. Failure:当一个系统不能执行所要求的功能时,即为Failure,可译为“失效”

结对编程之Fault、Error、Failure

1.结对说明 结对对象:刘世麟  博客地址:http://www.cnblogs.com/liushilin/ 双方贡献:1:1 2.题目要求 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error. •触发Error,但是不能产生Failure. 3.题目概述 提示用户输入两个值,两个值必须在[0,100],若不满足条件各自有自己的提示,若两个值都小于5,则输出all input less than 5,程序退出.否则根据输入的值判断使用加法还是减法,若输入的第一

软件测试过程中Fault,Error,Failure的区别

Fault是程序设计上的错误.比如检索数列中最后一个指定元素的位置,应该倒序搜索.如果正序搜索即为一个fault. Error是程序运行过程中状态的错误.例如遍历数列时for(int i = 1;i < array.length;i++)这样写第一次循环便从i=1开始.实际应该从i=0开始.这就是一个error. Failure是程序运行结束后所获得的结果与预期不相同.即为Failure. 下面是练习题: 以下为练习题的答案:

软件测试入门要知道哪些?

软件测试入门要知道哪些?首先,我们要知道:对于软件测试人员来说,编码是最基础的技能,无论哪一门语言,至少要会一种,如果能再具备一定的产品开发经验那就更好了.但请注意,过犹不及,不要单纯拿编码能力的高低来衡量测试人员水平的高低,测试人员最核心的技能仍是在测试设计上,不要本末倒置.同样,像数据库.操作系统.网络协议.建模等等都属于基础技能的范畴.可能测试人员在这些技能的掌握程度上没有专业人士强,没关系,因为这些技能最终是为测试专有技能所服务的,如此而已.当然,如果个人有兴趣深入研究那是最好.笔者记得

错误提示:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt 的解决方法

最近在win7 系统下,打算利用 cmake 生成项目文件,然后用vs2010进行编译.但是在cmake的时候出现错误弹窗: 并出现错误信息:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt 通过网上查找相关资料可知,问题出在cvtres.exe 这个文件上.LNK通过调用cvtres.exe来进行文件向coff格式转换. 网上讲通过搜索cvtres.exe 发现电脑中存在

fatal error LINK1123:failure during conversion to COFF:file invalid or corrupt

Visual Studio 2010编译时出现:fatal error LINK1123:failure during conversion to COFF:file invalid or corrupt 尝试了更改Enable Incremental Linking(启动增量链接:Project(项目)->Properties(属性)->Linker(连接器)->Gerneral(常规)->Enable Incremental Linking(启动增量链接),把 Yes (/IN

关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案

重装了VS2010,在编译程序时出现了"error: LNK1123: failure during conversion to COFF: file invalid or corrupt "这个错误,意思是由于COFF标识转换失败.而在连接中完成此项工作的是cvtres.exe.这个错误的原因是存在多个版本的cvtres.exe. 系统目录:C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe C:\Windows\Micr