80% 的软件缺陷常常生存在软件 20% 的空间里。这个原则告诉我们,如果你想使软件测试有效地话,记住常常光临其高危多发 “ 地段 ” 。在那里发现软件缺陷的可能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个原则很快找出较多的缺陷而愚蠢的测试人员却仍在漫无目的地到处搜寻。

80-20 原则的另外一种情况是,我们在系统分析、系统设计、系统实现阶段的复审,测试工作中能够发现和避免 80% 的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的 80% ,最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷,却无法保证能够发现所有的软件缺陷。

80-20 原则还能反映到软件测试的自动化方面上来,实践证明 80% 的软件缺陷可以借助人工测试而发现, 20% 的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正。

为效益而测试

为什么我们要实施软件测试,是为了提高项目的质量效益最终以提高项目的总体效益。为此我们不难得出我们在实施软件测试应该掌握的度。软件测试应该在软件测试成本和软件质量效益两者间找到一个平衡点。这个平衡点就是我们在实施软件测试时应该遵守的度。单方面的追求都必然损害软件测试存在的价值和意义。一般说来,在软件测试中我们应该尽量地保持软件测试简单性,切勿将软件测试过度复杂化,拿物理学家爱因斯坦的话说就是: Keep it simple but not too simple 。

缺陷的必然性

软件测试中,由于错误的关联性,并不是所有的软件缺陷都能够得以修复。某些软件缺陷虽然能够得以修复但在修复的过程中我们会难免引入新的软件缺陷。很多软件缺陷之间是相互矛盾的,一个矛盾的消失必然会引发另外一个矛盾的产生。比如我们在解决通用性的缺陷后往往会带来执行效率上的缺陷。更何况在缺陷的修复过程中,我们常常还会受时间、成本等方面的限制因此无法有效、完整地修复所有的软件缺陷。因此评估软件缺陷的重要度、影响范围,选择一个折中的方案或是从非软件的因素(比如提升硬件性能)考虑软件缺陷成为我们在面对软件缺陷时一个必须直面的事实。

软件测试必须有预期结果

没有预期结果的测试是不可理喻的。软件缺陷是经过对比而得出来的。这正如没有标准无法进行度量一样。如果我们事先不知道或是无法肯定预期的结果,我们必然无法了解测试正确性。这很容易然人感觉如盲人摸象一般,不少测试人员常常凭借自身的感觉去评判软件缺陷的发生,其结果往往是把似是而非的东西作为正确的结果来判断,因此常常出现误测的现象。

软件测试的意义 - 事后分析

软件测试的目的单单是发现缺陷这么简单吗?如果是 “ 是 ” 的话,我敢保证,类似的软件缺陷在下一次新项目的软件测试中还会发生。古语说得好, “ 不知道历史的人必然会重蹈覆辙 ” 。没有对软件测试结果进行认真的分析,我们就无法了解缺陷发生的原因和应对措施,结果是我们不得不耗费的大量的人力和物力来再次查找软件缺陷。很可惜,目前大多测试团队都没有意识到这一点,测试报告中缺乏测试结果分析这一环节。

结论:

软件测试是一个需要 “ 自觉 ” 的过程,作为一个测试人员,遇事沉着,把持尺度,从根本上应对软件测试有着正确的认识,希望本文对读者对软件测试的认识有所帮助

转载自--------- http://blog.csdn.net/rital/article/details/3346853

软件测试中80/20原则相关推荐

  1. 软件测试的8.20原则,四个维度,拆解「软件测试中的80 / 20原则」

    一.80% 的软件缺陷,聚集在软件 20% 的模块中 优秀的测试人员会根据这个原则,非常快速的找出较多的缺陷(这个原则可以解释一个你的苦恼:为何你苦苦测了几天,都没发现有啥缺陷:你老大慢悠悠的走了过来 ...

  2. 图书-管理:《80/20定律》

    ylbtech-图书-管理:<80/20定律> 管理学范畴有一个著名的80/20定律:(80/20法则)是按事情的重要程度编排行事优先次序的准则,是建立在"重要的少数与琐碎的多数 ...

  3. Scrum: 在软件开发中应用80:20规则

    在软件开发中应用80:20规则 我们喜欢简单的经验法则,越简单越好.最有用的经验法则之一是80:20规则: 80%的影响来自20%的原因,80%的影响来自20%的努力. 这意味着 :通过更聪明,更努力 ...

  4. 004-什么是软件测试?软件测试的目的与原则

    软件测试的定义: 使用人工或自动手段,来运行或测试某个系统的过程.其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 软件测试的目的: 测试是程序的执行过程,目的在于发现错误 一个 ...

  5. 性能测试中的二八原则

    在生活中,做任何事情之前,最好先确定一个目标. 同样的,在我们日常做性能测试之前,最好把本次预期性能指标确定下来,没有预期指标的衡量,将无法评估测试结果数据是否满足预期.比如以下这样的指标: 接口 预 ...

  6. 软件测试的目的和原则是什么?

    目的 1.通过测试工作可以发现并修复软件当中存在的缺陷. 2.可以降低同产品开发遇到的风险. 3.记录软件运行过程中的一些数据,从而为决策者提供技术支持. 原则 1.2/8定律,核心功能占20%,非核 ...

  7. 软件测试中的杀虫剂效应与金字塔模型

                                        软件测试中的杀虫剂效应与金字塔模型 今天包括后面的文章,我们除了聊自动化以外,也来聊一下软件测试中的一些基础知识. 基础知识也非 ...

  8. 功能点算法及在软件测试中的应用

    --划分逻辑事务 在前一篇文章我们讲到,"逻辑事务"是统计功能点指数的最小单元,所以进行科学的划分,对统计的正确性非常重要.另外,划分逻辑事务其实也是一个需求分解的过程,测试工程师 ...

  9. 浅谈“头脑风暴法”在软件测试中的运用

    文/谭清红 罗章坤 一. 背景 本文立足当前银行业互联网金融软件测试的现状,分析"头脑风暴法"在互联网金融行业软件测试工作中的意义以及软件测试人员可能面临的挑战,指出在软件测试工作 ...

  10. java80/20法则_那些很熟悉但又不知怎么用的设计法则(1):80/20法则

    每次在做项目总结的时候,总想列举一些法则和方法论来增加总结的专业性以及可信服度,但是总有些熟知的方法却怎么也叫不上名字,所以决定开设一个这样的专题,敦促自己在做设计的时候不要留于表象,有理可循. 80 ...

最新文章

  1. abstract类中不可以有private的成员_我要告诉你:java接口中可以定义private私有方法...
  2. “重金求来”Alibaba技术官并发编程笔记,附赠复习资料
  3. 关于GIT的SSH加密问题
  4. linux环境没有bzip2,Linux系统中安装使用Bzip2来压缩文件的方法讲解
  5. go context学习
  6. 构建之法 第三版 第3章 部分草稿 (剪牦牛毛、老程序员去金融公司的故事)...
  7. 谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
  8. MapReduce如何使用多路输出
  9. ARP防火墙 (防如网络执法官、网络剪刀手、局域网终结者限制本机网速)
  10. 计算机管理用房设置要求,党政机关办公用房管理系统解决方案
  11. ADB常用命令及详解
  12. 什么是Java分布式?
  13. java 使用poi导出excel柱状图
  14. 如何修改作为背景图片的svg颜色
  15. npm i安装命令中的-g -D -S的区别
  16. 【已解决】找不到某服务器 IP 地址
  17. 【bug修复】低版本工程导入Unity2018 Shader 报错
  18. Python:OpenCV4识别一个蓝色的圆并估算到相机的距离
  19. 地平线创始人兼CEO余凯:自动驾驶处理器——人工智能的珠穆朗玛
  20. 基于Autosar的网络安全理解

热门文章

  1. /分数化简和加减乘除
  2. pandas获取全部列名_Pandas 整理列名
  3. python网络测速_Linux下3种常用的网络测速工具
  4. Python基础+数据科学入门(四)程序控制结构
  5. 可调稳压电源lm317实验报告_LM317可调稳压电源实训实验分析讲解.doc
  6. PhotoShop等比缩放图片
  7. 关于aria2-yaaw下载软件
  8. 体检信息管理系统功能表
  9. 国产电源管理芯片有哪些?
  10. vscode里使用正则表达式