
序言——测试之所见
当前大多数人把软件测试理解为功能测试,他们认为只要理解测试理论,测试流程,再熟练测试用例设计的方法就可以了。所以很多接触这个行业的人,在工作一两年之后,就想着往性能测试、自动化测试方面发展,结果是越学越迷茫,真正的原因是很多人对测试的理解还不够。那么该如何做呢?
下面简述一下作者的看法。
首先测试需要发挥其主动性。因为最终的产品是给用户使用的。也就是说,测试从项目立项开始就需要更全面理解每个需求的意义是什么,关注前期的需求分析和讨论,参与需求的评审,这样可以根据产品需求合理的设计测试方案以及安排好测试时间。
其次就是测试用例的设计。测试用例是用来指导测试工作,也是测试人员必须要完成的工作。测试用例的设计可以从三个维度(业务、用户、方法)来考虑,此外需要对测试用例进行管理,通常写完测试用例后要进行评审,后期在执行中还要不断的更新测试用例。
接下来关注测试流程,注重项目进度的把控。通常这些是项目测试经理来管理,其实作为一个合格的测试人员也要协助领导进行流程的管理,同时对缺陷要进行跟踪管理。特别是针对遗留缺陷的分析以及可能存在的风险。
最后在项目上线后,需要对项目进行相应的总结。总结整个项目过程中遇到的问题有那些,如流程方面、技术方面等。这些问题解决的办法是什么,后续有什么可以借鉴的方案或改进的措施。
除了上述的一些看法,做为一个合格的测试人员还需要具备以下几方面的能力。
沟通能力,其主要体现在两方面。一方面是思路,主要指业务和技能方面,比如在工作中不管是与开发人员沟通,与客户沟通,还是与领导沟通,在沟通前要首先整理好自己的思路。另一方面是表达,主要是指说话的技巧,其实体现的就是情商,比如在测试中发现Bug后,有些人会直接说:“这个地方有Bug”,有些人则会委婉一点说:“这里执行时跟需求不一样,您过来看一下”。总之,不管是开发也好,还是测试也好,我们的工作目标是为了提供高质量的软件给用户,所以在实际工作中,需要尽最大可能理解对方,从而提高工作效率,也就是说要学会换位思考。
思维能力,其主要体现在两方面。一方面是逻辑思维,首先要清楚逻辑思维是一种确定的、有条理、有根据的思维;其次在工作中需要充分熟悉需求和业务,从专业的角度去思考问题。另一方面体现在发散思维,也就是探索性测试,比如在工作中可以天马行空的去设想用户的操作行为,使用最多的方法就是逆向思维。
学习能力,主要体现在两方面。一方面是技能方面。以一个Web系统来说,可能涉及的语言有C++、Java、.Net、PHP、Javascript、HTML等,还会涉及数据库服务器以及应用服务器等。从这点上看,就要求测试人员能够读懂多门语言。另一方面就是业务方面,从目前来看,软件几乎涉及所有的行业,包括银行、电商、物流以及政府的业务办理等,而软件的发展也越来越人性化,所以要求测试人员不断学习和理解不同行业、不同业务的规范和标准。
团队合作能力,现今软件越来越复杂,一个高质量的项目需要不同部门,不同职位的人相互协同实现,仅凭个人能力是不可能完成的。目前很多公司特别注重团队意识,经常不定期组织一些团队扩展活动,来增强团队之间的合作意识。作为测试工程师必需具备高度的团队合作精神,为保证软件产品的质量做出贡献。
最后,做为一名测试人员,还需要有责任心、信心、耐心。平台不同、定位不同,人生的价值就会截然不同,请做好您的职业规划。
时间一直在不断的做减法——且行且珍惜。
斛嘉乙
2018年9月于家中