软件测试分析与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 软件测试工程师应具备的素质

作为一名合格的软件测试工程师,不仅需要具备扎实的计算机专业知识和软件测试专业知识,还应积极研究和了解被测软件所属行业领域的相关业务知识,形成复合型的人才知识结构,这也是软件测试发展对软件测试人员提出的现实要求。同时,软件测试行业和其他行业一样,也需要从业人员具有良好的职业素养,以及细致认真的工作态度、积极向上的工作热情,只有这样,才能确保软件质量,快速、高效地完成软件测试工作。

因此,软件测试工程师应具备的素质主要体现在三个方面,即计算机及软件测试的基础知识方面、行业领域的业务知识方面和职业素养方面。

1.计算机及软件测试的基础知识方面

显然,熟悉并掌握相关的计算机及软件测试基础知识是所有从事软件测试的工程师必备的专业技能之一,也是开展软件测试工作的首要前提。俗话说“隔行如隔山”,对一个没有任何IT知识背景的人来说,要想从事软件测试工作并成为一名很好的软件测试工程师,恐怕会面临很多的麻烦,毕竟,软件测试是为了找出软件研发和运行过程中可能出现的各种缺陷,这就要求我们对软件研发、软件运行及其附属的各种软、硬件平台都不能太陌生,否则,将无法开展相关的软件测试工作,或者至少不能做出专业、高效的判断。

当前,软件测试已经发展成为一个很有潜力的专业,要想成为一名优秀的软件测试工程师,首先应该具有扎实的软件测试专业基础知识。软件测试专业基础知识涉及的范围很广,既包括黑盒测试、白盒测试等测试方法和测试用例设计技术,又包括测试团队管理、测试流程管理等测试项目管理知识,还包括对各种自动化测试工具的应用,如白盒测试工具、性能测试工具、安全测试工具等。只有深入了解并掌握了这些软件测试相关的基础知识,在开展软件测试工作时,才能做到有条不紊、得心应手。

为了进一步发现软件研发过程中的逻辑错误,特别是如果你还参与部分白盒测试工作,或者作为企业内部测试人员,要协助指出软件编程中的缺陷的话,那么具备良好的软件编程能力就是必需的了。软件编程能力在很大程度上也应该是软件测试人员的必备技能之一,在国外很多大型IT企业中,测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有具备编写程序的能力,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。

此外,由于软件测试中经常需要配置、调试各种测试环境,搭建软件运行平台,如果是性能测试工程师,那么还需要根据测试数据对软件运行情况(包括软件本身及其各种运行平台,如网络、操作系统、数据库资源使用情况)进行分析与调优,因此,测试人员需要掌握更多关于网络、操作系统、数据库的知识。在网络方面,测试人员应该掌握基本的网络协议及网络工作原理,尤其要掌握一些网络环境的配置。这些都是测试工作中经常要用到的知识。在操作系统和中间件方面,应该掌握操作系统和中间件的基本使用及安装、配置等。而数据库知识则是更应该掌握的技能,现在的应用系统几乎离不开数据库。因此,软件测试工程师不仅要掌握基本的安装、配置知识,还要掌握SQL语句的使用,便于数据检索和检查、测试数据准备等。

总之,作为一名测试人员,尽管不能精通所有计算机相关知识,但要想成为一名优秀的软件测试工程师,应该尽可能地去学习更多的与测试工作相关的知识。

2.行业领域的业务知识方面

行业主要指测试人员所在单位和企业研发的软件产品面向的应用领域,如金融、电信、烟草、广电、电子商务、政府、军工等。这些领域都有自己特定的业务处理逻辑、特殊的行业习惯用语,以及长期形成的业务运行规则和用户使用习惯等。同时,如果行业不一样,那么对软件产品的质量要求可能也不一样,有的更关注软件的用户使用体验,有的更注重软件产品的运行性能,有的尤其注重软件运行的可靠性和安全性等。不同的行业对软件测试的详细程度要求也不一样。例如,对一般的办公系统而言,更强调业务流程的符合性和正确性;对金融、电信系统而言,数据处理的正确性和运行性能无疑是一个关键点;对军用软件而言,软件运行的正确性和代码的可靠性是重点。

因此,了解这些行业领域对应的业务知识和软件测试要求,可以更好地促进测试人员正确认识被测软件的产品,合理规划测试计划和编写测试用例,更好地完成测试工作。

可以说,软件产品对应的这些行业知识是软件测试人员做好测试工作的一个前提条件,只有深入地了解了被测软件的产品业务流程和业务需求,才可以及时判断开发人员实现的产品功能是否正确,以及是否可以适应实际业务的使用需求。

很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断用户的业务需求是否得到了实现。

当然,行业领域的业务知识与工作经验有一定的关系,可以通过在项目测试过程中与委托方、软件承研方多多交流,及时学习和总结,必要时可以聘请专业的业务人员进行业务知识讲解来完成知识积累。一般来说,只要善于学习、多经历几个类似的项目,掌握行业内的一般业务知识应该是可以的。如果要特别深入研究一个行业的业务,成为这个领域的业务测试专家,那么就得付出长期的代价,只有经过长时间的积累才能实现。

3.职业素养方面

良好的职业素养不仅是软件测试人员应该具备的基本素质,还是所有行业的从业人员应该遵循的职业要求。其实对任何一个行业而言,从业者都必须具备细致认真的工作态度、积极向上的工作热情,只有这样,才能及时、高效地完成本职工作。

因此,软件测试工程师也不能例外,也必须遵循一些基本的职业素养。一般来说,一名优秀的软件测试工程师,首先要对测试工作有兴趣,测试工作很多时候是有些枯燥的,因此,只有热爱测试工作,才更容易做好测试工作。另外还必须具有责任心、谨慎细心、认真专心,同时,要善于沟通,能够及时总结和交流等。

责任心是做好一切工作必备的素质之一,软件测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,那么就会把一个存在很多隐患的软件产品直接交到最终用户手上,一旦软件在具体使用中出现了缺陷,将会给用户造成直接损失。这种损失对于一般的产品,可能是经济损失和声誉损失;对于武器装备软件,可能是战士的生命,甚至国家的安危,因此,测试工程师必须严把测试关,以高度的责任心面对所有的测试工作。

谨慎细心是指做测试工作需要思维严密,什么问题都要考虑到。对于软件运行中的每个细节过程,都要给予关注,确保完成预期的业务要求,不可以忽略一些细节。软件测试是一项细致的工作,软件测试工程师必须沉下心来,全面思考,最大限度地再现用户可能的应用场景,只有这样,才能发现更多的软件缺陷,提高软件质量。

认真专心是指测试人员在开展测试工作、执行项目测试任务的过程中,要专心致志,不能一心二用。经验表明,高度集中精神不仅能够提高效率,还能发现更多的软件缺陷,业绩最好的往往是团队中做事精力最集中的那些成员。

善于沟通、及时总结和交流是指测试人员应该与软件产品的所有关联方积极展开交流与沟通,包括软件用户方、软件使用方、软件承研方、项目测试委托方等,还包括软件测试团队的内部组成人员等。这些都是需要积极沟通的对象,而且在面对不同人员时,需要有不同的语气、不同的态度。例如,与用户方沟通要多了解他们对测试的要求及软件产品的使用需求等,与研发人员沟通要多描述问题的现象和本质,就事论事,不要掺杂其他的个人感情色彩,避免激化与研发人员的矛盾等。

以上是软件测试工程师应该具备的一些基本职业素质,当然,要想成为一名优秀的软件测试工程师,要想让自己的职业生涯实现更好的发展,还应该具有很多其他的职业素养,如团队合作、积极奉献、敢于承担责任和自我督促等。