Testing Axioms,做每样事情都是有他的游戏规则,同样软件测试也有一些需要遵守的原则。
1.It’s Impossible to Test a Program Completely
当然啦,要测完岂不是要我命!得出这个结论的理由是,当输入集是很大的,输出集也是很大的,软件的可能路径太多。而且还有一个因素也是最要命的:说明书是很主观的
2.Software Testing Is a Risk-Based Exercise
既然没办法100%全部测试,那怎么办?根据风险来判断什么该测,定义好出口条件
3.Testing Can’t Show That Bugs Don’t Exist
软件测试这份工作很特殊,当你找到问题的时候,证明了软件是有缺陷的;但是当你找不到问题的时候,并不能证明该软件是BugFree的。
4.The More Bugs You Find, the More Bugs There Are
通常BUG都是扎堆的,物以类聚
5.The Pesticide Paradox
杀虫剂用多了,害虫也就对杀虫剂免疫了。对于BUG也是一样,书中建议要设计不同的测试用例来测试软件,但是实际上是没有那么多的时间让人去设计新的测试用例
6.Not All the Bugs You Find Will Be Fixed
有时候可能会很兴奋地发现一个bug,但是提交了上去却没有被修复,这时候不要郁闷,平常心。有可能你发现的bug是个大bug,在短时间内修复不了,也有可能是一些无关紧要的bug,就留到下一个release吧。我的个人看法是,不要每发现一个bug都追着DEV让给修复~大家都是出来混的,都不容易嘛 :)
7.When a Bug’s a Bug Is Difficult to Say
这个我前面提过了
8.Product Specifications Are Never Final
所以当你知道spec又改的时候,不要灰心,因为这是很正常的事情,要去面对,而不是埋怨
9.Software Testers Aren’t the Most Popular Members of a Project Team
测试工程师不好当啊!呵呵,书中要我们做到3点:
- 尽早发现问题,因为问题发现的越早,修复这个问题的代价就越小
- 调节一下自己的狂热情绪~,不要一发现了问题就走去DEV那里给他说你发现了超级大BUG嘿嘿。这样子DEV肯定不爽
- 不要总给DEV坏消息,要给点鼓励的,例如一个模块没有bug,发个email赞扬一下~
10.Software Testing Is a Disciplined Technical Profession
我自己通俗理解就是:软件测试不是随随便便就能干的,是个有前途的职业!
然后就是Software Testing Terms and Definitions。一些相近的定义,但是要分清楚他们的区别,那些英文单词我就不翻译了,估计是翻译不准。
1.Precision and Accuracy
这个我一开始看也看不出有什么不同来,后来发现了,前者是精确后者是准确,计算器的例子就是,如果10/3,出来的是3.3333333那么就是准确的,但是精确到多少位呢?看说明书!
2.Verification and Validation
这两个词第一次接触是在reyrey培训的时候pat给说的,WIKI上的定义是:
- Verification ensures that the final product satisfies or matches the original design (low-level checking) — i.e., you built the product right. This is done through static testing.
- Validation checks that the product design satisfies or fits the intended usage (high-level checking) — i.e., you built the right product. This is done through dynamic testing and other forms of review.
书上说的是Verification是检查软件是否符合说明书的要求。Validation是检查软件是否符合用户的需求。其实和WIKI都是一个意思。
3.Quality and Reliability
质量与可靠性,很多人觉得高质量的产品就是可靠性很高的产品,但其实不然,质量包括了很多方面,可靠性只是“很多方面”里面中的一个而已。
4.Testing and Quality Assurance (QA)
这个在reyrey培训的时候也说过,当时说的是QC和QA的区别。一般理解是:
- QA:为了确保软件开发过程和结果符合预期的结果,依照过程和计划采取的一系列活动及其结果评价。
- QC:为了发现软件产品的错误而进行工作的过程。
这两个其实是不一样的东西,不过现在很多公司基本上都是QA,QC不分,进去以后可能是看具体你要干啥就干啥……不过这个概念上还是要分清的,这个面试也经常有,虽然面试那个人搞的好像很清楚似的,但是进去以后也是QAQC不分。个人觉得QA给人一种比较专业的感觉。
Related posts:

近期评论