老婆:你尽给我讲一些看不见摸不着的理论,不能讲点马上就能用得上的?
无语。。。。高屋建瓴慢慢来嘛。。
1. 缺陷的定义:
我喜欢software testing那边书里说的那种描述性的五种定义方法:
需求里要有的而软件里没做的:这个好理解,没按需求办事。
需求里不要有的而软件里多做的:这个也好理解,好心办坏事。
需求里没说要有的而软件应该有的没做:这个有点绕,其实也就是超出需求考虑软件的标准了。
需求里没说要有的而软件不应该有的做了的:这个和上一个有点相反而已,是超出需求的部分。
测试人员觉得软件使用过程中,任何从客户角度觉得慢了,不舒适了都可以定做缺陷。
很多公司以缺陷作为测试人员的业绩考核的指标,个人觉得不太适合,如果只是为了指标,而忘却了测试最终的目的那就本末倒置了。
测试的目的可以看作是寻找系统的问题,但是最终目的不是缺陷个数,而是软件的质量。
这就是为什么很多CA,GA的准出准则是没有P1/P2的缺陷。
老婆:那什么是P1/P2呢?
2. 缺陷的优先级和严重性:
优先级:英文单词是Priority,实际运用中就是大写P加1~4/5级来表示不同的level。
严重性:英文单词是Severity,实际运用中就是大写S加1~4/5级来表示不同的level。
那优先级和严重性有什么用呢?它们有什么区别?
在做缺陷报告的时候,注明缺陷的优先级和严重性可以让开发和管理人员对待缺陷有更好的明确性。
高优先级的缺陷可以让开发更早更快的驱动,维持测试可继续性,这里一般P1/P2是Block测试用例执行的情况。
P3主要是需求点没有做到,P4是可以忽略或者非计划内的,P5可以是加强的建议,当然不同的公司有不同的标准。
严重性比较大的缺陷可以驱动技术人员去研究,防止后续产品发布对软件造成重大损失,这里一般S1是死机,或者无法打开软件。
S2主要是走正常流程出错,但是有办法绕道解决问题,S3主要是指一般性功能缺陷,S4影响比较小,这也一样各个公司标准不一。
严重性大的一般优先级需要定的越高,但是这个不是绝对的,因为严重性大的问题不一样要很快解决,举个例子很好理解:
地球五千万年后爆炸,严重么?非常严重!需要考虑么?那是杞人忧天。
3. 准确性和精确性
准确性:英文单词是accurate 精确性:英文单词是precise
准确一般用来描述事情做对了,而精确用来目标是准了。
举个例子 - 打靶
全部打中靶子叫做准确无误, 打中靶心叫做精确无差。
测试的目标是要求达到软件对应需求的准确性和精确性,只做到任何一个都是不够的;
不然只要准确性,无法展现软件的高质量,譬如1.1+1.2 >2, 却不知道1.1 + 1.2 > 2.2;
只要精确性,导致目标不是想要的最终结果,譬如1.1 + 1.2 =2.3,却不知道1.1+1.2 =2.30
4. 验证和校验
其实解释这个比较麻烦,原因就是它们的中文翻译太接近了(Verify/Validate);
其实它们的作用主要体现测试人员的工作角度上,非常重要的两个视角。
测试依据的是什么?
很多人认为是需求、经验,其实很明确,就是需求和用户。
需求来之市场分析、产品需求分析或者客户的有效的要求,是软件设计的源泉,也是软件测试根本依据。
所以同时测试的角度就是最终用户,如果不站在用户的角度,测试出来的产品也可能是凭想的错误结果。
真正懂了这几个要点,你就能有的放矢了。
老婆:无敌啦,明天就去面试做测试工程师。。。