如何缺陷预防提高软件的可靠性

上一篇 / 下一篇  2012-02-13 11:46:59 / 个人分类:文档

为什么在实验室测试完成后,在用户处总会出一些难重现古怪的问题,测试人员会困惑按需求进行了完整测试可为什么还会出现这些小概率的问题?究其原因,有多种根因导致软件在用户处会出现一些难重现的古怪问题(我需要另写一篇文章来分析和整理)。本文重点阐述其中一种常见根因——软件可靠性测试不足}+W0i2vQ-T ~5cb:O6P72047

9jV NM)J G*As72047

我先来介绍下常见软件可靠性测试的几个阶段:51Testing软件测试网`m-n_*l Z

1.0阶段:基于个人经验的发散异常测试——测试过程和结果随机,难管理,遗漏也很多

&`hN7w*Kg$Fw72047

2.0阶段:使用压力测试来发现系统抗压的可靠性问题——物料和时间成本高

6njO:U c8Rd72047

3.0阶段:基于用户应用反馈回来的问题逐个亡羊补牢——被动等待,产品稳定周期长51Testing软件测试网C3evd5dil"[

4.0阶段:基于失效模式的系统故障注入测试——针对关键模块提早进行容错测试发现软件系统可靠性实现的不足之处。51Testing软件测试网4f g1w)gQg

8b3qR!]A\?8LC'B72047

3种阶段应该是目前中国大部分企业的主流做法,这些方法对测试技术的储备和门槛要求较低,所以容易开展。但不足之处上面已谈到了:测试过程和结果缺乏确定性,物料成本高,测试时间(重现时间和定位时间)成本高,产品稳定周期长,还是会遗漏一些可靠性相关的问题到用户处。51Testing软件测试网m0l7C4\:m1nH

显然问题所在的地方就是测试技术研究应该关注和投入的地方。因此经过业界的努力有了软件可靠性测试的4.0阶段:基于失效模式的系统的故障注入测试。

OU(O5| fM']cd72047

YpwTb3vt F72047

基于失效模式的系统的故障注入测试的好处:

-V9b4Y cc6^~+r72047

——测试过程和结果具有确定性,可重复性51Testing软件测试网 N5MY+C"u5z$^9k ^&E

——几乎不增加物料,问题触发时间,重现时间和定位时间非常短51Testing软件测试网CFA TjG g?

——主动尽早发现可靠性不足风险,实现尽早缺陷预防,缩短产品稳定周期51Testing软件测试网({+h$KYy+kiQ)Y

51Testing软件测试网yl(?0yuox

基于失效模式的系统故障注入的测试分类:51Testing软件测试网 s ]3RWX

——网络传输层故障场景impossible or often ?51Testing软件测试网!ek3}s$}v8L5P(T

——硬件平台故障场景impossible or often ?51Testing软件测试网/| nu%d:Y8l;U:Q

——运行软件平台故障场景impossible or often ?51Testing软件测试网 BA-JC2_kU

——人因差错故障场景impossible or often ?51Testing软件测试网2S,aPl8K YW

51Testing软件测试网k] h1f3g,g4e

互联网时代任何软件只有对以上4个纬度的故障场景都进行了适度(对确实可能发生的失效模式)的可靠性实现,才算有了系统的可靠性保障,否则被动等待和大量亡羊补牢工作会等着大家。51Testing软件测试网h_"u'we$t3N

目前在网络传输层故障场景有比较完善系统的测试框架:网络中断;网络抖动(闪断);丢包;数据包乱序是常见测试方案。51Testing软件测试网 HR&k8[(V

而人因差错故障场景因为不同软件用户的使用方式不同,所以难统一抽象。但还是可以借用场景分析法对每个用户场景进行分支路径和异常路径的发散分析,提前提取出用户可能的操作故障场景。

G4LM'Jc ^ D72047

硬件平台故障场景:对于软件而言,硬件平台就是运行软件的CPU所在的硬件载体。最小抽象的硬件故障场景有:硬件平台断电;硬件部件不可用;硬件部件不稳定;51Testing软件测试网g2o ^u'mk })p

运行软件平台故障场景:软件所运行的驱动层、操作系统层或中间层软件。软件要正常运转需要通过调用运行平台所提供的资源接口API,然后运行平台也会有返回非成功值的场景,返回边界值的场景——而这是最容易被遗忘和最难测试实现的。如果软件对这些非日常场景(日常场景大部分都是返回正确值或中间值)没有对应的处理代码,则软件的可靠性就要大打折扣。51Testing软件测试网A wS PC*b

51Testing软件测试网 u6u3v$l4c

想减少用户现场难重现的问题数,想减少可靠性测试成本,想缩短发现软件可靠性缺陷的时间,就尽早在组织中实践:软件可靠性测试4.0阶段——基于失效模式的系统的故障注入测试。51Testing软件测试网%q ij,@:b _Gp

在我新浪微博http://weibo.com/dongjietest中分享的如何导致Google浏览器、Firefox浏览器、百度浏览器、QQ客户端、360浏览器、百度影音播放器、阿里旺旺等软件崩溃的测试技术原理就是基于失效模式的系统的故障注入测试之运行软件平台故障场景,证明某些软件在这个区域的测试还需要继续完善。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 36401
  • 日志数: 104
  • 建立时间: 2011-10-10
  • 更新时间: 2012-04-12

RSS订阅

Open Toolbar