很多人总是说我要学习软件测试,因为他可以拿到一个不错的薪资。
但是当我问他你知道什么是软件测试吗?这个时候,他总会愣住了,一脸不屑的表情说着,不就是找bug,给软件找问题,找茬吗?
我摇了摇头,不能说不对,但是不够精确。
因为给软件找问题,那不学习软件测试的人也会给软件找问题,找bug。
我们平时用软件的时候,发现问题也是软件测试,那为什么还要花钱去招聘软件测试人员呢?
其实,你真的把软件测试的定义仔细解读,你就会发现原来软件测试不单单是找bug的过程。
标准定义:软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
通过上面的定义我们可以得到,软件测试的手段分为两种:一种是手动去执行软件,也就是我们平时说的点点点。
还有一种方式就是自动化执行,也就是我们所说的自动化测试。
最终的目的其实都是来检查软件是否满足当初提出的要求,并且如果当初的预期和做出来的软件有差别时候,我们要对这种差异进行分析,判断这种差异是否影响用户使用。
还有种比较经典的释义,我觉得下面的这个解释,更加能反映软件测试的核心工作:
经典释义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程.
这里面有几个核心要素,可以进行解读。
1,规定的条件,什么是规定的条件,我们在测试软件的过程中不是瞎进行操作,而是要遵循某一些特定的条件,这里规定的条件其实就是指需求文档。
在软件开始开发之前,一般都会由产品人员将收集到的需求整理成PRD发给开发和测试人员,我们测试人员会梳理需求文档的业务功能,在评审之后,写成对应的测试用例,后期我们也就是在测试用例下进行测试,这就是概念中提到的规定的条件。
2,发现程序的错误,其实软件测试的核心目的还是发现程序在我们操作的过程中都会有哪些问题,避免这些问题影响到用户的使用。
3,衡量软件质量,软件测试不单单是发现问题,其实还要通过问题的多少来衡量整个软件的质量,软件问题如果过多,影响用户使用时,我们要尽早的将对应的风险报告给对应的负责人。
4,对其是否能满足设计要求进行评估的过程:在测试完成之后,我们要给出整体的一份测试报告,用于我们的测试收尾工作,如果因为bug过多,无法满足用户使用要求以及需求文档,我们就需要知会给开发人员,让其进行修复,直到满足用户需求为止。如果满足当初的需求设计以及用户需求,这个时候也就可以上线了。
第二个释义更加能够体现出我们测试的日常基本工作。