如何设计软件模块的自动化测试?
【文章摘要】
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,它的目的是为了提高测试效率,同时促进知识传递以及经验积累。在自动化测试过程中,我们不需要重新录入测试用例,而只需要沿用原来的测试用例即可完成所有功能的测试,测试用例通过自动化测试工具可方便传递到下一个版本。
一般的软件模块分为消息触发型和主动扫描型两类。本文对这两类软件模块的自动化测试过程进行了详细介绍,为相关模块的自动化测试的设计提供了有益的参考。
一、两类模块简介
1. 消息触发型模块
顾名思义,该类模块启动之后,就一直挂在那里,等到接收到其它模块发过来的消息之后才执行下一步的操作。在处理完成之后,该类模块会给发送消息的模块返回响应,表示处理完成。假设模块A为消息触发型模块,其消息交互流程如图1所示。
图1 消息触发型模块的消息交互流程
2. 主动扫描型模块
顾名思义,该类模块启动之后,就开始主动扫描数据库或目录,然后根据扫描到的数据执行下一步操作。在处理完成之后,会主动向其它模块发送消息(其它模块不一定会返回响应)。假设模块B为主动扫描型模块,其消息交互流程如图2所示。
图2 主动扫描型模块的消息交互流程
二、两类模块的自动化测试设计
1. 消息触发型模块
根据该类模块(被测模块)的特点,专门开发一个测试程序用于与之进行消息交互,如图3所示。
图3 消息触发型模块的自动化测试框架
根据图3的框架,消息触发型模块的自动化测试的消息流程如图4所示。
图4 消息触发型模块的自动化测试的消息流程
2. 主动扫描型模块
根据该类模块(被测模块)的特点,专门开发一个测试程序用于向数据库中插入数据并接收被测模块的响应消息,如图5所示。
图5 主动扫描型模块的自动化测试框架
根据图5的框架,主动扫描型模块的自动化测试的消息流程如图6所示。
图6 主动扫描型模块的自动化测试的消息流程
三、自动化测试的相关经验
自动化测试的整个过程不会一帆风顺,其中必然会遇到一些问题。个人的相关经验如下:
第一,不管是消息触发型还是主动扫描型模块的测试程序,一定要保证收发消息接口的正确性。在测试的过程中,如果日志里面打印出发送消息失败的信息,那么首先要检查消息接口的协议字段是否正确,其次要检查链路配置是否对。
第二,在刚开始测试的时候,测试程序可以发送少量的消息(如一条消息)或插入少量的数据(如一条数据),待测试流程确认无误之后再逐渐增加消息或数据的个数。
第三,某些被测模块的处理流程较为繁琐,因此一个测试用例的执行时间可能较长,这就需要测试程序一直等在那里。建议在测试程序中设置等待消息的时限,如果超过了这个时限,就当作测试执行失败。
第四,为了方便在页面上展示测试结果,要将测试报告放在约定的目录之下,且要按照规定的格式生成测试报告。
四、总结
自动化测试的宗旨就是要让程序测试自动化,要让机器帮我们查找程序的bug。每次修改了程序版本之后,自动化测试就会被触发。如果程序的修改影响了之前的功能,那么从自动化测试生成的结果报告中马上就能够看出。这无疑为提高软件版本的质量提供了有力的保障。
本文对消息触发型和主动扫描型软件模块的自动化测试设计及消息流程进行了详细的介绍,并对相关的经验进行了小结。相关的开发人员可以参考来设计针对自己所开发软件的自动化测试。
(作者微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
建议继续学习:
- Xvfb+YSlow+ShowSlow搭建前端性能测试框架 (阅读:54186)
- 安全测试与渗透测试区别 (阅读:23674)
- 使用Fiddler对手机应用进行抓包测试 (阅读:6894)
- 服务器性能测试工具推荐 (阅读:6437)
- 给Apache做压力测试时遇到的问题 (阅读:5890)
- WEB性能测试工具推荐 (阅读:5628)
- 可用性测试好助手——Morae软件的应用 (阅读:5456)
- 12款很棒的浏览器兼容性测试工具推荐 (阅读:4844)
- 可用性测试的权衡之道(二) (阅读:4788)
- 在线测试不同操作系统不同浏览器网页的显示效果 (阅读:4681)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:周兆熊 来源: 周兆熊的博客
- 标签: 测试 自动化
- 发布时间:2016-03-09 23:39:27
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成