不知不觉间做软件测试已经将近两年了,这两年间在QA这个工作岗位上学到了不少东西。下面是我对软件测试一点感悟。

  相对于开发,软件测试通常给人的印象是:技术含量低,枯燥乏味,大量的重复工作,将来的职业发展局限性大⋯⋯的确软件测试工作存在这样的问题。但是任何事情都是相对的,要把软件测试这份工作做到出色也并非易事。软件测试需要工程师掌握广泛的知识面,发散思维,以及对新知识的快速学习能力。

  以我的亲身体验来讲,入行前我对软件测试的理解是找出软件中的bug。入行后,才发现软件测试工程师要参与到项目的各个阶段:需求分析,文档review,FC,Beta,RC,GM,直至后产品的release,以及release后产品各个版本的升级。对于每个feature的理解程度,甚至项目架构的了解程度决定了软件测试工程师所找出的bug的质量和数量。同时与Dev的沟通和交流也有利于找出和narrow down出bug,以及后的fix bug。养成阅读release note及组里面其他人报的bug,尤其是高手所报的bug的习惯非常有利于软件测试工程师的成长。

  之所以说软件测试工程师需要掌握广泛的知识面,是因为软件开发设计操作系统,底层的数据存储,前端的设计,以及用户体验。作为一名软件测试工程师或多或少都要对这些知识有所了解。有一段时间我做安全测试,在此期间我了解了安全测试的基本概念,学会了XSS,JS攻击等安全测试手段。在做自动化测试时,需要学习一些脚本语言以及自动化测试工具。

  项目的不同阶段对于测试的要求的侧重点有所不同,如FC和Beta Accept之前,需要深入的测试所有的feature,尽可能的dig出所有的bug。到了RC和GM阶段测试则要广的范围,保证产品的稳定性。这时候设计良好的测试用例发挥作用了,它能帮你从之前遗忘或忽略的角落里找出bug。定期的回归测试也能起到保证产品稳定性的作用。

  以上便是到目前为止我对软件测试的一些浅显的感悟。我相信随着今后工作的进一步深入我对软件测试会有更深刻的理解。