软件测试理念(三)

Q: 如何做一名优秀的软件测试工程师?他至少具备哪些技术能力?

A: 软件测试工程师首先是一个软件工程师,也就是说他必须具备软件工程师的基本技术能力,比如对计算机结构系统(硬件,操作系统,内存,网络等)基本了解,再有就是算法数据结构,以及开发编程能力,最后就是对所工作领域的技术掌握。有了这些基本技术后,下面要掌握一些测试技术,比如黑盒白盒、等价类、边界值、功能测试、性能压力测试和安全性测试等。除了必须懂得技术硬技能外,要想成为一名优秀的软件测试工程师还必须有很强的软技能,这包括对产品质量的热情和沟通协调能力等。其中对产品质量的热情和专注尤为重要,因为兴趣是最好的老师,只有对所做的工作充满热情,你才会从平庸变成卓越。

Q: 怎么才能进行有效地探索性测试?另外很多优秀的软件测试工程师都能敏锐地嗅到bug,你认为如何训练这方面能力?

A: 探索性测试不仅需要对产品熟悉,还需要掌握开发产品采用的技术,最后就是自己经验的积累,这三者缺少一个都很容易把探索性测试变成漫无目的的测试。因为探索性测试是边运行测试、边了解产品和边设计新的测试。它根据当前测试步骤产生的结果,加以分析判断,然后使用策略决定下一步会最有可能发现产品中的bug。我曾写过一篇介绍探索性测试的文章,那里面用猜数字的游戏来解释探索性测试,猜数字的第二步也就是根据第一步猜的结果,来决定猜下一个数字所使用的策略非常重要。没有好的策略就会变成乱猜,而策略就需要你对游戏的规则、数字的特征以及二叉树查找等知识的积累和掌握。

其实对bug的敏感度也是建立在以上三个方面的能力:产品、技术和经验。另外分享一个小技巧,测试人员可以经常把以前的bug拿过来分析和学习,比如当时是如何发现的?找出共性特征,及时做总结,时间长了自然就会提高发现bug的能力。在我带的一个团队中就经常让团队的人找一个自认为最好的bug,轮流在团队会议上和大家分享他发现该bug的过程,从而给团队其他人以启发和学习。

Q: 可以说微软、谷歌、亚马逊等公司代表着测试软件发展方向,他们是如何做软件测试的?他们在软件质量控制理念和实践方面,哪些地方值得我们借鉴?

A: 有很多因素决定一个公司如何做软件测试,其中最为重要的就是产品的特点,换句话说就是什么样的产品决定什么样的测试策略。即使在同一个公司,不同的产品也不是使用一成不变的测试方式。微软是传统桌面型产品的代表,由于桌面型产品的特点,使得微软在软件开发过程中做大量的测试,来保证软件发布时候的高质量。而对于谷歌亚马逊等互联网公司,他们的产品以网站和服务为主,于是他们采用不同的测试策略来保证网站和服务的高可用性。虽然不同公司团队具体测试实践或手段有所不同,但仔细分析他们在软件质量控制理念上有很多共性值得我们去借鉴,比如强调把质量提前,开发对代码质量负责,整个团队对产品质量负责,产品质量是从一开始就建立起来的而不是后天测试出来的等。

1 month ago, this page was being read.


Subscribe to Comments