软件缺陷、软件错误、软件故障学习记录

软件缺陷的概念

缺陷是存在于软件(文档、数据、程序)之中的
那些不希望或不可接受的偏差。缺陷的存在会导致软
件产品在某种程度上不能满足用户的需要。

IEEE729-1983对缺陷有一个标准的定义:从产品
内部看,缺陷是软件产品开发或维护过程中存在的错
误、毛病等各种问题;从产品外部看,缺陷是系统所
需要实现的某种功能的失效或违背。

软件缺陷的外在表现

软件出现了产品说明书指明不会出现的错误
软件未达到产品说明书的功能
软件功能超出产品说明书指明范围
软件未达到产品说明书虽未指出但应达到的目标
软件难以理解、不易使用、运行速度缓慢,最终

PIE模型

PIE = Propagation + Infection + Execution

缺陷Fault:
指静态存在于程序中的错误代码行。
错误Error: .
指执行错误代码后导致的内部错误状态。此时若 无适当措施(容错)加以及时处理,便产生软件失败。
失败Failure:
指错误状态传播到软件外部被外部感知。

内部:缺陷Fault,错误Error
外部:失败Failure

PIE模型告诉我们,就算一个程序中有缺陷,但要 通过动态测试观察到这一缺陷 的外部表现,还需要三 个必要的条件:
1、程序执行路径必须通过错误的代码(Execution-执 行) ;
2、在执行错误代码的时候必须符合某个或者某些特定 条件,从而触发出错误的中间状态( Infection-感染) ;
3、错误的中间状态必须传播到最后输出,使得观测到 输出结果与预期结果不一致(Propagation传播)。

软件缺陷产生的原因有哪些?

软件自身的特点.

1.软件本身的实际需求不清晰,导致设计目标偏离实际需求,从而引起功能或产品特征上的缺陷。
2.系统结构非常复杂,而又无法设计成一个很好的层次结构或组件结构,结果导致意想不到的问题或系统维护、扩充上的困难;即使设计成良好的面向对象的系统,由于对象、类太多,很难完成对各种对象、类相互作用的组合测试,而隐藏着一些参数传递、方法调用、对象状态变化等方面问题。
3.对一些实时应用,需要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调、不一致所带来的问题。
4.系统运行环境的复杂,不仅用户使用的计算机环境千变万化,包括用户的各种操作方式或各种不同的输入数据,容易引起一些特定用户环境下的问题。
5.由于通信端口多、存取和加密手段的矛盾性等,会造成.系统的安全性或适用性等问题。

团队合作

1.系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存在一些困难。
2.不同阶段的开发人员相互理解不一- 致。
3.对于设计或编程.上的一些假定或依赖性,相关人员没有充分沟通。
4.项目组成员技术水平参差不齐,新员工较多,或培训不够等原因也容易引起问题。

设计和实现问题

1.系统结构设计不合理、算法选择不科学,造成系统性能低下。
2.没有考虑系统崩溃后的自我恢复或数据的异地备份、灾难性恢复等问题,从而存在系统安全性、可靠性的隐患。
3.对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某些边界条件,造成容量或边界错误。
4.算法错误:在给定条件下没能给出正确或准确的结果。.
5.语法错误:对于编译性语言程序,编译器可以发现这类问题;但对于解释性语言程序,只能在测试运行时发现。
6.计算和精度问题:计算的结果没有满足所需要的精度。
7接口参数传递不匹配,导致模块集成出现问题。

管理问题

1.缺乏质量文化,不重视质量计划,对质量、资源、任务、成本等的平衡性把握不好,容易挤掉需求分析、评审、测试、等时间,遗留的缺陷会比较多。
2.开发流程不够完善和规范,存在太多的随机性和缺乏严谨的内审或评审机制,容易产生问题。例如对需求变化、设计更改、代码修正等因素缺乏严格规范的管理机制,导致开发过程难以稳步推进。
3.开发周期短,需求分析、设计、编程、测试等各项工作不能完全按照定义好的流程来进行,工作不够充分,结果也就不完整、不准确,错误较多;周期短,还给各类开发人员造成太大的压力,引起一些人为的错误。
4.文档不完善,风险估计不足等。

问题:计算机病毒属不属于软件缺陷,为什么?

IEEE729-1983对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。从软件测试观点出发,软件缺陷有以下五大类:
(1)规格说明书缺陷
(2)功能缺陷
(3)测试缺陷
(4)测试标准引起的缺陷
(5)系统缺陷

计算机病毒是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码,计算机病毒是对存储介质及传输过程中的攻击,与软件无关。

问题:

下列那种不属于软件缺陷:

A.银行POS机在用户取款时翻倍吐钱,取100,吐200
B.计算机病毒发作,屏幕出现熊猫烧香画面
C.网上售票软件反应迟钝,用户难以正常买票
D.某软件在进行修改升级之后,原来正常的功能现在出错了

答案:B

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值