什么是软件测试?
最早期的一种软件测试定义,软件测试就是评价一个程序或者系统它的特性、能力,并且确定它是不是能够到达预期的结果。软件测试就是以这个目的来发生的一些行为。
到后来又有另一种定义软件测试的定义,测试不应该着眼于验证软件是工作的,相反我们应该首先认定软件就是有错误的,用逆向思维去尽可能的发现多的错误,并且从人的心理角度,如果认为软件测试的目的就是验证软件是工作的,那么特别不利于软件测试人员来发现软件错误,提出了新的软件测试的定义叫做测试是为了发现错误而执行的一个程序或者是系统测试的一个过程。
就当前的软件测试,其实两种思想都应兼而有之,需要以更全面,更完整,更周全的方式对软件进行系统的测试。虽然现在软件测试已经发展的很好了,但仍然有一些缺陷,或者叫做目前当下面临的一些挑战,其中第一点就是我们软件的规模是越来越大,复杂度也越来越高,不像原来一样是一个很简单的功能,有一些功能都是非常非常大而复杂的。我们怎么样去进行充分并且有效的测试,成为了我们的软件测试过程中的一个难题。
由于技术发展要求我们的测试能力会越来越高,所以首先要求软件测试的人员能够具备基础的功能测试的能力,这个根基要打得很稳。软件测试现在面临着这样那样的挑战,决定了要更加合理,更加理智地去分析学习软件测试的流程,从而让自己的能力不仅仅局限在点点点,而是有一个更高的追求,才能够符合满足现在软件技术的迅猛发展。
该如何系统地学习才能够成为一名合格的软件测试工程师呢?
在测试行业里要想成为一名合格的软件测试工程师,首先需要熟练掌握软件测试的基础知识,包括软件测试的基础,软件测试的模型,测试的组织架构,以及软件的开发模型等。
其次我们还要熟练掌握软件测试相关的知识以及技术工具,比如测试流程,测试的策划,测试的计划,测试的设计以及用例的设计。测试如何执行,执行的过程中发现的缺陷,缺陷的管理以及实时追踪,包括他们应该使用什么样的工具辅助缺陷的管理等等。
除此之外还需要掌握一些软件测试的高级技术,比如说白盒测试的方法,自动化测试以及自动化测试工具的使用。安全测试的了解,性能测试以及性能测试工具的操作。
软件测试未来的职业生涯规划应该是什么样子?
第一个方向是技术方向,
第二个方向是管理方向,
第三个方向是业务方向。
技术方向简单聊
简单说一下技术方向,包括黑盒测试、白盒测试、自动化测试、性能测试、安全测试、测试架构等。
黑盒测试做到一个什么样的程度才算你做到精通、专家级别?到达这个程度有一种说法叫做教开发人员写代码,曾经有这样一个前辈做出的一些黑盒测试提出的一些缺陷,它不仅仅是告知开发有这样一个缺陷,而且会告诉开发你应该从什么方向上入手去查问题,从什么方向上入手去改问题,这是我们黑盒测试做到极致的一个方向。
白盒测试其实是偏向带有编程方向的测试,当然这里面可能还有中间状态叫做灰盒,都是需要测试人员具有一定代码的review的能力。实际来说我们目前的行业内对于白盒测试的需求是比较低的,很多白盒测试的工作是由我们的研发、架构或者研发工程师等人来代替。
所以自动化测试、性能测试、安全测试、测试架构这四个方向才是真正的从技术领域做到高级的一个方向。
管理方向简单聊
可能很多人更关心的就是管理方向,你会觉得我可能不那么适合做技术,那可以考虑我们换一个方向发展,这个方向就是管理方向。管理方向也有几个发展方向,如测试经理、项目经理、SCRUM MASTER。
测试经理就是主抓测试人员的管理与分配。项目经理顾名思义就是管项目中的人,你要拥有的一些协调能力,安排能力,人际沟通能力,人员安排能力,还有流程梳理能力。
另外一个最近非常流行的方向,我们经常说教敏捷,我们做项目要敏捷,我们做测试要敏捷。敏捷里面有一个新鲜的岗位SCRUM MASTER,其实工作的范畴跟我们的项目经理产品经理是有一定类似的,它是决定了我们每一次小范围迭代的工作方向是什么样子,来指引大方向这样的一个管理。
业务方向简单聊
接下来再说业务方向。这里面有几个方向,一个方向是测试专家,当你在你的业务领域达到非常非常出色的状态的时候,你就是这个领域的业务专家。当你测试做到了极限,甚至你可以去向需求产品方向去发展,去帮助人家做一些需求上面的整理,本来这也是我们测试更关注的一些用户体验的问题,直接化身为产品经理,去跟客户沟通,这也是一个方向。