1
01-01
让朋友低估你的优点,让敌人高估你的缺点。
点击上方蓝字“凡猫软件测试“
如上图所示,纵轴是表示缺陷的数量,横轴表示测试工作量。缺陷的数量随着测试工作的进展在不段减少;但测试费用也随着工作量在不段提高。
也就是说要想发现更多的缺陷就必须投入更多费用(这个费用包括时间、人力,物力),对一个新项目,我们前提可能1天发现10个缺陷。
到后面可能10天发现1个缺陷,或者发现一个缺陷所需要的时间更长,我们有必要为发现一个缺陷而继续增加费用么?
本来就不存在完美的产品,我们的目标是找到最合适的测试量,使投入(测试费用)与回报(修复缺陷数)达到最优。
四、测试无法显示潜在的软件缺陷
仔细理解一下这个标题。当测试人员对一个软件进行测试时,他发现了很多缺陷,功能的,界面的,兼容性能。然后,测试人员可以好不忧郁的说,这个软件存在缺陷。
当测试人员又对另一个软件进行测试时,他用尽各种测试方法,测遍所有功能(当然,这是不可能,上面已经说了无法完全测试),他投入了大量的时间和精力却最终没有发现一个缺陷。
那么测试人员不能保证这个软件是没缺陷的,当然,他更无法去报告这些潜伏的缺陷。也就是说测试人员只能报告已经发现的缺陷,对于未知的谁也不能肯定。
(这也是测试人员遭受质疑的地方,你既然不能保证软件的质量,要你何用。测试人员可以提高软件的质量,至于能提高多少,全凭测试人员的能力决定了。不像开发人员对于一个功能的实现,能或不能是很明确的两个答案。)
五、找到的软件缺陷越多,就说明软件的缺陷越多
我们先来体会下面两句话。
“找到的软件缺陷越多,说明软件遗留的缺陷越少”
“找到的软件缺陷越少,说明软件遗留的缺陷越少”
不管是开发还是测试,我们期望软件遗留的缺陷少。但是上面的两句话都不成立。
我们发现缺陷的多少和最终软件遗留的缺陷多少毫无关系。那么为什么会有上面两种推断呢?
“找到的软件缺陷越多,说明软件遗留的缺陷越少”这种情况,假设缺陷在一定数量的情况下,测试人员业务非常精通,测试极其认真,发现越多的缺陷,说明还遗留的缺陷就越少。
那么,我也可以假设随便这么一测,就发现这么多缺陷,那这个软件应该还有很多。
“找到的软件缺陷越少,说明软件遗留的缺陷越少”这种情况,假设开发人员经验非常丰富,而且工作非常认真,测试人员花费了很大的时间和精力都不能找到缺陷,说明软件本身的质量很好,也就是说其本身遗留的缺陷越少。
那么,我也可以假设为,是不是测试对业务不够熟悉,经验不够丰富,为什么发现不了缺陷。那么可能软件遗留的缺陷还有很多,只是我没有发现。
更严谨说法,或者更准确的说法是“找到的软件缺陷越多,只能说明软件的缺陷越多。”我们发现的缺陷越多,只能说明软件的缺陷多。并无法正明软件还遗留的缺陷的多少。
当然,也并不是无法评估软件遗留缺陷的多少,我们可以根据开人员的工作经验与技术能力,测试人员的工作经验,测试技能,对业务的熟悉程度以及以往完的成项目质量进行评估。
六、软件测试术语
准确与精确
关于软件准确与精确之间是存在区别的。我的理解在保证准确的基础上求精确。拿一个计算器来做例子。我最喜欢拿一个计算器来输入10除以3,如查等于3.0(四舍五入)了,那么它就不够准确。如果计算的结果是3.3....那么要我看他的小数点后面有几个3,3越多表示越精确。(个人认为在软件测试中,这个用到的不多)
验证和合法性检查
虽然验证和合法性检查常常互换使用,但是他们有不同的定义。其中的差别对软件测试很重要。
验证是保证软件符合产品需求的过程。合法性检查是保证软件满足用户要求的过程。
验证更多的是站在产品需求的角度去测试软件,合法性(或叫“合理性”合适)是站在用户的角度是测试软件,当他们发生冲突时,就需要对产品时行衡量。
但我偏向于用户角度,因为产品的最终目的是给用户使用,而不是为了符合需求文档。
质量和可靠性
质量解释为“优秀程度”或者“超越同类的”。如果说软件产品质量高,就是指它能够满足客户要求。客户会感到该产品性能卓越,优于其他产品。
如果在测试过程一直稳定、可靠,就会认为这是高质量的产品。这样理解错误。可靠性只是质量的一个方面。那么产品在各种机型上是否一样运行稳定。是否有技术支持,是否使用方便且性能优秀,这些灰是质量的组成部分。
测试与QA
软件测试人员的目标是找出软件的缺陷,尽可能早的发现并确定修复缺陷。
QA的主要职责是创建和加强促进软件开发并防止软件缺陷的标准和方法。
以上That‘sall更多系列文章敬请期待凡猫软件测试往期内容宠幸1、当代社畜现状,你中招了吗?、互联网这股裁员风,要吹到啥时候?3、Jmeter系列之数据库操作4、30个Python常用极简代码,拿走就用扫描