欢迎光临散文网 会员登陆 & 注册

软件测试 | 理解程序员怎样思考

2023-05-14 17:39 作者:爱测软件测试  | 我要投稿

我们三人在专门从事软件测试之前都当过程序员。我们现在仍然写代码。我们的经历影响着我们对程序员的理解,影响着我们作为测试员的工作方式,影响着我们与程序员的协作。

程序员和测试员是在不同条件下工作的,扮演不同的角色。在这些角色中,我们以不同的方式思考自己的工作。如果能够考虑到测试员和程序员在观点和方法上的一般差别,会使自己的工作更有效。

测试员了解如何与程序员交互的最好方法,是成为一名程序员,并且在一段时间内承担与其他程序员一样的工作。把自己编写的一些产品代码拿来测试,让测试员、用户、经理和其他程序员批评、责备和表扬。从这种体验中得到的认识是我们在本章中的任何讨论所不能提供的。

这里所做的归纳会对不同的人有不同的作用。我们迫切希望读者逐渐理解自己要与之打交到的人,而不是主要依靠以下这些观察。

大多数程序员都很专一。程序员常常关注子系统或模型,依靠的是其代码必须与之交互的其他系统要素的粗略信息。形成对比的是,对于要测试的系统,测试员常常是多面手。为了更好地测试,测试员必须理解程序的各个部分如何组合在一起,并必须能够向与之打交道的程序员提供完整系统的信息。

程序员关注自己的系统理论。程序员拥有说明系统组件如何关联,哪个组件是可靠的,以及错误如何传播的模型。他们必须使用头脑中的模型。当程序员告诉测试员所报告的程序错误不会发生时,他们并不是说不会有错误,而是说这种错误与他们的模型不匹配,他们相信模型是没有问题的。测试员关注的是观察和证据,要检验他们的模型。应仔细做记录,在报告中集中说明实际看到了什么,并让程序员根据他们自己的推断找出缺陷。

程序设计是一种复杂活动。程序员耗费了很大一部分精力只是为了理解他们所构建的系统。这种思想集中常常使程序员只关注他们认为是重要的东西,并会对别人的打扰感到不耐烦。

程序员常常要与各种困难做斗争。程序员要对付模糊和不断变更的需求,有很多问题的工具和组件技术,以及不断被打扰的工作环境。

很多程序员不喜欢例行工作,常常构建工具和脚本来自动化自己所面临的重复性工作。很多人都把测试看做是重复性工作,因此自然应该自动化。他们会提出如果测试不自动化测试就会出现什么问题。不要被他们的话打动。不要把尝试自动化测试当做赢得程序员尊重的一种方法。还有一些更好的方法。


软件测试 | 理解程序员怎样思考的评论 (共 条)

分享到微博请遵守国家法律