Web测试囧事
上QQ阅读APP看书,第一时间看更新

序二

2006年开始软件测试的生涯,记得当时讲软件测试的书并不多,有几本比较好的书也是从国外引进翻译来的。十多年过去了,从一开始做PC端的应用程序的功能测试,到后来做Web系统的自动化测试,目前在互联网公司负责电商业务后台系统的持续集成方案。期间经历了软件测试行业的不断发展,测试工程师的职责和作用也在不断发生着变化,对测试工程师的要求也越来越高。

想要成为一名合格的测试工程师,入门首先需要具备基本的软件测试理论基础;要能开展工作,就必须要了解所在行业的业务背景知识;要想更多地发现缺陷和更准确地定位缺陷,还要学习Web系统或移动应用相关技术知识;想更进一步,全面提升软件质量,就需要从代码、功能、安全、性能和易用性多个层面去着手。本书是一本难得的涉及以上所有这些知识和技能的著作,通过案例教学的方式生动地再现了真实的工作场景,从实际案例场景引发读者思考,又由思考激发读者对相关知识和技能的学习兴趣,通过这样一个又一个的学习旋转式上升,引导读者逐层深入,逐步窥探到做一名合格软件测试工程师所需的知识与技能图谱。

现在很多的互联网企业里,大都会有软件测试工程师测试开发工程师两种角色。那么他们都是为软件质量负责的吗,区别又在哪里呢?软件测试工程师更加偏重于测试,比如功能测试、性能测试、安全测试,等等;而测试开发工程师更加偏重于开发,包含自动化测试框架开发、性能测试工具开发、安全测试工具开发与其他质量与效率的工具开发等。产生这两种分工的原因在于互联网企业对速度的追求,要达到快速交付、快速收集与反馈、快速进入下一个迭代,那么就需要在提升效率上下一番工夫,这时候就可以通过应用一些开源工具或者自研工具来提升测试阶段乃至整个研发阶段的效率。了解到这两种角色的职责和作用,那么我们软件测试从业者在自己的职业发展生涯中就能够找准自己的方向,不断提升自己的技术能力和业务能力。

黄勇老师目前所在的ThoughtWorks公司是把敏捷思想引入中国的先驱,在敏捷软件开发和敏捷测试理论的落地方面处于行业领先地位。敏捷软件开发思想进一步拓展了作为软件测试工程师的职责范围,敏捷思想鼓励职责模糊,整个团队都要为质量负责,而不只是软件测试工程师;鼓励团队成员在软件开发全过程中参与软件质量的保证,而不只是等开发阶段完成以后再开始关注质量;提倡持续交付和自动化测试,通过整个软件开发流程的自动化来提升软件交付效率。那么在这样的一种思想指导下,软件测试工程师就可以做更多的工作,比如参与到需求阶段,通过实例化需求和BDD(行为驱动开发)的方式来使需求对技术人员而言更易懂、自动化和友好;也可以参与到软件开发阶段,通过构建持续代码扫描机制来提升代码的质量;还可以参与到运维发布阶段,通过构建持续交付的流水线来实现产品的快速发布。

随着IT行业的发展,软件测试也跟着从一开始的PC端应用程序测试,到Web应用程序测试,再到移动互联网测试。这样对软件测试工程师的要求也不同了,本书通过案例的形式讲解了在Web应用程序测试和移动互联网测试中遇到的一些问题与处理方法。我看完本书以后,问黄勇老师“这些案例都是真实的吗?”黄勇老师说都是真实的案例。通过在日常软件测试工作中发现的一些有意思的缺陷的收集,进一步分析产生该缺陷的前因后果,并且给出发现该缺陷所用到的关键技能和知识。这种趣味性和知识性兼备的方式,吸引着我一口气看完了全书,看到一些似曾相识的案例时,也不由得会心一笑。非常希望我们软件测试行业能有更多这样的好书。


——熊志男,测试窝测试社区创始人,京东商城高级测试开发工程师