
在不了解软件测试这个行业之前,我一直认为测试不是很重的,认为很多事情由开发就可以解决。学习了软件测试后,真正了解到了它的必要性,我认为软件测试这个职位是必要的。一个软件,从最开始的可行性分析、需求分析、概要设计、详细设计、编写代码。这一系列的开发下,花费大量人力物力、金钱和时间,成功做出了一个软件,要想提高软件的质量从而达到客户的需求,还是需要测试人员来进行测试、发现缺陷,不断的改进,提升软件的性能。它存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个项目的走向,成败与否全在于开始阶段的决策。
软件测试,旨在发现软件的缺陷。就是以发现软件缺陷为最终目的的测试活动。它通过软件测试方法,白盒的、黑盒的、静态的或是动态的。借助软件测试工具,来找到缺陷。然后在缺陷评审和确认之后将缺陷记录下来,并用缺陷管理工具管理,详细描述,关注软件缺陷的发生周期。对它的严重性和优先级下一个定义。书写缺陷报告,具名缺陷的重现步骤、测试的预期结果与实际结果、,还有相关的图片及文字资料。提交给软件开发人员,进行软件缺陷的修复。
我觉得学习软件测试的通用技术与针对某类软件的测试技术外,还有一个重要的与技术无关的方面:业务知识,没有具体的业务知识很难发现软件中潜在的逻辑错误甚至是需求上的错误,当然需求要依据特定的软件,但软件测试人员对需求理解的深入程度不应低于软件开发的人员。因为软件测试所有的依据来自于需求,而所有的需求来自于客户,甚至是我们的全部都来自于客户。识别需求后还必须转化为测试上的需求,毕竟测试人员看需求的角度和开发人员还是有区别的。
软件测试的真正意义在于发现错误,而不在于验证软件是正确的。再严密的测试也不能完全发现软件当中所有的错误,但是测试还是能发现大部分的错误,能确保软件基本是可用的,所以在后续使用的过程中还需要加强快速响应的环节。结合软件测试的理论,故障暴露在最终客户端之前及时主动的去发现并解决。这一点就需要加强研发队伍的建设。