自动化测试是将手工测试的过程使用工具实现的过程。如论怎么测,业务是核心、技术是手段、编码是工具。
化繁为简,当自动测试实现过于繁琐或无法实现的时候,回到测试的本原,思考测试的目的。
最近的一件测试内容,关于列表排序,如图所示:
* 测试内容:Window环境下,测试列表排序功能
* 测试条件:使用自动化实现测试
整个测试的测试过程很明确:选择列表,点击列表头,列表按升序或降序排列正确。
这也是这个测试所用到的测试用例常写到的,但是如何测试排序正确呢?一般会手工测试会验证:
1)表头图标的变化
2)列表内容排列顺序在点击列表头后有变化 -- 手工测试过程中,排序变化主要通过看,看到内容排列的顺序变化
如何通过自动化实现这一测试过程?真正的难点在于第2)点排序的验证。
测试实现者的最初想法是:获取排序前后的内容,对比预期(升序排列为:一、二、三、四,降序排列为:四、三、二、一 ),相同则测试通过,否则操失败
真正实现出现了问题,每次测试都是失败,并未按预期的实现排序,具体如上图所示。(这是由于Windowr的排序策略造成的,对于排序,Windows是按拼音的阿拉伯字母顺序排列的,遇到相同的字母,排列下一字母。)
然后呢,然后测试者开始修改Windows的排序方法,希望能够让排序按预期的结果实现。。。。。。
好像有哪不对?不是在测试排序实现是否正确,而是在更改程序实现与测试设计相符,本末倒置。
怎么测?如何通过自动化测试方法验证列表的排序?
回到手工测试的验证方法:排序方法改变前后,内容排列的顺序发生变化。验证变化即可:
1)初步判断:排序方法改变前后,列第一个元素变成最后一个元素,最后一个元素变成第一个元素;
2)完整判断:排序后的列表元素的逆序与排序前相同。