Java 不自动化即席执行的测试用例的真正原因是什么?

Java 不自动化即席执行的测试用例的真正原因是什么?,java,selenium,testing,selenium-webdriver,automation,Java,Selenium,Testing,Selenium Webdriver,Automation,我在网上读了一些关于自动化测试的文章。在本文中提到,AD_HOC basis执行的测试用例不适合应用自动化。为什么会这样?我假设“临时”执行的测试用例是指“探索性”测试用例。虽然可以在自动测试中添加一些随机性,但挑战在于定义预期结果 当您执行手动探索性测试时,您知道应用程序应该做什么,并且每当您注意到应用程序没有做它应该做的事情,或者做它不应该做的事情时(例如,显示崩溃消息),您可以确定它是否是一个bug 自动化测试只执行和验证您指示他们执行的操作,因此如果执行随机操作,则很难定义每种情况下的预

我在网上读了一些关于自动化测试的文章。在本文中提到,AD_HOC basis执行的测试用例不适合应用自动化。为什么会这样?

我假设“临时”执行的测试用例是指“探索性”测试用例。虽然可以在自动测试中添加一些随机性,但挑战在于定义预期结果

当您执行手动探索性测试时,您知道应用程序应该做什么,并且每当您注意到应用程序没有做它应该做的事情,或者做它不应该做的事情时(例如,显示崩溃消息),您可以确定它是否是一个bug

自动化测试只执行和验证您指示他们执行的操作,因此如果执行随机操作,则很难定义每种情况下的预期结果和不预期结果

此外,即使您试图根据您执行的随机值或操作来编程预期和非预期的逻辑,该逻辑也会相当复杂,并且您在该逻辑中出现错误的几率不低于在测试应用程序(AUT)本身中出现错误的几率,这使得你的测试不可靠。通常,自动测试用例非常直接,没有
if
语句或循环,这使得它们比AUT的代码更可靠

你可以在我目前正在写的书的第二章中找到更多的信息。这本书的标题是“测试自动化的完整指南”(由Apress出版),但由于它还没有公开发行,您可以阅读它的一个较旧的草稿(标题为“测试自动化的成功”)