代码之家  ›  专栏  ›  技术社区  ›  Mark Simpson

自动化测试:帮助和教育开发人员的方法?[关闭]

  •  5
  • Mark Simpson  · 技术社区  · 15 年前

    我是一个嵌入开发团队的软件测试工程师。我的大部分工作涉及检查项目的自动化测试(主要是单元/集成测试)的状态。

    我不是一个目光短浅的狂热者,他想强迫每个人都接受测试,但我 想帮助每个人充分利用他们花在写测试上的时间。每周都要花大量的时间编写测试,因此最大限度地提高回报率是很重要的。

    现在,我做了一些尝试和帮助。首先,我总是让自己可以谈论可测试性问题。例如,试着确定一个测试策略,一个特定的设计是否可以测试等等。

    除了向人们解释事情并试图帮助他们,我还回顾了完成的代码和他们编写的测试(我必须在故事上签字,这意味着我也有点反对)。

    我目前的流程是单独坐下来,完成他们的代码和书签,并对所有问题区域、可以改进的地方和原因进行注释。然后我把开发人员带到我的电脑旁,讨论所有的审查要点。然后我给他们寄去一份像样的报告,这样他们就有了一份记录,而且他们很容易参考。

    我愿意 修复它们的代码和测试,但是如果我发现了缺口,我会添加更多的测试用例等。我决定不为他们准备测试的原因是,开发人员很容易说“谢谢”,但却忽略了。我的理由是,如果他们必须在我签字之前解决我发现的问题,这将导致更好的项目测试标准(即,更多自给自足的开发人员测试)。

    我的问题是:当涉及到帮助团队时,我能做得更好吗?你发现哪些方法是有益的?

    我特别希望听到有类似职位的人面对同样的挑战(例如帮助提高测试质量,证明价值测试可以带来相关的情况,并在支持和反对之间取得良好的平衡)。

    *编辑 : 谢谢你的回答;所有的答案都包含有用的建议。我把最上面的一个标记为最好的答案,因为我想这取决于开发人员的支持,而结对编程是我还没有尝试过的东西(除了一些即兴的“以下是我在编写测试之后如何做的”演示)。我会和任何一个在测试中挣扎的人一起尝试的:)干杯。

    4 回复  |  直到 11 年前
        1
  •  5
  •   James Black    15 年前

    如果你有某些人在测试方面往往很弱,那么你可以和他们坐下来,结对编程,某种程度上,当他们处理他们的代码时,你可以帮助他们了解如何测试它。

    过一段时间后,这些人应该在单元测试方面做得更好,并且您在这方面的工作负载应该减少。

    另一件事是每个人都应该看测试。如果我触摸一个函数,做任何更改,那么我应该检查测试以确保它们是完整的。如果有问题,我可以和开发人员讨论。

    您还应该争取团队领导的工作,因为这是他职责的一部分,或者应该是,以确保每个人都理解如何编写好测试。

        2
  •  1
  •   tddmonkey    15 年前

    我会做一些事情:

    1. 让他们运行覆盖范围并找出任何遗漏的代码区域,并强调尽管他们认为已经覆盖了所有的案例,但他们可能没有。我和一些人做过这个,他们总是对他们认为他们写了水密测试而错过的领域感到非常惊讶。
    2. 在当地的wiki上创建一个“食谱”页面。每当有人想出一个他们无法理解或需要你帮助的测试方案,就把它放在wiki上,让它很容易找到。让其他人也参与其中
    3. 听起来你已经这样做了,但是要确保当任何人有与测试相关的问题时, 让自己有空 即使这会损害你正常的工作量。如果你对它充满热情,它也应该激励那些有兴趣做正确事情的人。

    当我向某人介绍测试(或者一种新的测试技术)时,我经常会花大量的时间随机地闲逛到他们的工作站,看看他们是如何发展的,并将他们推向正确的方向。当你去喝茶或抽烟的时候,或者当你在做一个建筑的时候,这可以很好地适应。我对此有很好的反馈,但是YMMV。

        3
  •  1
  •   JB King    15 年前

    根据团队的规模,我想知道在对代码进行初步审查后,是否有必要将其他人吸引到另一组眼睛中去,这样可以查看您提出的更改,并作为一种方式来表明这不仅仅是您对它的意见。这可以作为一种方式来强调在什么变化方面可能会有一些紧张,你希望看到开发人员可能会回答,“哦,这需要几周时间,而且很可能不值得……”或者类似的事情,如果你想改变的不是那么简单的话。

    在类似的情况下,大多数团队如何看待测试?有没有领导或那些高度尊敬的人对它有积极的看法,并有助于培养一种积极的态度?是否有关于测试指南的一般文档可以帮助团队中的新成员快速跟上速度?这些只是我要检查的其他几个方面,因为有时候测试是一件很好的事情,有时候测试是一件痛苦的事情。很像半空或半满的玻璃杯,这取决于你想看到它的样子。

    不是说我有相同的职位,而是作为一个开发人员已经有一段时间了,这正是我希望看到的帮助使测试成为一件好事,正如玛莎·斯图尔特所说。

        4
  •  1
  •   trafalmadorian    14 年前

    让团队轻松开始测试的一个方法是在修复错误时启动编写测试的实践。所以当一个bug出现时,首先要做的是编写一个测试,因为这个bug而失败,修复这个bug,然后让测试通过。

    这种方法也可以在内部修改代码(没有公共API更改)时完成——编写测试来覆盖正在修改的区域,以确保代码更改不会破坏它。以这种方式编写测试的工作量要少得多,而且一旦开发人员发现了他们的第一个回归错误,就可以清楚地展示其好处。