阅读本文大概需要 5 分钟。
前几年面试时,问过很多人后面的职业规划是什么,大部分的回答都是「性能测试」,虽然很多人不知道「性能测试」到底要怎么做,甚至也没有啥代码基础,但是知道这个方向是热门,也值钱,所以就定这个方向了,随大流,准没错。
这几年面试时,问很多人后面的职业规划是什么,几乎清一色的变成「自动化测试」,同时反问我们公司有没有自动化,我的答复一般都是「没有这么明确的区分,我们只有业务质量目标,你用手工还是自动化,没有特别要求,只要能高效保质保量的达到目标就行。」
其实仔细想想,「自动化测试」应该只是我们测试的一种方式,或者说手段,而不能说成是一个职业规划,为了达到质量目标,我们可以选择最优的方式即可,比如 Web 前端测试,虽然有很多自动化实现方案,但是目前手工测的仍然很多,前端变化快呀,手工的投入产出比,大部分时候都比自动化要好,那我们要不要为了自动化而自动化呢?
相对「自动化测试」而言,我觉得对「测试策略」的更好应用,也许是可以花更多时间去研究的,比如什么时候用手工,什么时候用自动化,比如什么情况可以用静态测试,什么时候用动态,比如什么时候可以主要关注系统测试,什么时候可以重点关注单元和集成,所有这些都是相对的,所有这些都是此消彼长的,但是所有这些也是有一定规律的,比如没法讨论到底加强白盒测试好,还是自动化测试好,因为这是两个维度的划分。
如果要搞清楚这次概念,就必须搞清楚这些概念的划分,只有知道每个概念划分的标准,才能正确的思考和讨论。
下面是我按照几个流行的标准进行划分的测试类型。
说明下,这些划分不是我的发明创造,这些都是现成的概念,我只是做了汇总,我是信息的搬运工。
当然,专门做这个事情的目的,还是为了强调要加强对基本测试理论的理解,所有的上层建筑都是基于底层架构而来,不打地基就盖楼,纯属瞎扯。
以上,我根据不同的分类标准,对软件测试的不同类型做了汇总,不知道和你的理解是否有出入,欢迎留言补充。