一个优秀的软件测试人员需要具备哪些要素呢?如何判断一个专业测试人员和不专业的差别呢?我觉得从以下几点可以反映出来:
对客户的了解,对产品的了解
软件产品是设计给特定的客户来解决特定的问题。
一个好的专业的软件测试人员真正了解产品的目的,了解客户要解决的问题以及客户的痛。所以他们的测试往往是有针对性,分优先级的。这些知识会被有机的、创造性的发挥应用于软件测试的实践中,包括我们这里谈到的各项内容。一个好的专业的软件测试人员会知道,客户已在使用的东西,就是是错的,也是对的了,会把backward compatibility的测试放到新版本发布最重要的日程。
相反,那些还没有达到专业高度的软件测试人员就只能机械的跑那些纸上的测试计划了。也往往会被那些纯理论上的,逻辑上的东西来左右判断,在测试新功能时,会忽略用户已在使用的功能。
系统性
如果从软件测试的行业定义而言,软件测试是系统化的保证软件产品满足设计规范和用户需求。
一个好的专业的软件测试人员往往可以系统地去审视测试需求,制定测试策略, 从而做到心中有数,保证产品的功能和需求得以有计划的测试,按时达到预期的质量要求。
相反,那些还没有达到专业高度的软件测试人员往往是东一榔头,西一棒子地去做测试,抓不到重点与要点,从而测到最后也不知道产品的质量是好还是不好。
从无穷到有限
软件只要复杂到一定程度,其功能的组合就是无穷的了。理论上说要涵盖全部的情况,测试也需是无限的了。
好的专业的软件测试人员有本事在无限的测试案例中找到最合理的最有效的有限集合来测试。而这些集合涵盖了对于客户来说最重要的应用集合,从而来保证产品的质量。
而那些还没有达到专业高度的软件测试人员往往只能盲目地、随机地做测试了。
感觉和敏感度
一个好的专业的软件测试人员会有一种对bug特别的敏感和感觉。有时即使还不晓得错在哪儿,就是感觉有问题,即所谓的"smell not good"。当发现这种问题苗头,会坚韧不拔,直到找出了问题之所在。当然这需靠经验的积累和培养形成的。
相反那些还没有达到专业高度的软件测试人员往往会对问题视而不见。
不断的创新、改进
测试往往会是重复的和枯燥的。一个好的专业的软件测试人员会在每天的重复工作中发现工作中的规律,思考如何改进这些重复的和枯燥工作,以提高效率并让自己工作更有趣些,最终发明和创新更有效的方法和流程来工作,把测试做的更快更好。
我想如果我们能够有目的的来培养我们测试的修养,做个好的软件测试人员就不难了。而这样的测试人员正是中国软件行业所缺乏的和急需的。