软件测试的优势
虽然软件测试存在不少困境和迷局,但是这并不能掩盖软件测试自
身的优势。
和软件开发相比,软件测试入门相对更容易些。这是软件测试行业
的一大特点,其实也是软件测试的优势之一。较低的“门槛”给了软件测
试行业和软件测试从业者更多的选择余地。一些企业在招聘软件测试人
员的时候,不一定只招聘有计算机、通信相关经验的人,他们可能会根
据产品的特点,招聘一些更能理解产品和用户需求的人员,如金融、财
会专业的人等,所以软件测试从业者可以是“杂家”,或者说对某些领域
来说,“杂家”反而更适合软件测试。从软件开发相对“封闭”的行业特点
来说,软件测试就要“开放”多了。另外对想改行从事软件研发工作的人
来说,选择“软件测试”作为转型的切入点也是比较合适的。
在软件开发项目中,大多数软件开发工程师都会被分配一个或几
个“模块”来编码实现,几个软件开发工程师合作才能完成一项功能是非
常普遍的现象。这种割裂式的开发工作模式,让其中的软件开发工程师
很难理解产品的全貌,甚至不知道最终用户会如何使用自己的产品。相
对来说,软件测试人员是产品研发团队中最理解产品全貌、最理解用户
的人,这是由软件测试的工作内容决定的。
软件测试人员不必关心产品究竟是如何编码实现的,不必关心用的
是C语言还是C++,不必关心这部分代码是软件开发人员从网上复制下
来的还是自己原创的;他们需要关注的是“产品的实现是否和开发承诺
要实现的功能是一致的”,这让测试人员自然会去关注“功能”,理解产
品的全貌,而不会陷入实现细节。
软件测试人员还会对产品进行“黑盒测试”,这种看似“摸瞎”的系统
测试方法,需要站在用户的角度分析用户使用场景,所以软件测试人员
必须想办法去全面理解用户,不仅要理解用户明确的需求,还要理解用
户“隐形”的需求,如用户的使用习惯、用户行业潜在规则等。所以在产
品研发领域,测试人员才是最理解用户的人。
在大多数人的印象中,软件开发整天面对着电脑,两耳不闻窗外
事,十指翻飞只为编写程序,是一个很“宅”的职业。你千万不要以为软
件测试也是一样的,和软件开发相比,软件测试人员需要有一定的沟通
交流能力,这不仅有助于就产品测试中发现的bug和开发人员进行沟
通,更重要的是,在很多企业,软件测试人员都会作为产品研发的接
口,在用户出现问题的时候和用户进行沟通。除此之外,想要做好测
试,协调能力、风险评估能力、数据统计分析能力和报告撰写能力都是
必不可少的“软技能”。所以和软件开发要求“深度”不同,软件测试更注
重“广度”,要求软件测试人员是“多面手”,有很强的综合能力。
软件测试的这一特点,让软件测试人员可以有更多的职业外延可供
选择。换句话说,即使一名软件测试工程师在从事了几年软件测试工作
后转行,无论他是改行做销售、客服或其他工作,都可以很快上手,得
到认可。这是因为软件测试人员对产品理解,在研发领域可能不够“深
入”,但是在非研发领域却做得很好。在广度方面,软件测试人员不会
输于其他非研发领域的从业人员;对用户需求的理解,软件测试人员也
不会逊色;而沟通协调、分析总结、风险意识等软能力也能帮助软件测
试人员很快掌握新领域的知识技能。所以相对来说,软件测试人员其实
更能适应这个复杂多变的社会。
软件测试的劣势
客观来讲,和软件开发相比,软件测试也存在很多劣势。
“入门低”虽然给软件测试行业和软件测试从业人员带来了更多的选
择机会,但是也会导致软件测试在软件研发领域的认可度降低,认为软
件测试是一项相对简单、没有技术含量(或技术含量低)的工作。这
个“印象”直接导致了软件测试当前的困境和迷局。
虽然软件测试的“出口”看起来很广阔,但是和同在软件研发领域的
软件开发人员相比,软件测试在软件研发领域的发展却比软件开发人员
有限得多,至少这是现状。我们很少看到软件测试人员去做产品研发管
理工作,成为开发代表、产品线经理或研发总监;很少看到软件测试人
员去做系统架构师(SE)。很多企业,软件测试在管理上的职位,最高
就是测试代表或测试经理,在技术上甚至没有职位,没有发展方向。
如果从业者的职业发展目标本就不在产品研发,而只想熟悉产品,
那么软件测试无疑是获得这项经验一种很好的实践;但是如果从业者的
目标就是软件测试,最后却“被迫”转岗,这样的“宽出口”就不是“优
势”,而是当前软件测试的无力之处了。