如何设计软件模块的自动化测试?

【文章摘要

       自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,它的目的是为了提高测试效率,同时促进知识传递以及经验积累。在自动化测试过程中,我们不需要重新录入测试用例,而只需要沿用原来的测试用例即可完成所有功能的测试,测试用例通过自动化测试工具可方便传递到下一个版本。

        一般的软件模块分为消息触发型和主动扫描型两类。本文对这两类软件模块的自动化测试过程进行了详细介绍,为相关模块的自动化测试的设计提供了有益的参考。

 

一、两类模块简介

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,欢迎关注!)

时间: 2024-09-27 06:35:49

如何设计软件模块的自动化测试?的相关文章

Axure RP交互设计软件使用教程:masters

masters和sitemap面板很相似,文档操作也一样,它们的本质区别是,sitemap里的文件是最终展示页面,masters里的文件却只是一个模块,是页面的一个部分. 相关教程:Axure RP交互设计软件使用教程:文档管理 Axure RP交互设计软件使用教程 masters的英文直译是主人或雇主,但是我认为这里可以叫做模板,或者复用模块.masters的文件,是页面中重复的模块,由于在不同页面中这些模块是一样的,所以拿出来作为一个模块编辑,然后在不同页面中进行调用. 这个功能类似于网页程

推荐一款比较好用的UE设计软件

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 我们都知道专门针对美术设计人员的专业软件有很多,比如photoshop.比如fireworks.比如coreldraw.比如flash,还有很多;针对web开发人员写程序的软件也有很多,比如EditPlus,比如EmEditor等;针对文字处理的比如WPS.比如word,如果想排出更好的效果还可以使用专业排版软件比如pagemaker.比如I

Adobe发布网页设计软件Muse无需编写代码创建网站

文章描述:Adobe发布网页设计软件Muse. Adobe今天宣布推出网页设计软件-Muse. Adobe表示,借助Muse软件,网页设计师可以创建网站,而无需编写代码.Adobe之前已经进行了Muse beta公测. Muse采用类似打印布局方式,简化了网页规划,设计和发布.Muse让用户使用内置交互性的工具,在主页上进行网页内容创建,内建的Adobe Typekit并且向用户提供超过400个Web字体. Adobe发布网页设计软件Muse 用户可以从Adobe网站购买独立拷贝,或者付费成为A

用户交互设计:软件安装一般页面流程

文章描述:用户交互设计:软件安装一般页面流程. 混乱的安装界面和不畅的安装流程把前来拜访的用户拒之门外,也使软件的功能得不到充分的定制和发挥.由于对互联网产品的爱好,我经常安装软件,在这之中发现许多不好的地方,在这将共通的内容提出来分析一下.   现有软件安装一般页面流程: what's new页>>许可条款页>>选择组件>>软件大小信息,选择安装路径和快捷方式显示位置>>安装进度页>>附带推广软件页,和立即运行.开机启动.设为首页.显示新特性等

从Fireworks看设计软件的色彩使用方式

设计 色彩是图像中最为重要的因素,一幅设计精美的图像打动人的靠的就是它的视觉效果,因而色彩选用和搭配就显得十分重要了.Fireworks MX 2004中提供了强大的色彩功能,我们不仅可以选择多种方式使用色彩对对象使用各种色彩效果,而且可以通过色彩面板管理色彩,从而方便我们的图像设计. 我们通过了解Fireworks MX 2004中色彩的使用方式.色彩面板以及色彩的管理,可以举一反三大致了解设计软件中的共有的色彩使用方法和技巧. 在Fireworks MX 2004中有好几种使用色彩的方式,我

Axure RP交互设计软件使用教程

交互原型设计软件Axure中文教程--介绍 介绍(Introduce) 互联网行业产品经理的一项重要工作,就是进行产品原型设计(Prototype Design).而产品原型设计最基础的工作,就是结合批注.大量的说明以及流程图画框架图wireframe,将自己的产品原型完整而准确的表述给UI.UE.程序工程师,市场人员,并通过沟通会议,反复修改prototype 直至最终确认,开始投入执行. 进行产品原型设计的软件工具也有很多种,我写的这个教程所介绍的Axure RP,是taobao.dangd

Axure RP交互设计软件使用教程:文档管理

上一篇教程:Axure RP交互设计软件使用教程 交互原型设计软件Axure中文教程--文档管理 文档管理(Document) 开章要说的是文档管理.文档管理看似简单,但是这是从操作功能上来说的,而我在说功能上的时候,想把我对文档管理的理解也一并说一下. 文档管理的目的,其实是为了有一个清晰的产品思路.刚开始工作的时候,我发现很多刚从学校出来的朋友对文档的命名与放置都是随心所欲的,我也不例外.没有好的整理习惯,这直接导致每次寻找先前的文档都要花费相当长的时间,甚至不小心误删,如果恰好有事请假,别

Axure RP交互设计软件使用教程:Widgets工具栏

Axure RP的widgets工具栏,就是我们用来画线框图wireframe.流程图flow的工具,也可以说是组成我们最终输出图表的零件.好比我们小时候玩的组装积木,这些工具就是组装积木里的一个个小部件,组成什么?组合得怎样?完全依靠个人的经验和智慧.因此,熟悉每一个工具的用法和用途,才能随心所欲的画出脑海中的图形. 相关文章:Axure RP交互设计软件使用教程:masters Widgets工具栏,下分两类工具: wireframe线框图工具:基本上对应着web页面中的各种图形.针对页面中

从Fireworks的色彩面板看设计软件的色彩管理

设计 色彩是图像中最为重要的因素,一幅设计精美的图像打动人的靠的就是它的视觉效果,因而色彩选用和搭配就显得十分重要了.Fireworks MX 2004中提供了强大的色彩功能,我们不仅可以选择多种方式使用色彩对对象使用各种色彩效果,而且可以通过色彩面板管理色彩,从而方便我们的图像设计. 我们通过了解Fireworks MX 2004中色彩的使用方式.色彩面板以及色彩的管理,可以举一反三大致了解设计软件中的共有的色彩使用方法和技巧. 可以点击Fireworks界面中"Window"菜单下