加速学习
正如特性和产品无法单独工作一样,它们也无法保持一成不变。产品和技术以比以前任何时候都快的速度向前发展。优秀的测试人员将不断地学习,更重要的是,需要快速地学习。SVT 测试人员的学习环境非常具有挑战性。通常在该特性尚处于设计阶段时,没有可用的文档,代码库可能很不稳定,但是 SVT 测试人员必须对其进行研究。当他们开始真正理解该特性时,发布日期已迫在眉睫。所以,许多 SVT 测试人员根据经验、通过反复试验来了解相关的特性。尽管这通常是一种有效的学习方式,但是对于测试人员来说,仅仅依靠这种单一的学习机制还是不够的,因为这样难以分辨特性的行为是来自于设计还是由错误产生的。这还隐含着另外一个危险,是否将来自开发人员的所有信息都认为是正确无误的,对于这一点,我更倾向于作一名学生。
一种更好的学习方法是从该特性打算解决的问题入手,无论它是业务问题或是技术问题,然后了解该特性如何解决问题的关键思想。特性的功能表现了这些关键思想的具体形式。换句话说,优秀的 SVT 测试人员将用更多的时间来研究问题,而不是解决方案。测试是一种度量用该特性作为问题解决方案的能力的方法。
开发测试场景
SVT 测试人员开发出好的测试场景,以便高效地演习该特性,这需要全面地了解特性及其相关的特性、以及它打算解决的问题。大多数情况下,测试场景无法按照最初的预期工作。这正是测试的目的,即找出具体的问题。优秀的 SVT 测试人员能够分析系统中每个组件所扮演的角色、确定问题、找出系统中的瓶颈、收集相关的证据以证实他们的预测。如果系统的行为继续与预期相反,测试人员可以重新设计测试方案或对该特性的设计提出质疑。总之,优秀的 SVT 测试人员同时也是优秀的 系统分析师。例如,我们的一个测试应用程序着重对 J2EE 功能(如 EJB 组件、Web 服务,等等)进行测试。然而,该系统在数据访问逻辑中存在瓶颈,所以当 CPU 使用率较高时,这个测试场景就成了压力测试,尽管压力特性并不是这项测试的任务。
权衡 风险和实用性
所有测试人员常常面对的另一个挑战是实用性和优先顺序设置。通常,几乎不可能测试“所有情况”。可以进行测试的整个范围通常太大,难以在给定的时间内完成测试工作,当多个特性组合在一起时测试的范围将变得更大,其排列组合呈指数上升。对于中间件产品,如 WebSphere Application Server,您可以在其基础上构建各种应用程序。应用程序的设计方式是无限的。因此,问题变成了如何对测试场景进行优先顺序设置,以及多少测试工作能够实现成本和效益之间的最优化。这仍然取决于客户价值、技术采用周期和该特性打算解决的问题。然而,优先顺序可能被取消,重要的测试场景可能缺失,所以始终存在着一定的不确定性,但是优秀的 SVT 测试人员将注意到危险的存在、积极地确定相关的危险、并根据进展的情况对它们进行管理。在产品发布之前,他们记录下假设和遗漏之处,并在发布之后,根据客户反馈信息进行确认和修正。通过使用经过证实的 SVT 方法学中的检查、平衡和预防措施,最终将弥补这种内在的不确定性。
测试人员应该是 程序员
我坚信,优秀的 SVT 测试人员应该是优秀的程序员,并且我这样认为是出于下面几个原因:
◆除非使用某种技术,否则无法完整地理解它。
◆如果没有基本编程技能,测试人员无法进行研究、调试、并逐步确定问题的根本原因,而这将帮助开发人员更好地解决问题。
◆测试人员需要具有足够的编程技能,以便与开发人员进行有效交流,并且可能更重要的是,赢得开发团体的尊重。
根据我的经验,对于那些不具备很好的编程技能的测试人员,他们的测试效率比较低,并且他们的意见也常常被开发人员忽视,而对于那些具有很好的编程技能的测试人员,他们可以更快地解决问题,并且他们的反馈信息也得到更高的重视。
毫无疑问,编程技能对于中间件产品的测试人员来说非常重要,但是对于那些从事最终用户产品测试的测试人员来说,技术技能同样非常重要。所有的软件产品都在不断地发展,回归测试的成本也相应地越来越高。没有合适的自动化测试方法,就难以可靠地再现测试的结果并进行高效地回归。随着产品的成熟和客户基础的增加,回归测试的成本变得非常高,以至于如果不实现各种测试工作的自动化,那么最终将阻碍产品的革新和深入的改进。没有合适的编程技能的支持,开发和维护自动化的测试场景将可能付出很大的代价,甚至还不如手动测试经济。重复性的手动回归测试不仅使得测试任务变得乏味,而且代价高昂,以至于管理人员必须面对回归测试、新的测试或服务成本之间的艰难抉择。
做一名具有外交能力的伙伴
最后一点也非常重要,一名优秀的 SVT 测试人员需要各种素质技能:交流、协商、和人际关系技巧。对于任何工作来说这些都是非常重要的,许多人可能不会将这些技能与 软件测试联系起来,但是对于测试人员来说,这些也是非常重要的技能,因为他们的主要工作是使别人相信的确有些地方需要进行修改。开发人员的目标是创建产品,而测试人员的目标是找到出现问题的地方。优秀的测试人员将能够清楚地交流问题,有策略地协商更改事项,并且有效地消除各种不同的意见,而不会制造紧张气氛。优秀的 SVT 测试人员不会仅按照开发人员的指导进行工作,相反,他们是开发人员真正的伙伴,共同使得产品更加完善。
结束语
总的说来,优秀的 SVT 测试人员具有对每种特性所提供的客户价值的深入认识,并将这些价值作为测试工作的核心,即使这意味着必须完成更多的工作。测试人员不仅仅善于快速地学习,而且从学习过程的开始到结束,他们一直关心着这些特性需要处理的问题。他们小心翼翼地管理危险并证实假设,他们是优秀的 系统分析师和 程序员,并且他们具有高超的交流、协商和人际关系技巧。
可以将责任进行划分,一个人不可能拥有所有这些技能。但这是一项挑战,谁能说测试工作是简单的呢?作为 SVT 测试管理人员,我工作中最重要的部分是获得并培养自己的这些技能,并为我的 团队提供帮助。SVT 测试工作比大多数人想象的更加复杂,我希望本文可以帮助说明测试任务的范围,以及很好地完成这些任务所需的各种技能。我希望那些已经具备了这些技能的人不要认为他或她非常优秀而不愿意成为测试人员,并且能够意识到在开发周期中,测试工作是专门的并且非常重要的一部分。
文章来源于领测软件测试网 https://www.ltesting.net/