目前,我们正在努力寻找更多的方法来编写更好的代码。当然,这并不排除我们的自动化测试用例。我们已经在开发环境中使用SonarCube和WhiteSource进行测试,以查找分支或主源中可能出现的错误。
我们还希望为测试实现代码质量指南。
发布于 2022-05-19 10:33:01
代码质量指南综述
是的,应用程序和自动化代码对代码质量的要求是不同的。
虽然这两个领域都有一些共同的因素,但重点和优先次序可能有很大的不同。
我做了20年的应用程序开发人员,现在已经做了10年的自动化工程师,并了解到了以下不同之处:
应用程序代码。
一般来说,这里的关键属性是性能,比如一次对成千上万的用户进行优化,所以很多优化都是以性能的名义进行的。此外,模块化、可扩展性和干化也是关键的方法。多线程和内存的使用也是关键因素。
自动化代码。
表现往往不是一个问题。通常情况下,代码作为一个用户使用的方式运行。可读性,虽然在应用程序代码中很重要,但在自动化代码中却变得非常重要。自动化代码可以看作是您的系统的技术规范--文档。确保文档的可读性,用良好的英语编写,对技术含量较低的人来说,是更重要的。另一个不同的例子是行和文件长度,它对于测试代码和自动化代码具有不同的特性。
此外,您还应该了解您的测试数据策略。不过,不要对测试数据过头。有时硬编码静态数据是可以的,即使它重复。注意不要过度使用提取方法和数据干燥方法来牺牲可读性。注意创建的工件,并考虑将它们作为自动化代码清理的一部分移除。
测试不应该共享状态,这意味着它们不应该相互依赖,不应该影响或受其他测试或测试运行顺序的影响。
最后,考虑测试测试,例如确保页面对象没有重复或孤儿。
对于质量代码来说,这两个领域共有的一件事是使用强有力的皮毛规则、代码分级等等。
发布于 2022-05-18 22:24:17
代码是代码,不管是用于特性代码还是测试代码。对我来说,在特性代码和测试代码之间唯一真正不同的是目的、视角和动机。
这意味着,是的,您可以而且应该在测试自动化代码中使用SonarCube和WhiteSource。您可以也应该在这里使用指针。如果有多个人编写测试代码,请确保他们都使用在linter中设置的相同的代码指南规则。
通过这样做,您可以确保测试代码保持很高的质量;也就是说,您是在“测试测试代码”。
此外,在创建测试代码/测试自动化框架时,不也包括依赖项吗?如何确保这些依赖关系保持最新状态?通过使用像SonarCube和WhiteSource这样的工具。
就我个人而言,我总是至少建立一个我创建的测试自动化框架的链接器。
发布于 2022-05-19 11:40:27
一个典型的资源是Meszaros的“xUnit测试模式:重构测试代码”一书“。还有一个网站的大部分概念都是wiki格式的。
肯特贝克写了一个博客测试Desiterata,在那里他展示了12个伟大测试的特点。他还制作了关于每一个特征的一系列短片。
Robert在“测试设计”( 清洁工艺:纪律、标准和道德 on Test )一书中有一章,他在书中讨论了转换优先级前提。如果你喜欢视频格式,他有两集的清洁编码器系列:试验设计和清洁试验。

https://sqa.stackexchange.com/questions/50120
复制相似问题