Language agnostic 从零开始为复杂应用程序编写基于硒的集成测试的最佳实践是什么?

Language agnostic 从零开始为复杂应用程序编写基于硒的集成测试的最佳实践是什么?,language-agnostic,testing,integration-testing,Language Agnostic,Testing,Integration Testing,我想了解一些关于web应用程序集成测试的建议和建议。我们的项目已经运行了很多年,而且相当复杂。单元测试已经覆盖了我们,但是我们缺少了一组合适的集成测试。除了单元测试之外,我们没有记录在案的用例,甚至没有一组合理的测试用例今天的“集成测试”包括开发人员对更改可能产生的影响的了解以及对应用程序的手动、临时测试。这真的不理想-我们现在想要设计和自动化一组可靠的测试,以允许我们执行回归测试,并增加我们对应用程序质量的信心 我们最终构建了一个平台(基于Selenium),使我们能够快速编写和自动化测试的执

我想了解一些关于web应用程序集成测试的建议和建议。我们的项目已经运行了很多年,而且相当复杂。单元测试已经覆盖了我们,但是我们缺少了一组合适的集成测试。除了单元测试之外,我们没有记录在案的用例,甚至没有一组合理的测试用例今天的“集成测试”包括开发人员对更改可能产生的影响的了解以及对应用程序的手动、临时测试。这真的不理想-我们现在想要设计和自动化一组可靠的测试,以允许我们执行回归测试,并增加我们对应用程序质量的信心

我们最终构建了一个平台(基于Selenium),使我们能够快速编写和自动化测试的执行。现在的问题是:我们没有任何测试,页面完全是空白的。该系统大约有30个类,它们相互交互并影响UI。对于注册的新用户,可以设置大约40个属性,每个属性都会影响体验。在用户生命周期内,它们将生成更多的状态。考虑到如此多的变数和可能的状态,这是一个令人望而生畏的前景,这可能就是为什么迄今为止它一直被忽视的原因


没有一套像样的测试的痛苦现在正变得具有破坏性。我正在花时间解决这个问题——我在寻找一些关于测试编写的实用建议。你是怎么做的?你有我认为有用的链接吗?对于用户的数据,我如何才能阻止我的思维在看似无限的状态下跑开?如何清除失败的边缘案例(我们的用户似乎正在发现)?

如果正是大量的组合阻碍了您尝试生成测试案例,那么您应该明确了解测试

我们已经使用微软提供的工具成功地将测试用例的数量降到最低,同时仍然有足够的信心覆盖大多数用例

所有配对测试背后的原因 这是一个系统中最简单的错误吗 程序通常由 单输入参数。下一个 最简单的bug类别包括 那些依赖互动的人 在参数对之间,可以 在所有测试中都会被捕获。 涉及两个系统之间交互的bug 需要三个或更多参数 逐渐减少,而 同时逐步 通过穷举查找更昂贵 测试,其限制是 对所有可能的 投入


这正是我需要的动力,谢谢Lieven。我只是在努力解决它背后的数学问题。这里有一个例子-有5个参数和(4,4,2,2)个值。我同意总共有128种组合,但他建议使用成对组合时只有16种。有没有简单的方法来计算需要多少测试,或者这是一个工具的工作?啊,好的,我明白了。我第一次接触它时,它打开了一个全新的世界。让你自己倒过来:)看看这里,了解一下PICT是如何工作的。你可能也会对这个链接感兴趣,詹姆斯·巴赫·希姆尔夫对PICT作为一种工具持非常积极的态度。如果可以的话,我愿意+5。两两/n-wise测试确实没有得到应有的爱/认可。