发现还是有很多网友对测试的分类不清楚。当然这也不是不正常,因为测试的分类本来就比较混乱。各种概念和术语交叉混杂在一起,教科书和实践相脱节。我以前写过《浅谈测试的分类》,主要是从黑盒,白盒,手工,自动化的角度去解释的,因为这是大家最熟悉的概念。但是我个人并不喜欢这几种概念。去年Google recruiter联系我的时候专门强调了他在我的简历上看到了几乎测试的各个方面,因此我想从我的简历上对测试的分类再谈一谈。
Testing
● UI automation,API automation,Driver test
● Reliability test,Stress test,Security test,Performance test
● Code review,Debugging(UM an d KM)
● Code coverage
首先我觉得黑盒,白盒和手工的概念不重要,因此我在简历里不会提及。自动化测试来说我把他们分成了UI automation, API automation 和 driver test。Driver test 有可能部分属于API automation,但是driver test有很多自身的特点,最主要的是它运行在kernel mode, 整体的测试感觉跟User mode相差还是挺大的。以上这几种测试基本都属于功能测试。
其次相对于功能测试来说,我把他们分为了Reliability test, Stress test, Security test和Performance test. 据调查用户对软件最care的,除了功能以外,基本上reliability>performance>security,但是这三个都是非常的重要,因此需要单独拿出来进行测试。Stress test基本属于Reliability test的范畴,单独拿出来主要是因为它已经单独发展成一个专门的技术了。
再次最能体现我个人特点的就是code review和debugging了。没有人拿他们作为测试的分类,但是他们可以归于手工测试和白盒测试。因此手工和白盒测试的分类在我的简历里还是有所体现的。但是我觉得提code review和debugging比提手工和白盒要更有意义的多。
最后还是很多其他的测试分类,比如code coverage,localization test,accessibility test,manageability test,scenario test,longhaul test,但大多数都不是我的兴趣所在,或者我认为重要,除了code coverage。
以上是我觉得测试方法和分类最重要的几个方面。我认为每一个测试工程师都需要完全掌握他们。测试技术含量最高的地方应该还是在手工白盒测试上。