如果我们直接问自己以下问题——谁负责软件质量,我们首先想到的就是——当然是测试人员!但这并不像看起来那么容易。
IT领域有几个特点,总是发生在软件测试的最后阶段,就在它发布之前。它们使我们不仅从软件的技术质量保证的角度来考虑测试,而且还将其作为软件开发和实施的特定阶段的一部分。
开发人员应该测试他们的代码吗?
开发人员知道他/她的代码运行中的所有细节和陷阱。这些知识比开始研究测试环境的测试人员的知识更大、更重要。
如果开发人员知道产品的弱点在哪里,而测试人员没有看到这一点,那么他/她绝对应该提到这一点。因此,QA 工程师会欣赏这一点,开发人员不需要额外修复已经开发和准备好的代码。测试人员将通过测试涵盖所有内容,开发人员将无需担心。
反过来,开发人员应该给出一个列表,如果创建了单元测试,这有助于避免不必要的测试,并有助于构建软件测试的各个部分。
至于开发人员对代码进行手动测试的过程,这里应该使用冒烟测试的做法。执行广泛的测试并不重要,您只需要检查软件代码是否适用于某个数据列表并将其传递给测试部门,他们将在那里彻底使用该软件。
如果代码在此阶段不起作用,则无需将其传递给测试人员。作为回报,您只会收到一个巨大的错误报告,其中包含您熟悉的许多缺陷。这只会延迟软件发布。
如果在生产中遗漏了错误,这是测试人员的错吗?
差不太多。当在生产中发现缺陷时,测试部门总是有事情要谈。
事实上,某些错误在生产中异常出现有几个原因:
- 软件的这一部分从未被优先考虑进行测试。有时,人们永远无法考虑在生产中发现的错误。这是开发人员和测试人员之间不正确沟通的结果。对测试软件的这一部分或那部分的方法没有很好的理解。如果您确定软件的一些核心部分尚未被测试覆盖,则应告知开发人员;
- 测试人员没有足够的知识来测试特定部件。这也是两个部门的重要问题。开发人员创建了一个函数,但忘记告诉测试人员其测试的特殊性。如果您作为开发人员看到软件的重要特性,您应该首先通知主要的 QA 工程师。你不能错过这个阶段;
- 开发人员并不关心这一点。开发人员和我们是一样的人。他们每个人都有自己的办公室外生活。有些开发人员不仅重视他/她的工作,而且还关心测试人员检查高质量的软件:他们帮助查找错误,告知测试特性等,有些人并不关心这一点。他们可能不会每天都使用这个软件,他们不在乎会发生什么。换句话说,他们并不真正关心产品在生产中的工作方式;
- 测试人员并不关心这一点。这是硬币的另一面。并非所有测试人员都对他们正在从事的项目感兴趣。他们中的一些人只想快速完成这项工作,创建一个可读的报告并提出一个观点。他们对测试覆盖率的质量并不真正感兴趣,也不想与开发人员沟通。开发人员和 QA 应该始终如一地讨论错误性质,但这种类型的测试人员不会关心此类会议和其他事情;
- 低技能测试人员在项目上工作。造成这种问题的另一个原因是不合格的测试人员在项目上工作。例如,必须执行渗透测试,但经理只有一组手动测试人员。在这种情况下,他们根本不明白他们必须做什么。您应该选择更合格的测试人员或将这项工作传递给开发人员。
- 完全没有研究用户行为。开发人员知道如何开发软件,测试人员知道如何测试它。但是我们应该如何处理用户?因为他们是真实的人类,会不时干扰软件。他们不会打破它。所有人都是不同的,有不同的目标,他们都希望在开发的软件的帮助下实现这一目标。测试人员可以简单地习惯该错误并了解它偶尔出现,因此并不重要。用户不会忍受这一点。如果软件损坏,用户将删除它或忘记并使用另一个。这是真实的生活。在多功能Web产品的开发和测试过程中,用户测试和让测试组参与项目至关重要;
- 通信过程构建不正确。理想情况下,项目应该有一个琐碎的缺陷分类过程,这个过程可以帮助开发人员正确评估测试人员发现的错误(并在修复后简单地确定它们的优先级)。如果存在技术误解,测试人员和开发人员应该开始讨论,以将问题解决在萌芽状态(理想情况下)。如果经理没有建立这样的沟通,双方只会模拟严肃的工作,问题不会得到解决。最后,生产中会出现一个错误;
- 缺乏测试人员。该软件可能很复杂,应同时在多个平台和浏览器上进行检查。很少有测试人员可能还不够。您应该吸引更多的人或找到分配人力资源的方法,以确保一切都经过彻底的测试;
- 开发人员在工作中“听从他们的耳朵”。一家公司可能只有 4 名开发人员,但他们在技术上非常熟练,甚至可以解决最复杂的任务。但是他们只有 4 个,项目太多,有截止日期,他们没有时间与 QA 部门讨论软件。这是发布产品存在如此多错误的一个非常重要且常见的原因;
- 质量不是主要问题。该软件有一些错误。其中一个是可见的,另一个是 - 不是。但是用户不喜欢该软件。评论完全是负面的。为什么会这样?没有人真正有兴趣创造一种非常优质的产品。开发人员编写代码,测试人员进行测试,但他们都没有对质量保证过程给予足够的关注。Web产品开发应该将各部门统一起来,使它们成为一个整体。如果公司不以这种方式工作,那么他们根本不关心软件质量。
结论
在当今的IT领域,软件变得越来越复杂。很容易找到负责任的人。这可能是测试人员、经理或开发人员的错。或者他们都是有罪的。问题是,如果您可能从一开始就对质量负责,则不应搜索负责任的人。