面向开发人员的测试 - 如何避免周五下午 5 点的错误

2024-03-24   出处: dev.to  作/译者:Alicia Marianne/Mint

测试是每个从事技术工作的人日常生活中都会遇到的事情,但是,对于一些开发人员来说,当他们听到 “QA 正在测试 “这句话时,他们就知道很可能会在周五下午 5 点收到一条信息,要求他们修复一个找不到的 bug。我写这篇文章就是为了帮你避免或者至少减少这种情况的发生。

为什么需要测试?

我们已经知道测试的重要性,但是,为什么在软件开发中测试如此重要呢?为什么我的团队需要一个人来做这件事(QA、测试员)?要理解这一点,我们需要回到过去的故事中去。

工业革命之后,确切地说,是在1914 年,我们亲爱的朋友亨利-福特创造了著名的福特主义。福特主义是 20 世纪经济发展的一个特定阶段。福特主义一词被广泛用于描述 20 世纪初由福特汽车公司开创的大规模生产体系。

这些公司开始大规模生产大量产品,在这种情况下,随之而来的对制造过程中质量下降的担忧就出现了。因此,这些公司开始考虑在生产过程中进行 “测试”。经过多年的发展,技术也在不断进步,而到了我们这一代,如果有一个按钮不能单击,公司可能就会因此损失数十亿美元。因此,很显然,在向用户提供软件之前,需要对软件进行测试。

我需要测试什么?

所有东西。是的,一切。但我们知道,在开发过程中这是不可能实现的。开始思考需要测试什么的简单方法是:我的软件需要交付的最重要功能是什么?

也许,读到这里,你已经知道什么应该在你的软件上运行了,很好。但仅仅是这样吗?你可能会想:“我已经这样做了,但bug并没有杜绝。”

让我们举一个web应用程序的例子: 假设你有一个网站,用户可以在里面执行以下三个操作:

  • 注册
  • 登录
  • 退出登录

好的,通过上面的问题,我们知道了主要功能:

  • 用户应该能够注册、登录和退出登录

有时,与其他QA一起工作时,我们会说,我们需要把用户想象成一个 5 岁的孩子,手里拿着键盘或手机,正在使用我的应用程序。是的,我们知道这很可能不会发生,但有了这种思维模式,我们可以开始考虑其他情况。我们需要审视我们的应用程序,并开始提出不同的问题,比如:

  • 用户在登录时进行了一个不合理的输入,我的应用程序会发生什么情况?用户在输入错误信息时,会有什么反应?
  • 用户输入了错误的密码?

  • 用户多次点击按钮?

当我们使用 “孩子策略”(我们会使用这个术语)时,我们开始考虑的不仅仅是 “我需要如何编写代码”,而是 “我如何编写代码才能让用户在使用我的软件时获得良好体验?

在开发过程中如何进行测试

既然我们知道了测试的重要性以及如何开始测试,我们就可以开始思考开发人员如何在开发过程中进行测试了。在前面的例子中,我们讨论的是一个简单的项目,但在现实生活中,软件有很多功能,可能你的积压工作中也有很多任务要做,这里有一些技巧可以帮助你轻松地将其付诸实践:

  • 举例说明: 当您接到任何任务时,请询问如何测试它的示例。不要只关注最基本的问题,还要询问不同的场景,会有哪些反应,以及是否会发生这种情况。我建议去搜索 BDD(行为驱动开发)方法,这样你就可以使用 Gherkin 语言来跟踪这些场景。

如何使用 BDD 和 Gherkin 的示例:

Feature: Make login

  Scenario: Make login with success
    Given I want to make a login
    When I input a valid user and password
    Then I'm redirected to the home page

  Scenario: Make login with an invalid user
    Given I want to make a login
    When I input an invalid user with a valid password
    Then I receive the message 'wrong user'
  • 使用 TDD(测试驱动开发)编写代码:这是敏捷开发实践的核心,包括首先创建测试(单元测试),编写代码以使测试通过,然后重构代码。这种做法有助于团队更好地设计代码。

  • API、用户界面的自动化测试: 自动化测试是一种强大的策略,可以确保一切工作都符合预期。在对功能进行自动化测试时,请记住使用良好的实践方法,询问该测试是否对团队有用,是否能快速得到结果。在创建测试时,您可以参考测试金字塔模型。
  • 探索性测试: 基本上就是以用户身份浏览应用程序。这是一种很好的做法,这样你就能够了解软件是如何工作的,哪些地方需要改进,哪些地方是不起作用的。

其中最重要的是提问!在软件开发工作中,没有什么问题是愚蠢的。

本文基于《敏捷测试: 敏捷测试:测试人员和敏捷团队实用指南》一书,以及我作为一名质量保证员所注意到的实践。希望这些内容对您有用!


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
179° /1790 人阅读/0 条评论 发表评论

登录 后发表评论