Automated tests 自动化单元测试与GUI自动化

Automated tests 自动化单元测试与GUI自动化,automated-tests,manual-testing,Automated Tests,Manual Testing,自动测试是任何类型的测试,其中您使用一段代码/程序来测试另一段代码/程序。这可以是如上所述的单元测试,也可以通过特定的自动化工具,如TestComplete、QTP、Selenium等。单元测试往往由相关代码的开发人员创建和执行,而GUI自动化更可能由软件QA专家执行 关于这一点,我想到了一些问题 1) 使用代码编写自动化单元测试还是使用诸如QTP、Selenium之类的自动化测试工具执行GUI自动化更好 2) 在SDLC生命周期中,使用代码编写自动化测试与使用自动化测试工具编写GUI自动化测试

自动测试是任何类型的测试,其中您使用一段代码/程序来测试另一段代码/程序。这可以是如上所述的单元测试,也可以通过特定的自动化工具,如TestComplete、QTP、Selenium等。单元测试往往由相关代码的开发人员创建和执行,而GUI自动化更可能由软件QA专家执行

关于这一点,我想到了一些问题

1) 使用代码编写自动化单元测试还是使用诸如QTP、Selenium之类的自动化测试工具执行GUI自动化更好

2) 在SDLC生命周期中,使用代码编写自动化测试与使用自动化测试工具编写GUI自动化测试所涉及的工作是什么


3) 使用代码编写自动化单元测试和使用自动化测试工具执行GUI自动化的好处是什么?

单元测试和GUI自动化测试的目的是不同的。单元测试(通常由开发人员实现)应该验证测试中一个函数的不同输入和输出。如果需要,可以在模拟系统的帮助下实施。单元测试通常运行得很快,所有这类测试都不超过1秒。GUI测试模拟用户行为(我们通常称之为端到端测试),可能需要更多的时间来执行

  • 我不建议在GUI自动化的帮助下编写单元测试,因为您希望快速运行它们,每次都重新运行,非常稳定,并且不受其他对象(如浏览器)的影响
  • 使用一些自动化记录来编写自动化测试是非常容易的,但是通常它比您将使用适当的API自己编写的代码要稳定得多
  • 我不确定我在这里是否理解您的意思,但是单元测试最好是在没有GUI的情况下编写代码,系统测试通常应该使用帮助GUI自动化环境(如Selenium)来编写
    单元测试和通过GUI的自动化测试有不同的用途。此外,高级自动化测试不一定通过UI完成

    你见过测试金字塔吗?

    当然,这是理想的情况,在现实生活中很少发生。但这是一件需要努力的事情

    单元测试更容易编写。但对于遗留代码来说,情况可能并非如此。如果编写代码时没有考虑到可测试性,则需要进行代码重构以添加单元测试。在这种情况下,通过公共API或GUI编写高级测试会更容易。但这不一定是正确的做法

    单元测试的执行速度更快,因此开发人员可以更快地获得反馈,并且几乎可以立即发现是否有问题。同样,编写良好的单元测试可以很容易地诊断问题并快速找到错误的代码行。 使用GUI测试和高级测试通常需要更多的时间来诊断问题。测试失败的可能性更高,这只是环境问题或其他依赖性问题

    考虑到所有这些,测试金字塔将其总结得非常好。越早发现问题越好。因此,大部分测试工作都应该进行单元测试。但总有一些bug无法在“方法级别”上捕获。因此,您可以向上移动一个级别,这就是集成测试的亮点所在。GUI测试可以涵盖对产品至关重要的E2E案例,例如,确保登录按钮实际存在且可点击:D

    总而言之,没有简单的答案来说明什么更好,因为他们实现了完全不同的目标