软件测试需要懂代码吗?这个行业现在还有很多的从业人员都有这样的疑惑。不过在回答这个问题之前,我们必须了解一下软件测试扮演的角色。
软件测试大概分两种角色,业务型测试和技术型测试。
业务型测试,他的工作任务是在系统开发完成或大体完成的情况下参与验证测试系统的功能及其完整性,这种测试角色需要是业务熟练,不一定要有编程能力。
技术型测试,技术型测试所关注的内容和业务型测试不同,要求掌握或是具备数据库、编程能力、系统架构、数据设计和应用接口等技术能力。技术型测试也分为手工测试和自动化测试。手工测试也基本是不要求有编程能力;自动化测试,或者半自动化的,是需要代码做为支撑的。
从技术方面来讲,不懂代码的软件测试员不是根本意义上的软件测试员。
软件测试除了手工测试外,还有自动化测试、功能测试等,这些都需要我们基于现成工具开发脚本(要是要求高的话,还需要构建框架、甚至整套平台),这需要有编程能力。如果连工具都要自己开发,那对编程能力要求更高。
现在流行scrum等敏捷开发模式,这要求qa能与开发紧密结合,基于开发细节来衡量风险,执行测试。这也要求你要能开动程序的基本架构。
自动化测试工具无法解决全部的测试工作,测试人员要有探索精神,就像18、19世纪的科学家,为了进行科学探索,自己开发试验工具。如果说你告别编程,可能你目前的测试工作已经模式化,对个人能力要求不高。
不懂代码不是不能做测试,只是发展必然受限。
其实现在也有很多测试人员是不懂代码的,但依然还在从事测试这方面的工作。在敏捷开发等新思路的影响下,bdd和tdd的开发管理方式已经开始被采用,测试和开发顺序有部分颠倒了,自动化测试也有一部分可以用贴近自然语言的方式实现。
如果你有意在测试行业发展,请不要放弃代码,多看看国外的前沿技术。