软件测试失效案例分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 缺陷分析
– 地面计算机的程序:
If not 雷达能够与火箭联系 then
不要纠正火箭的飞行路线
– 但由于错误,语句中的not被丢掉了。
首届军工产品软件
中航一集团软件可靠
测试技术专题研讨
性管理与测评中心
代码类缺陷(三)
• 纠正措施
– 显而易见,当然是直接修改了代码。 – NASA对这个缺陷的调查表明:
中航一集团软件可靠 性管理与测评中心
设计类缺陷(三)
• 纠正措施
– 在设计的循环结构中加入了延时退出的判断 条件,使得出现A/D接口故障后,延时一段 时间,循环自动退出,并且进入错误处理程 序。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
设计类缺陷(四)
• 失效表现
– 多个航路点位置重叠时,飞机直线飞行,失 去控制。
冗余等容错设计。
首届军工产品软件
中航一集团软件可靠
测试技术专题研讨
性管理与测评中心
需求类缺陷(四)
• 失效表现
– 飞行过程中,设备出现掉电情况,在飞行结 束后,发现存储在非易失存储器中的故障信 息丢失了。
• 缺陷分析
– 需求中制定非易失存储器的自检测机制中, 没有考虑对非易失特性的测试。
首届军工产品软件 测试技术专题研讨
首届军工产就品软以件机器零代中替航。一集团软件可靠
• 纠正措施
– 软件人员将需求中飞机经纬度转换为平面坐 标的公式进行了修改,加入了对经度等于和 大于180度以及小于等于-180度情况的特殊 处理,修改了缺陷。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
需求类缺陷(八)
• 失效表现
– 某飞行控制软件在同时遇到多个交联设备出 现不同故障的情况下,软件对故障的处理与 预期不一致。
应用领域 软件需求 软件设计 软件代码
产生缺陷
需求分析者对应用 领域的认识不充分
需求类 缺陷
产生缺陷
设计人员对需求 的认识不充分
设计类 缺陷
产生缺陷
编码人员对设计 的认识不充分
编码类 缺陷
系统测试
...
代码审查
软件失效机理的探讨
• 如图所示软件开发的不同阶段由于执行 者对上层设计的认识不充分而导致本阶 段的软件实现与上一层的设计意图不相 符,即产生了缺陷。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
关注 软件 缺陷
软件 缺陷 …
软件 缺陷 关注
软件开发者
使用
缺陷知识库是建立软件 的缺陷属性与其他属性 之间关系的桥梁
缺陷知识库
使用
软件测试者
提纲
研究软件失效的目的 软件失效机理的探讨 软件测试典型失效 有效的软件测试
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
设计类缺陷(八)
• 失效表现
– 任务机软件为导弹提供任务数据,由于数据 不够精确,导致导弹的命中率很低。
• 缺陷分析
– 在任务机软件的设计中,任务数据的计算按 照地理平面坐标进行,与实际的地球坐标相 差较大。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
代码类缺陷(七)
• 纠正措施
– 这个问题的解决有两种方法:
– 当8087产生下溢时引发一个8086中断,在中 断程序中进行下溢处理,这种方法在没有下 溢出现时,并不增加时间开销,但要改变硬 件连接;
– 对计算的中间结果进行判别,当小于10-8时,
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
代码类缺陷(六)
• 失效表现
– 计算机采用8086+8087方式,计算采用短实数格式,偶 尔发生计算失败。
• 缺陷分析
– 由于输入量中有接近零的情况,因此计算的个别中间结 果有可能小于短实数格式的最小值,另外由于8087是 80位二进制运算,但对它设置为短实数格式,并且在计 算过程中有小于短实数格式的最小值的数字量出现时, 8087就发生下溢,因为程序没有对8087下益的处理, 所以8087向8086送回一个未规格化的结果。
• 软件的代码类缺陷主要产生于:
– 编程人员的疏漏; – 对软件设计理解的不充分; – 对程序运行环境的了解不充分。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
代码类缺陷(二)
• 失效表现
– 1962年7月22日,携带着飞向金星的无人驾 驶飞船水手1号的火箭在升空290秒之后毁 掉了。
设计类缺陷(九)
• 纠正措施
– 重新设计了软件中的任务数据计算方式,将 平面坐标改为使用球面坐标,事实证明极大 的提高了任务数据的精确性,导弹的打靶准 确度得到改善。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
代码类缺陷(一)
• 代码缺陷是在软件设计到软件代码的转 换过程中由编程者产生于代码中的隐患。
• 缺陷分析
– 航线中的航点保存在一个长度为150的数组中,删除航 点的操作是每次删除一个点,并且将后面的元素往前移 一个,缺陷产生于对数组中最后一个航点的删除操作中。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
代码类缺陷(五)
• 纠正措施
– 在删除航点的代码中,增加了对是否为数组 中最后一个航点的判断,如果为最后一个航 点则不再将后面的数据向前移动,同时删除 其他航点时,后面的航点也仅限于数组内的 数据向前移。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
提纲
研究软件失效的目的 软件失效机理的探讨 软件测试典型失效 有效的软件测试
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
软件测试典型失效
• 从以下两个方面描述一个失效或缺陷:
– 失效表现 — 软件动态运行中所表现出来的 功能或性能方面的欠缺;
• 每一个具体软件所处理的应用域问题各
不相同,软件表现个体特征。
首届军工产品软件
中航一集团软件可靠
测试技术专题研讨
性管理与测评中心
研究软件失效的目的
• 缺陷分析需要总结各种各样的缺陷,找到 一种对“群体行为”的分析;
• 缺陷研究的结果应该“知识化”,并建立 某种形式的缺陷知识库;
• 将群体的知识固化下来,有利于指导个体 的行为。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
需求类缺陷(三)
• 纠正措施
– 增强器件的抗单粒子翻转能力;
– 对重要和关键的程序段,增加程序复执和指 令复执等容错设计;
– 对主要的控制参数和状态标志等,采用先三
取二多数表决后使用,并增加截取有效位数、
数据平滑滤波、域值分析、微量修正和数据
– 其次,在程序设计的待飞距计算公式中,增 加了对分母为零情况的判断和相应处理。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
设计类缺陷(六)
• 失效表现
– 设备掉电重启后,飞机不再按照掉电前的飞 行状态进行飞行。
• 缺陷分析
– 软件设计中没有将飞机的重要飞行状态信息 保存在非易失存储器中。
软件测试失效案例分析
报告提纲
研究软件失效的目的 软件失效的产生机理 软件测试典型失效 有效的软件测试
首届军工产品软件 测试技术专题研讨
研究软件失效的目的
• 软件质量是软件的生命; • 软件失效是影响软件质量的关键; • 软件缺陷是导致软件失效的根本原因; • 软件缺陷是软件系统的根本属性之一; • 软件缺陷归根结底由人为因素造成。
• 失效分析
– 需求中未对可能出现的故障进行等级划分, 且每种故障的处理也不尽相同,于是在故障 组合发生的情况下,软件没有按照预期的故 障处理情况进行处理。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
需求类缺陷(九)
• 纠正措施
– 需求制定者根据实际使用情况,对软件需要 处理的各种故障按照优先级进行了排序,并 且重新规定了各级故障的处理方式,使得多 个故障同时发生的情况下优先处理高级别故 障。
中航一集团软件可靠 性管理与测评中心
软件失效机理的探讨
• 缺陷产生的原因可以归结为软件生产者 的的错误所致;
• 缺陷的产生出现在软件生产过程中的各 个环节,不同的生产者由于各自知识的 有限而制造出来;
• 软件的缺陷具有相对性和演化性。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
中航一集团软件可靠
测试技术专题研讨
性管理与测评中心
设计类缺陷(二)
• 失效表现
– 飞行前自检测过程中出现A/D接口故障,导 致软件死机,不再响应外部命令。
• 缺陷分析
– 软件设计中使用无限循环结构作为等待接口 信号的机制,一旦A/D接口出现故障无法发 出信号,软件陷入死循环。
首届军工产品软件 测试技术专题研讨
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
设计类缺陷(一)
• 设计缺陷是在软件需求到软件设计的转 换过程中由设计者产生于软件设计之中 的隐患。
• 软件的设计类缺陷主要产生于:
– 设计者对需求的理解不充分;
– 设计者对程序语言的理解不充分;
– 设计者疏忽导致的设计纰漏。
首届军工产品软件
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
设计类缺陷(七)
• 纠正措施
– 设计人员根据需求重新对程序变量进行了分 析,找出了其中影响飞行姿态和航迹的关键 变量,在每个程序运行周期内都将这些变量 往NVRAM中存储一次,有效地防止了掉电 重启对重要数据的损坏情况。
首届军工产品软件 测试技术专题研讨
– 缺陷分析 — 导致软件失效的原因所在; – 纠正措施 — 软件测试者提出的修改建议或
开发方进行的改正方案。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
需求类缺陷(一)
• 需求缺陷是在软件需求到软件设计的转 换过程中由需求制定者产生于软件需求 之中的隐患;
• 软件的需求类缺陷主要产生于:
中航一集团软件可靠 性管理与测评中心
需求类缺陷(五)
• 纠正措施
– 需求中规定,在NVRAM中专门设置一个检 测区,并预先规定了两个写入值,在每次断 电前写入一个值,在每次开机检测时,检查 该值是否与上一次断电前的值相同。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
需求类缺陷(六)
• 失效表现
– 飞机飞越东西经180度线时,计算错误,导 致飞机沿相反方向飞行。
• 缺陷分析
– 需求中设计的地理坐标系到大地坐标系转换 的公式中,没有考虑到东西经180度(正负 180度)是同一条经线的特殊情况。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
需求类缺陷(七)
– 软件应用领域的不确知性;
– 设计者对软件应用领域认识不充分;
– 设计者考虑不周导致的需求缺陷。
首届军工产品软件
中航一集团软件可靠
测试技术专题研讨
性管理与测评中心
需求类缺陷(二)
• 失效表现
– 在空间辐射环境中,计算机按照一个不确定的流程执行, 导致程序执行逻辑混乱。
• 缺陷分析
– 在空间辐射环境中,一些能谱宽、分布广的高能级重粒 子和太阳耀斑质子,对具有存储记忆功能的半导体器件 会产生电离现象,引起晶体管的敏感区沉积足够多的电 荷,造成CPU寄存器或存储器RAM单元发生二进制逻 辑位翻转。
软件缺陷软件缺陷软件缺陷缺陷知识库软件开发者软件测试者关注关注使用使用缺陷知识库是建立软件的缺陷属性与其他属性之间关系的桥梁首届军工产品软件测试技术专题研讨会中航一集团软件可靠性管理与测评中心研究软件失效的目的软件失效机理的探讨软件测试典型失效有效的软件测试首届军工产品软件测试技术专题研讨会中航一集团软件可靠性管理与测评中心缺陷产生的原因可以归结为软件生产者的的错误所致
• 缺陷分析
– 设计中缺少对这种情况的考虑,且代码中没 有对除零情况进行保护。
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
设计类缺陷(五)
• 纠正措施
– 设计人员对上述问题进行了双重保护: – 首先,在航路点输入、修改、删除等操作流
程中增加了对相同航路点情况的判断,避免 此种情况的出现;
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
环境
作用
激发
缺陷
影响
失效
质量
属性
属性
软件产品
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
研究软件失效的目的
• 目前的软件开发仍然是一种“个人行 为”,一个人的经验、知识和能力总是 有限的;
ห้องสมุดไป่ตู้
• 软件的个体特征体现在两个方面:应用 域的特殊性和编程者的特征;
• 代码检查和程序测试都是不完全的,它们都是 基于检查者和测试者的想象力和洞察力;
• 程序测试能说明程序错误的存在,但却不能说 明它们不存在!
首届军工产品软件 测试技术专题研讨
中航一集团软件可靠 性管理与测评中心
代码类缺陷(四)
• 失效表现
– 删除航点时,多拷贝了一个航点。 – 若航线的长度为150时,会出现数组越界。
相关文档
最新文档