一个大程序
一个想法:听起来您正在通过以下方法来尝试避免剪切粘贴代码:
testScreen(title, fieldList, linkList, param1, param2, param3,...) {
test that the layout at the top of the screen is correct
test if PageTitle == title?
for each field in fieldList:
check that it appears in order on the screen
for each field in linkList:
check that it appears in order on the screen
test if param1 is whatever...
test if param2 is whatever...
etc.
test that the bottom of the screen is correct
}
许多小程序(工具包)
您是否也考虑过相反的方法?与其将一百万个参数传递给一个大的testScreen()过程,不如制作自己的框架或由小助手程序组成的工具包,并在需要时将其淘汰掉。喜欢:
testScreenTop()
verifyLinks(list)
testScreenBottom()
您仍将这些过程剪切并粘贴到每个屏幕中,但是您正在剪切并粘贴较小的代码块,并切出未剪切和粘贴的通用性块(每个小过程的内容)。
剪切和粘贴
剪切粘贴的代码唯一没有被我咬过的时间是在不得不更改代码之前将其扔掉的时候。我对UI测试最大的担忧是它们过时的速度。如果发现您在更改代码之前就将所有代码都扔掉了,那么也许您已经找到了可以粘贴和粘贴的利基市场!而且,当剪切和粘贴的代码下游没有代码时(例如,在应用程序的UI中),这还不错。如果您粘贴的行数超过3行,那么我真的会考虑做一些事情。至少要采取步骤将其最小化!
自动化的UI测试
哎呀,如果您能证明自动化UI测试的生产力要比使用任何技术的手动测试更高(编写/维护自动化测试的成本低于每次手动测试的成本,但质量相同),我认为您应该写一篇论文。我会读的!我现在可以看到标题“为UI测试粘贴并粘贴代码一个网络胜利!”