软件测试培训-功能测试的设计技巧

自动化功能测试,或用户界面(UI)测试,以难以维护而著称,而且没有足够的能力找出缺陷。然而,在大多数情况下出现故障的原因不是测试工具或者测试框架,而是个别测试本身跟踪设计不良。
软件测试培训

下面有七个功能测试设计技巧,让UI测试更加可维护和更强力。

不要只是点击要检查后续状态

很多自动化测试工具包含一个特性,就是可以自动记录一系列动作,然后回放。尽管这样的记录/回放功能在创建测试时容易驾驭,但是单纯的记录/回放动作会导致不良测试。具体而言,记录/回放测试并不会检测应用中操纵元素后的应用状态。

点击、键入、选择以及其他的功能都会以某种方式改变应用的状态。好的测试会在应用中操作元素后检查本身的结果。如果自动化测试跟随一个链接,就要让测试检查结果页是否正确。如果测试生成一个报告,就要检查报告内容是否正确。

等待,请勿停止

通常,应用程序需要一些时间才能通过测试检查结果。这在Web浏览器中的Ajax调用中尤其常见。在检查这种结果之前,只是简单地停止测试或睡眠几秒钟是很诱人的,但是停止或睡眠是不好的做法。如果应用程序返回时间太长,则测试将失败并显示错误。如果应用程序返回得更快,则测试将浪费时间。

取代停止或者休眠,让测试等待应用的具体方面出现了。这不仅仅让测试减少错误失败的倾向,而且也导致了更强的测试,因此测试根据生成的测试等待方面,实际等待检查应用结果。

使用分离定位不是索引

做测试的时候要是像“点击这个页面上的第三个链接”或者“选择列表上的第五个元素”这样就更好了。代替根据索引操纵应用的具体方面,为这样的元素找出或者创建唯一识别符值得努力。

如果命令链接改变了,或者命令列表改变了,测试就会导向一种预期外的路径,维护这样不可预知的测试相当难。

用正则表达式检查排列次序

应用以正确的序列显示给用户非常重要。无论是表格的列数还是列表的元素,或者是页面本身的文本,自动化测试检测事物正确的排列很重要。

这有一堆事情应该以“一”、“二”、“三”的顺序出现。测试可以使用类似的正则表达式检查出这些事情序列。下面是一个使用简化的正则表达式“glob”的例子,“glob”在Selenium以及其他自动化测试工具中可用:

以下是引用片段:

|getText|glob:onetwothree|

|click|sort_thing|

|getText|glob:threetwoone|

这个测试检查的第一步是输入文本“one”,随后是文本“two”,然后是“three”。“*”表明测试允许“one”“two”"three"之间任意的字符。测试第二步点击导致“one”“two”“three”倒序排列,然后测试第三步检查这个排列是否成功了。

一次且仅一次

正如上面所指出的,在应用中等待一个元素出现是较好的实践。通常这样的例子中一旦元素出现,测试会希望操作这个元素,实例就是点击。这是抽象通用动作到期自己的方法或者模型的最佳实践,然后测试按需调用这些动作。下面是一个例子,在Fitnesse和Selenium语法中wait-for-and-click抽象。

以下是引用片段:

!|scenario|Waitforandclick|elementLocator|

|waitForElementPresent|@elementLocator|

|click|@elementLocator|

Sofromatestitselfweneedonlywrite:

|open|www.foo.com|

|Waitforandclick|link=WelcometoFoo!|

更多软件测试教学是可在http://www.cemaxueyuan.com/courses观看。
如果你想了解更多关于软件测试的专业知识,可以加入python自动化测试交流群3:737683259,里面都是同行,欢迎你们的加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

猜你喜欢

转载自blog.csdn.net/weixin_49698883/article/details/113385221