自动化测试是将手工测试的过程使用工具实现的过程。如论怎么测,业务是核心、技术是手段、编码是工具。

化繁为简,当自动测试实现过于繁琐或无法实现的时候,回到测试的本原,思考测试的目的。

最近的一件测试内容,关于列表排序,如图所示:

   

* 测试内容:Window环境下,测试列表排序功能

* 测试条件:使用自动化实现测试

整个测试的测试过程很明确:选择列表,点击列表头,列表按升序或降序排列正确。

这也是这个测试所用到的测试用例常写到的,但是如何测试排序正确呢?一般会手工测试会验证:

1)表头图标的变化

2)列表内容排列顺序在点击列表头后有变化 -- 手工测试过程中,排序变化主要通过看,看到内容排列的顺序变化

如何通过自动化实现这一测试过程?真正的难点在于第2)点排序的验证。

测试实现者的最初想法是:获取排序前后的内容,对比预期(升序排列为:一、二、三、四,降序排列为:四、三、二、一 ),相同则测试通过,否则操失败

真正实现出现了问题,每次测试都是失败,并未按预期的实现排序,具体如上图所示。(这是由于Windowr的排序策略造成的,对于排序,Windows是按拼音的阿拉伯字母顺序排列的,遇到相同的字母,排列下一字母。)

然后呢,然后测试者开始修改Windows的排序方法,希望能够让排序按预期的结果实现。。。。。。

好像有哪不对?不是在测试排序实现是否正确,而是在更改程序实现与测试设计相符,本末倒置。

怎么测?如何通过自动化测试方法验证列表的排序?

回到手工测试的验证方法:排序方法改变前后,内容排列的顺序发生变化。验证变化即可:

1)初步判断:排序方法改变前后,列第一个元素变成最后一个元素,最后一个元素变成第一个元素;

2)完整判断:排序后的列表元素的逆序与排序前相同。

测试小故事52:怎么测?相关推荐

  1. 测试小故事91:讲故事

    测试报告:只堆积数字,干巴巴的,难于解析出有价值的内容,也许讲个故事更能体现价值. "I don't care this defect this time". 这是开发说给测试的一 ...

  2. 测试小故事55:软件测试悖论

    常常会想到一些关于测试的奇怪问题: 1.穷尽测试是不可能的.换句话说,如论测试多么的充分,系统总存在缺陷.从软件测试的经济学来讲,要发现程序中的所有错误也是不切实际的,也是不可能的. --> 软 ...

  3. 测试小故事21:语言的力量

    技术人员的语言是简单的,也许他们的世界只有数字和公式.了解他们做的,用他们的语言说话,用他们的语言进行日常协作,也许能更好的与他们沟通,也许才能逐步获得对方的信任,才能更好的与对方对接,. 自小被家长 ...

  4. 测试小故事6:术业有专攻

    一次同几位测试同行聊天,讲起一件有趣的事情. 测试人员提交了系统UI和可用性的BUG,一位开发人员不愿意了,大发脾气,对着开发给出了一通抱怨.     1. 这些不是系统的BUG,即使是BUG也是无关 ...

  5. 测试小故事75:角色

    测试团队的角色有哪些? 这个似乎很简单:测试团队最基本的角色就是测试执行. 从测试过程看:测试需求分析.测试计划.测试设计.测试执行.测试报告.测试分析. 因此角色可以分为:需求.计划.设计.执行.报 ...

  6. 测试小故事26:软件测试的艺术

    艺术,什么是艺术?当无法用准确的语言描述所看到的.听到的.感受到的,也许我们会用"很艺术"来形容. <软件测试的艺术>, The Art of Software Tes ...

  7. 测试小故事27:职业化与专业化

    职业精神,最早接触是来自于国外的职业足球运动员.对于这些职业运动员来讲,转会是很平常的事情,而对于他们需要做到的是用专业的运动技能效力于当前的俱乐部. 也许昨天还效力于一家俱乐部,第二天转会到另一家俱 ...

  8. 测试小故事88:耍流氓

    耍流氓,只是测试对开发不负责任态度的一种说法. "开发进度天天改,测试时间一压再压,质量出了问题就拿测试说话." "测试报告发了,该注意的问题也提了,没有理没人问,到头来 ...

  9. 测试小故事10:时间与耐性

    江湖越老,胆子越小.   不知道是不是真的随着年龄增长,越活越抽抽,胆子越来越小,只是发现随着年纪越大,人的耐心真的会慢慢增加,一笑而过的事情也越来越多. 初中时,因为觉得老师不公对待而与老师拳脚相加 ...

最新文章

  1. 01H5-fe-html5-005插入音频
  2. pku 1691 Painting A Board DFS 抽象建图 + 拓扑排序
  3. ASP实现隐藏下载地址和防盗
  4. android清空frame,android – GLSurfaceView onDrawFrame清除行为
  5. java设置窗口不可移动_Java – JDialog不可移动
  6. Android平台的用户行为记录解决方案
  7. Selenium自动化测试
  8. 平面设计师必读的十本书
  9. 8. JavaScript HTML DOM 事件
  10. JAVA作业 17-05-18
  11. 单片机段式LCD驱动教程
  12. 08.ThreeJs开发指南-第八章-加载外部模型
  13. Android控件—Toast(吐司)
  14. Android onKeyDown事件 监听不到Home键 可以监听到back键
  15. php 读取docx,PHP怎么获取docx里面内容
  16. OSChina 周三乱弹 ——怎么样防止隔壁老王
  17. 怎么将计算机设置为光盘引导模式,通过bios设置从光盘/光驱启动的方法
  18. jQuery的promise异步模式
  19. 项目经理如何做好项目管理PMP - 持续更新
  20. 自己总结关于浏览器证书安全的二点小技巧

热门文章

  1. 跟着彭亮一起学人工智能之深度学习--零基础学人工智能
  2. zipf distribution
  3. SQL面试题 (一)
  4. Sql 获取当前日期没有时分秒
  5. 模态分析中的阶数理解
  6. powershell:调用7z,haozip解压缩文件
  7. Pyyaml-yaml.load反序列化漏洞
  8. 科普!人人都爱Python,可Python为什么叫Python?
  9. css之-单行文本溢出显示省略号,多行文本溢出显示省略号
  10. 如何搭建动态IP池?手把手教你3种方法!