本文的作者Sriram Krishnan是一名程序员,曾在Yahoo和微软工作过,开发过很多软件,曾被纽约时报报道,写过一本书,本文是他的一篇博客。
这些年来,我对测试工作、测试人员,以及整个软件质量管理体系形成了一些明确的观点。受一篇关于Facebook的测试的帖子的启发,我想把这些写下来,用以拿给人看。有些观点是有争议的。事实上,即使在交谈中稍微表现出这样的看法,都会招致人们的鄙视。
- 大多数的开发团队并不需要一个独立的测试角色。即使有一个,他的所有的开发时间比上所有的测试时间应该 >20:1。证据吗?光看看一些从古至今最成功的软件开发团队就知道了。不论是当今的Facebook,还是30年前最初的NT团队,很多伟大的产品都是出自没有或很少测试人员的团队。
- 开发人员应该测试自己的代码。没什么可说的。背后的道理并不重要。这包括单元测试,全覆盖的自动化测试或手工测试或组合测试。如果你的开发人员不能/不愿意或认为这“不归我管”,那你需要更好的程序员。
- 我有一些政治上不正确的话要说。一些大型的软件开发公司会从一些不能胜任开发工作的程序员中选择测试人员。我经历/听说过很多在面试开发人员过程中有人说“他/她做开发不行。也许可以做测试?”这导致了一个被广泛默认,但很少公开宣称的认识:做测试的不如做开发的聪明。正是由于这普遍的偏见,少数一些对质量和测试工作极具热情和天赋的人受到了不公平的待遇。我知道他们,因为我曾经和一些这样的人一起工作过。
- 追求代码测试覆盖率是危险的。因为它很容易测量,它经常会变成真正目标的替代品——开发有质量的软件。如果你的开发团队把功夫都用在写愚蠢的测试,来覆盖每一个罕有能用到的代码路径——因为这些数据会出现在一些报告里——你有问题了。测试覆盖率只是我们用的的很多指标中的一个,你需要使用它,但并不是因为它以自然的数字呈现,它就能压倒其它指标。它成了古德哈特定律的牺牲品。
- 我也曾看到有些公司里有独立的测试人员,他们写出非常好的测试代码。不幸的是,这被人们当成了一种常识,即使是在根本不需要这样的时候。
- 正像测试覆盖率被过度使用,有些质量指标是被忽略轻视了。比如:过程中产生了多少技术支持邮件?自己是否在任何时候都在真正的使用自己的产品,检测里面的问题?分析从生产环境和客户安装那里产生的日志文件。所有的这些策略都在上面的Facebook的帖子里有提到过。
- 技术领导的一个常见的减少测试队伍的体积的办法是做自动化测试。这是个巨大的错误。如果你有一个用户直接接触的产品,你绝对需要用人眼去测试它。如果你和微软Windows团队的人坐下来一起和咖啡,你会听到他们抱怨过度依赖自动化测试导致了Windows Vista大量的bug。这个错误说明的问题就是:你需要一个全职的测试人员来使用你的产品。
[本文英文原文链接:On testers and testing ]
分享到:
相关推荐
Lisa Crispin 和 Janet Gregory 是敏捷测试领域的权威专家,她们在《敏捷软件测试:测试人员与敏捷团队的实践指南》一书中详细阐述了敏捷测试的实践方法、理念以及测试人员在敏捷开发中的角色和职责。 在敏捷测试中...
管理员会预先配置好测试人员的权限,包括创建(Create)、编辑(Edit)和关闭(Close Issue)问题,以及解决问题(Resolve Issues)和进行状态转换(Transition Issues)等关键操作。 创建BUG单是测试人员工作的...
上周末去参加了第二届(杭州)互联网测试技术交流会,下午结束了以后有个小型的交流会,会中淘宝的郭芙在自我介绍的时候提出了一个问题,就是开发人员与测试人员比例多少才是合适的呢?这个话题引起了各位嘉宾们的踊跃...
本资源摘要信息是关于测试人员面试题的相关知识点,涵盖了软件测试的重要性、测试类型、测试方法、测试设计等方面的知识点。 一、软件测试的重要性 软件测试是软件开发过程中的一个关键步骤,它可以确保软件的质量...
测试人员绩效评价标准是对测试人员工作绩效和工作能力的客观评价依据。本文档涵盖了测试人员的多方面能力,包括测试技能、测试文档质量、测试技能以外的综合能力等。以下是从标题、描述、标签和部分内容中生成的相关...
多数情况下,测试人员工作量大,比开发人员忙,所以想寻求一个数据,来说服其公司,多招些测试人员。有些专家说,根据调查结果发现通常的比 许多公司领导总是希望得到一个合理的比例,然后按这个比例分配招聘的名额...
软件测试人员是一名复杂的角色,需要具备多方面的技能和知识。以下是软件测试人员所需要具备的七个方面的技能: 一、操作系统和网络基础知识 软件测试人员需要熟练掌握Windows、Linux、Unix等大型主流操作系统的...
同时,敏捷开发和DevOps文化的普及,使得测试人员有机会更早地参与到软件开发过程中,成为团队的核心成员,提升其影响力和价值。 然而,机遇伴随着挑战。测试人员需要持续学习新的测试工具和技术,以适应快速变化的...
测试人员的角色至关重要,他们负责发现和修复潜在的错误,保证软件的稳定性和可靠性。以下是对“软件测试人员必备素质”的详细阐述: 首先,测试人员的责任心是其核心素质。责任心是驱动测试人员对每一个测试步骤都...
面试中,测试人员需要展示他们的专业技能和实践经验。以下是一些针对软件测试人员面试的常见考题及对应的知识点详解: 1. **为什么在一个团队中开展软件测试工作?** 软件测试是为了发现并修复程序中的错误、遗漏...
软件测试管理中测试人员如何保证软件质量保证软件质量是客户第一价值观的重要体现,作为软件产品的测试人员如何保证软件质量呢,通过对项目过程的实践与分析,我总结了如下几点:1.遵守规范:项目各阶段包括PRD、...
软件测试人员绩效考核标准
ISTQB认证体系在全球范围内被广泛认可,旨在通过认证考试来确保测试人员具备一定的软件测试基础知识和技能。在本节中,我们将从给出的内容出发,详细说明ISTQB测试人员初级认证的相关知识点。 首先,文档提及的2019...
测试人员在CMMI评审中扮演着关键角色,他们的工作质量和效率直接影响到项目的成功。以下是一些针对测试人员在CMMI评审中的常见问题和相关知识点: 1. **评审流程参与**:测试人员需要了解并参与各种评审活动,包括...
最后,测试人员评估整个测试过程的有效性和效率,识别任何未解决的问题和潜在风险。他们准备《遗留问题风险分析报告》,评估未修复缺陷的影响;通过《度量分析报告》提供测试过程的度量数据,如测试覆盖率、缺陷发现...
- 高级测试工程师/程序分析员:这一级别的测试人员不仅要精通各种测试技术和工具,还要参与制定测试策略和标准,对测试流程提出改进意见,同时可能需要指导初级测试工程师的工作。 - 专家级测试工程师:如自动化...