我的团队使用一种语言编写代码,我想使用另一种语言进行测试。会出什么问题?

软件测试 团队 自我教育
2022-01-31 19:47:05

与我一起工作的人是 .NET 程序员,他们还没有完全加入 BDD/TDD 潮流。我是主要的网页设计师,但在过去的几个月里,我也被分配了测试员的角色(是的,我们是一家小公司)。

我想开始结合一些自动化测试,经过一些研究后,我更喜欢 Watir/Cucumber 和其他基于 Ruby 的工具。

现在我只测试 GUI 以及某些权限(例如,如果我以用户身份登录,请确保我看不到管理员看到的内容等),因此我预计我使用的语言不会有任何冲突。此外,Ruby 感觉比 C#/.NET 更容易学习。

但是我想知道我是否缺少任何东西以及学习基于 .NET 的测试工具是否会更容易?

4个回答

如果您是唯一的测试人员,并且可能会持续一段时间,那么选择您个人喜欢的任何工具可能并不重要。

但是,如果期望其他程序员会为测试自动化做出贡献,那么您也应该考虑他们的需求和偏好。

再说一次,当你的公司发展到足够大时,你可能会雇佣一些专门的测试人员,他们无论如何都会做出自己的测试自动化选择。

我同意该语言通常无关紧要,但有一个警告:由于该产品是在 .Net 中编码的,因此您可能会查看 Microsoft 包含在 VS 测试版中的最新测试工具。主要优点是可以在 TFS 中管理测试和测试文档,随着时间的推移,利用它可能会有所帮助。仅在一个人的机器上运行的测试和测试文档是非常脆弱的东西。

我非常支持在我的自动化测试和产品代码之间移除尽可能多的抽象层。

Ruby 或其他脚本语言目前可能看起来不错,但如果您的测试自动化扩展到模拟操作 GUI 元素之外,您可能会发现 C# 可能是更好的选择,首先有以下几个原因:

  • 性能,C# 比许多脚本语言更高效。现在可能看起来并不重要,但随着测试库的增长,运行套件所需的时间可能很重要。
  • 通过协作,开发人员可以审查和运行自动化测试。能够“插入”到开发单元测试或其他测试工具允许您将测试推向上游
  • 能力,用 C# 编写测试自动化可以使用反射来访问部分产品代码,以提高整体测试效率并减少误报。

你可能还想看看这里

最后一个想法...与您的开发团队交谈并获得他们的意见。也许 Ruby(或其他语言)足以满足公司的需求。此外,请考虑公司未来的潜在增长以及在可预见的未来需求可能发生的变化。

我的回答是最喜欢的:这取决于。如果您正在寻找黑盒回归,那么语言并不重要,尽管它确实有助于让其他程序员了解您正在使用自动化测试做什么,他们可以帮助编写它或帮助调试它。如果您正在寻找构建单元测试,您最好使用与代码相同的语言。

此外,很大程度上取决于您的测试目的。如果您的 GUI 发展迅速,您可能更愿意从事数据处理的幕后验证工作。如果 GUI 很重要,快速可视化是否更快,或者您是否需要对显示的组件进行广泛验证?

我建议您不要拘泥于您使用的语言 - 首先确定您的应用程序的哪个方面最需要自动化测试,然后为您提供最有效的工具来执行该测试。可以学习语言,无论是脚本语言、伪英语测试定义语言还是经典编程语言之一(或其他任何相关的语言)。

我希望这可以帮助您找到一个好的起点。