




已阅读5页,还剩60页未读, 继续免费阅读
(计算机应用技术专业论文)基于业务逻辑的移动终端软件自动化测试方法研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于业务逻辑的移动终端软件自动化测试方法研究与应用摘要 论文题目 专业 硕士生 指导老师 基于业务逻辑的移动终端软件自动化测试方法研究与应用 计算机应用技术 陈佳鹏 王建民副教授 摘要 随着移动终端技术的发展 越来越丰富的第三方软件为移动终端用户提供了 各种丰富多彩的办公和娱乐功能 在给用户带来便利的同时也对移动终端软件的 测试提出了更高的要求 自动化测试技术在移动终端软件上的应用 可以代替重 复的手工测试 提高测试质量和效率 有效地减少测试开支 在软件功能测试 多平台的兼容性测试 升级过程中的回归测试发挥重要作用 并可以实现手工测 试无法实现的长时间稳定性测试 大规模压力测试和负载测试 本文分析了现有自动化测试技术的发展及其在移动终端领域的应用情况 针 对现有自动化测试方法在脚本维护 结果验证和时序控制等方面存在的问题 提 出基于业务逻辑的移动终端软件自动化测试方法并设计实现了该自动化测试系 统 由测试用例脚本可视化编辑 测试用例自动化运行与验证 结果实时报告与 查询三大模块组成 测试结果准确性高 流程控制灵活 并结合业务逻辑接口与 实现相分离的方法解决了跨平台测试和回归测试中脚本的维护性问题 在 帝国 o n l i n e 手机m m o i 冲g 的测试中实现了该自动化测试系统并投入应用 最大限 度地及时发现游戏逻辑功能的错误 大大提高了开发过程中回归测试和多机型适 应性测试的效率 并有效的支持了系统服务器端的压力测试 测试结果证明 基 于业务逻辑的移动终端软件自动化测试系统大大降低了移动终端软件开发过程 中功能测试 回归测试和适应性测试的工作量 大大提高了测试效率 有效的节 约了软件测试整体成本 具有较高的应用价值 关键词 自动化测试 业务逻辑 结果验证 移动终端软件 m m o r p g 基于业务逻辑的移动终端软件自动化测试方法研究与应用a b s t r a c t t i t i e m a j o r n a m e s u p e r v i s o r r e s e a r c ha n da p p l i c a t i o no fm o b i l et e r m i n a ls o f t w a r ea u t o m a t e d t e s t i n gb a s e do nb u s i n e s sl o g i c c o m p u t e ra p p l i c a t i o nt e c h n o l o g y j i a p e n gc h e n a s s o c i a t ep r o f e s s o rj i a n m i nw a n g a b s t r a c t t h ed e v e l o p m e n to fm o b i l et e r m i n a l p l a t f o r m sa n dt e c h n o l o g i e se n r i c ht h e c h o i c e so fm o b i l eu s e r s t h e yc a l l e 蝎o ym o r ea n dm o r ea p p l i c a t i o n s a n d e n t e r t a i n m e n t so nt h em o v e m e a n w h i l e t h em o b i l et e r m i n a la p p l i c a t i o n sn e e dm o r e t e s t i n gt oe n s u l et h e i rf u n c t i o n a lc o r r e c t n e s sa n dr e l i a b i l i t yb e f o r er e l e a s e t e s t a u t o m a t i o nt e c h n o l o g yc a nb eu s e df o rr e p e t i t i v em a n u a lt e s t i n gt or e d u c et h ee x p e n s e o ft e s t i n ga n di m p r o v es o f t w a r eq u a l i t y e s p e c i a l l yi ns y s t e mr e g r e s s i o nt e s t i n g c o m p a t i b i l i t yt e s t i n gf o rd i f f e r e n tt e r m i n a l sf r o md i f f e r e n tv e n d o m a sw e l la ss t a b i l i t y t e s t i n ga n ds t r e s st e s t i n gw h i c ha lei m p o s s i b l em i s s i o n sf o rm a n u a lt e s t i n g t l l i st h e s i sf i r s t l yd i s c u s s e st h ed e v e l o p m e n to ft e s ta u t o m a t i o nt e c h n o l o g i e sa n d t h e i ri m p l e m e n t si nm o b i l et e r m i n a ls o f t w a r et e s t i n g 1 1 1 ec u r r e n tt e s tt e c h n o l o g i e s h a v es o m ep r o b l e m s 谢t l ls c r i p tm a i n t e n a n c e r e s u l tv e r i f i c a t i o na n ds e q u e n t i a l c o n t r 0 1 n l i st h e s i sc o m e su p 嘶t l lt h ea u t o m a t e dt e s t i n gb a s e do nb u s i n e s sl o g i c w h i c hi sb e t t e ra tt e s t i n gm o b i l et e r m i n a ls o f t w a r e i tc a nd ot h er e s u l tv e r i f i c a t i o n v e r yw e l l g e tt h et e s tr e s u l t sp r e c i s e l ya n di ti sm u c he a s i e rt oc o n t r o lt h et e s t i n g f l e x i b l y m e a n w h i l e v i 廿1t h es e p a r a t i o no fi n t e r f a c ea n di m p l e m e n t a t i o no fb u s i n e s s l o g i c i tm a k e st h et e s tc a s es c r i p t si n d e p e n d e n tf r o mp l a t f o r m sa n de a s yt ot r a n s p l a n t a n da l s oe a s yt om a i n t a i nw h e nt h es o f t w a r ei sc o n t i n u a l l yu p d a t e do rm o d i f i e d t h j s t h e s i sd e s i g n sas y s t e mf r a m e w o r ko ft h ea b o v ei d e a i tp r o v i d e sav i s u a lt e s tc a s e e d i t o rf o rd e s i g n i n gt e s tc a s e s a sw e l la sat e s tc o n t r o l l e rt or i mt h et e s tc a s es e t c h e c k a n dr e c o r dt h er e s u l t sa u t o m a t i c a l l y i ta l s op r o v i d e sr e a l t i m er e p o r t sa n da l l o wu s e r t oq u e r yt h er e s u l t s f i n a l l y t h i st h e s i sc a r r i e so u ts u c hat e s ta u t o m a t i o ns y s t e m m 基于业务逻辑的移动终端软件自动化测试方法研究与应用 a b s t r a c t d u r i n gt h ed e v e l o p m e n to fe m p i r eo n l i n e am m o r p g t h e t e s ta u t o m a t i o ns y s t e mi s p r o v e dt ob ev e r yu s e f u li ns y s t e mf u n c t i o nt e s t r e g r e s s i o nt e s ta n dc o m p a t i b i l i t yt e s t k e yw o r d s t e s ta u t o m a t i o n b u s i n e s sl o g i c r e s u l tv e r i f i c a t i o n m o b i l et e r m i n a l s o f t w a r e m m o r p g i v 论文原创性声明 本人郑重声明 所呈交的学位论文 是本人在导师的指导下 独 立进行研究工作所取得的成果 除文中已经注明引用的内容外 本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果 对本文 的研究作出重要贡献的个人和集体 均已在文中以明确方式标明 本 人完全意识到本声明的法律结果由本人承担 学位论文作者签名 陆尘童监 日期 型净出生 学位论文使用授权声明 本人完全了解中山大学有关保留 使用学位论文的规定 即 学 校有权保留学位论文并向国家主管部门或其指定机构送交论文的电 子版和纸质版 有权将学位论文用于非赢利目的的少量复制并允许论 文进入学校图书馆 院系资料室被查阅 有权将学位论文的内容编入 有关数据库进行检索 可以采用复印 缩印或其他方法保存学位论文 群黧喉师淼黜 日期 明年5 月 汨日期q 手机m m o r p g 的测试中实现了基于业务逻辑的自动 化测试系统并投入到该手机游戏的测试工作中 包括游戏的功能测试 游戏渐进式开发过程中的回归测试 以及针对多达3 0 个系列手机的适 应性测试 并可以有效的支持了系统服务器端的压力测试 对测试数据 进行分析 验证了基于业务逻辑的移动终端测试系统的有效性 基于业务逻辑的移动终端自动化测试系统具有方便的脚本可视化编辑 自动 化运行测试 结果自动验证和记录 结果实时报告与查询等功能 具有测试结果 准确性高 控制灵活的特点 同时结合业务逻辑接口与实现相分离的方法解决了 跨平台测试和回归测试中脚本的维护性问题 测试结果证明 基于业务逻辑的移 动终端软件自动化测试系统大大降低了移动终端软件开发过程中功能测试 回归 测试和适应性测试的工作量 大大提高了测试效率 有效的节约了软件测试整体 成本 具有较高的应用价值 1 4 论文章节安排 本文由五个章节组成 第l 章 主要介绍了软件测试分类概况 软件自动化测试的相关研究基础 以及本文的主要研究内容和意义 第2 章 分析自动化测试的优点与不足 对最常用的基于g u i 的自动化测试 方法在脚本维护 结果验证和时序控制等方面存在的问题进行分析 提出基于业 务逻辑的自动化测试方法 分析基于业务逻辑的自动化测试方法在脚本控制 结 果验证和时序控制问题上的优越性 最后对不同自动化测试方法在移动终端软件 测试上的应用进行系统的横向比较和分析 9 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第1 章 第3 章 提出了基于业务逻辑的自动化测试系统的框架设计 详细阐述了测 试用例设计 测试运行控制 测试结果报告与查询三大模块的设计方法 分析了 基于业务逻辑的自动化测试测试系统与被测软件系统的联系 提出被测系统与测 试系统并行开发的思想 详细介绍了基于业务逻辑的自动化测试系统的开发流 程 第4 章 介绍 帝国o n l i n e 手机m m o r p g 项目的开发和测试过程中基于 业务逻辑接口的移动终端软件自动化测试系统的实现 该自动化测试系统在 帝 国o n l i n e 的功能测试 回归测试和适应性测试中发挥了重大作用 及时高效的 发现了游戏系统中潜在的错误 对测试数据进行分析 证明了该自动化测试系统 的有效性 此外 通过基于业务逻辑的测试有效的模拟用户行为 扩展实现了对 服务器的负载测试 第5 章 对全文进行总结 分析本文工作的优缺点 并展望将来的工作 1 0 基于业务逻辑的移动终端软件自动化测试方法研究与应用第2 章 第2 章移动终端软件自动化测试方法的分 析与比较 在软件开发过程中 软件错误发现得越晚 为改正它所付出的代价就越大 1 4 1 5 1 6 1 7 移动终端软件也不例外 目前 移动终端软件的测试主要还是手工 测试为主 由于移动终端软件必须适应种类繁多的各种移动终端平台 手工测试 对于移动终端软件大规模的兼容性测试 多次的系统回归测试 长时间的稳定性 测试和压力测试存在测试周期长 效率低 费用高等问题 难以满足测试要求 而自动化测试技术可以代替部分繁杂而重复的手工测试劳动 有效的消除人为因 素在测试中引入的错误 从而使测试人员将更多的精力用于设计 甄别测试用例 等更有创造性的工作 可以有效的减少测试开支 提高测试质量 1 1 1 目前多数软件系统采用三级架构 自上而下可以概括为图形用户界面层 业 务逻辑层 底层服务层 基于业务逻辑的自动化测试的核心思想是 绕开待测软 件的图形用户界面层建立运行环境 根据测试用例设定的流程和参数 调用被测 系统的业务逻辑来执行系统功能 并对业务逻辑运行结果进行验证和性能统计 实现高效的自动化系统测试 基于业务逻辑的自动化测试侧重于系统的功能测试 与性能测试 其测试所针对的系统层次为业务逻辑层 如错误l 未找到引用源 所示 测系 图形用户界面层 业务逻辑层 底层服务层 基于g u i 的测试 基于业务逻辑的测试 基于a p i 的测试 图2 1 三种测试针对的不同系统层次 基于a p i 的自动化测试主要是针对系统的底层a p i 接口进行单元测试 侧重 于验证代码单元的正确性 属于单元测试的范畴 基于g u i 的自动化测试即是针对系统g u i 层进行的 通过模拟鼠标或键盘 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第2 章 事件来执行测试用例 一般采用录n 回放式的方法 在测试脚本维护 测试结 果验证 和测试时序控制上存在许多问题 2 1 自动化测试概述 自动化测试的一般定义为 组织和实施测试活动 开发和实施测试脚本 以 便使用自动化测试工具验证测试需求 18 1 自动化测试技术是测试技术的一个分 支 它的研究重点是如何最大可能地进行自动化测试 在哪些方面可以进行自动 化以及自动测试工具的开发和使用 1 9 2 1 1 自动化测试的优点 软件测试自动化的意义存在于两个方面 一是手工测试的局限性 二是软件 自动化测试所带来的好处 2 0 手工测试存在的局限性包括 2 0 1 无法做到覆盖所有代码路径 2 功能测试时有一定的机械性 重复性 工作量较大 3 在系统负载 性能测试等需要模拟大量数据或大量并发用户的场合时 很难通过手工来进行 4 在系统可靠性测试时 需要模拟系统运行整周 整月 也是手工无法模 拟的 5 有大量测试用例需要在短时间内完成 手工测试不可能做到 由于手工测试的局限性 软件测试借助测试工具极为必要 将测试工具和软 件测试自动化综合起来 可以解决上述局限性 并且会带来一些好处 1 3 2 0 1 自动化测试速度快 对于大量测试用例 可以在较短的时间内完成 从 而缩短软件开发测试周期 2 测试效率高 自动化测试的运行可以将大量测试用例分配到不同的电脑 上同时运行 并且可以是无人值守夜以继日的进行 在工具运行测试用 例的同时测试人员可以一边改进测试方案或设计新的测试用例 3 可以替代部分繁杂而重复的手工测试劳动 节省人力资源 降低测试成 本 1 2 基于业务逻辑的移动终端软件自动化测试方法研究与应用第2 章 4 有效的消除人为因素在测试中引入的错误 提高软件测试的精确度 5 使测试人员将更多的精力用于设计 甄别测试用例等更有创造性的工 作 提高测试的质量和深度 6 自动记录和统计测试结果 自动生成报表 节约测试数据录入和统计的 人力资源开支 7 尽早的发现软件错误和缺陷以便尽早地修复 从而节约成本 因为软件 错误发现得越晚为改正它所付出的代价将越大 8 可以执行一些手工不可能完成或很难完成的测试 例如联机系统的并发 测试 负载测试 性能测试等 9 有利于进行回归测试 可以利用自动化测试重复多次相同的测试 避免 浪费大量人力物力去验证稳定的旧功能 2 1 2 自动化测试的不足 自动化测试相对于手动测试也具有一些不足 例如 2 0 1 自动化测试对测试活动的统筹安排要求更高 需要在测试一开始 甚至 是在被测系统设计开发之初就制定详细周全的测试计划 2 自动化测试工具的开发需要投入额外的开发成本和时间 3 自动化测试环境和测试用例的维护需要伴随被测软件的开发而持续进 行 因此 a n d r e a sl e i t n e r 等人在 2 1 中提出软件的自动化测试和手动测试是一 种互补 相辅相成的关系 自动化测试的测试用例一开始也是由手动测试发展而 来的 并且通过手动测试不断发现新的测试目标从而不断的丰富自动化测试的内 容 2 2 基于g u i 的移动终端软件自动化测试的缺陷分析 软件系统三级架构的最高层是软件的图形用户界面 由它响应界面消息 调 用系统内部的业务逻辑来实现相应的业务逻辑功能 基于g u i 的自动化测试即 是针对系统g u i 层进行的 通过模拟鼠标或键盘事件来执行测试用例 一般采 用录制 回放式的方法 通过录制的方式将用户操作软件的行为转化为测试用例 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第2 章 脚本 然后对脚本进行解析重现用户操作过程 运行测试用例的一般流程如图 2 2 所示 基于g u i 的自动化测试方法在测试脚本维护 测试结果验证 和测试 时序控制上存在许多问题 开始 解析测试用例脚本 模拟键盘或鼠标动作 上 屏幕截图 上 图像文字识别 上 检验图像文字中是否出现目标关键字 记录测试结果 结束 图2 2 基于g u i 的自动化测试方法运行测试用例的一般流程 2 2 1 基于g u i 的移动终端软件自动化测试的脚本维护问题 基于g u i 的自动化测试普遍采用录制 回放式的脚本对测试进行控制 也有 一些系统提供了脚本的高级编辑功能 但是 无论是何种形式的脚本编辑方式 基于g u i 的自动化测试最普遍的一个问题是测试脚本维护问题 主要体现在以 下两个方面 1 由于软件界面随着软件的升级不断变化 基于g u i 的测试脚本对应用的 变化过于敏感 以至于测试人员要不停的修改测试脚本 2 2 2 对于多平台的终端软件 g u i 存在许多平台相关的界面因素 甚至相同 系统的手机不同型号之间亦存在不同的界面因素 移动终端软件在不同 厂商不同平台上的手机运行时 存在着一些因机型不同而带来的差异 例如n o k i as 6 0 平台的某些版本的手机 在运行软件打开左软键菜单时 会自动插入 退出程序 的系统选项 而某些版本的机型则不会插入 1 4 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第2 章 该选项 这就直接导致测试所需的功能选项位置的不同 因此必须针对 不同平台的手机调整测试脚本 也大大增加了脚本的维护难度 2 2 2 基于g u i 的移动终端软件自动化测试的结果验证问题 基于g u i 的自动化测试系统的最大问题 还在于测试过程的结果验证非常困 难 结果验证是指在测试用例的执行过程中 必须在执行每一个动作或者执行一 系列动作后 检查当前的系统状态 以确保当前步骤或当前测试用例是否成功执 行并获得期望结果 结果验证的意义在于 1 检验测试用例是否成功执行 以判断系统功能的正确性 2 测试用例的执行一旦出错 后续动作的前置条件已经不存在 再执行下 去会出现更多不可预测的错误 没有再继续执行下去的必要 因此必须 尽可能及时的发现测试用例执行过程中的错误 及时停止该测试用例的 继续执行 以节省测试时间 可见 结果验证对于自动化测试的意义不仅仅在于检查测试用例的通过与 否 还有助于测试过程的组织和控制 基于g u i 的自动化测试方法最常用的结果验证手段是使用屏幕截图并采用 o c r 光学字符识别 的方法在界面中匹配关键字 1 1 但o c r 无法准确地识别类 似于1 3 和b o 和0 1 和l 等易混淆的字符 精确度不高 会降低自动化测试 系统的总体精确度 j u i c h it a k a h a s h i 在 2 3 对自动化测试系统的结果验证进行研究并总结出像素 匹配和a p i 比较两种方式 其中像素匹配方式处理速度慢 空间占用率高 并且 移植性差 无法应用于多平台的系统 而a p i 比较即是通过调用系统底层a p i 来截取程序向g u i 输出的信息 例如w i n d o w s 系统中可以利用钩子函数来实现 但是这种做法亦是依赖于不同平台的固有特性 在移动平台上很难实现 更谈不 上具有可移植性 2 2 3 基于g u i 的移动终端软件自动化测试的时序控制问题 基于g u i 的自动化测试无法直接判断操作步骤是否完成 而只能采用定时检 验屏幕图像数据的方式 这就给测试步骤的时间间隔控制上带来了较大的困难 1 5 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第2 章 其主要原因在于 1 不同移动终端的处理能力不尽相同 执行相同操作的反应时间长短不 一 2 移动终端一般使用无线网络 网络信号存在许多不稳定因素 即使是同 一移动终端 在不同网络条件下执行相同的操作的反应时间也不尽相 同 因此 采用定时验证方法的基于g u i 的自动化测试 会提高自动化测试系统 的出错率 为了降低出错率 只能将操作步骤的时间间隔尽量延迟 以推迟过程 验证的时间来确保操作步骤的顺利完成 其测试效率甚至比手工测试低 因此也 无法对被测系统进行性能测试 2 3 基于业务逻辑的移动终端软件自动化测试方法研究 基于业务逻辑的自动化测试绕开了待测软件的图形用户界面层建立运行环 境 根据测试用例设定的流程和参数 调用被测系统的业务逻辑来执行系统功能 并对业务逻辑运行结果进行验证和性能统计 实现高效的自动化系统测试 其一 般流程如图2 3 所示 开始 解析测试用例脚本 调用被测系统业务逻辑接口 上 获取业务逻辑执行结果 上 比较执行结果是与期望结果 记录测试结果 j 结束 图2 3 基于业务逻辑的自动化测试方法运行测试用例的一般流程 基于业务逻辑的自动化测试方法 可以较好地解决基于g l 的自动化测试方 1 6 基于业务逻辑的移动终端软件自动化测试方法研究与应用第2 章 法在脚本维护 结果验证 和时序控制上的各种难题 2 3 1 业务逻辑接口与实现的分离 对于自动化测试中的脚本维护问题 基于业务逻辑的自动化测试可以实现业 务逻辑的接口与实现相分离 对于一个程序而言 它的逻辑功能是相对稳定的 在需求确立之初便已经确定了它的逻辑功能 因此 在软件的需求相对稳定的情 况下 即使在不同的平台上使用不同的语言实现 或者使用不同的数据结构和算 法实现 软件的业务逻辑都是稳定的 相同的 存在变化的只是业务逻辑之下的 底层实现和业务逻辑之上的图形用户界面 因此 将业务逻辑的接口与实现相分 离 统一制定平台无关的抽象业务逻辑接口 开发人员针对该业务逻辑接口在不 同的平台上进行实现 而测试人员则可以同时针对抽象业务逻辑接口进行测试 基于业务逻辑的自动化测试脚本是针对抽象业务逻辑接口定义的 其意义在 于 1 测试脚本可以不受不同平台的底层实现细节和差异的影响 随着软件的 升级换代 无论软件的底层实现如何升级修改 只要抽象逻辑接口没有 发生变化 测试脚本就可以保持不变 2 不管移动终端软件在不同的移动终端上的用户界面是否存在差异 或者 软件界面如何修改 也对基于业务逻辑的自动化测试不会产生任何影 响 3 即使由于软件的升级或需求的变动带来被测系统业务逻辑接口的变化 也可以通过编写适配器来屏蔽对测试没有意义的系统底层变动 从而最 大限度降低对测试脚本的修改 因此 基于业务逻辑的自动化测试大大提高了测试脚本在不同平台不同机型 上的通用性和可移植性 并且随着软件的升级和修改而需要做的脚本维护工作也 较少甚至不需要做任何改动 在软件的功能测试和回归测试中起到十分重要的作 用 2 3 2 基于业务逻辑的自动化测试的结果验证方法 基于业务逻辑的自动化测试 是通过调用系统业务逻辑接口来实现相应的业 1 7 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第2 章 务逻辑功能 每一步的业务逻辑执行后都会返回相应的返回值 以告知业务逻辑 功能执行的结果状态或返回相应结果数据 从而可以轻松的实现验证测试过程的 正确性 如果业务逻辑的执行出错 相应的业务逻辑也会抛出异常 自动化测试系统 便可以捕获到异常 从中读取 记录和报告异常信息 以及判定测试结果的正确 性 此外 基于业务逻辑的自动化测试还可以提供专门用于查询系统状态和数据 的业务逻辑 在自动化测试过程中 可以通过调用这样的业务逻辑接口来辅助进 行结果验证 可见 基于业务逻辑的自动化测试 可以在测试过程中获得准确 实时的状 态信息和输出数据 可以在测试过程中执行严格的状态检查来保证测试结果的准 确性 2 3 3 基于业务逻辑的自动化测试的时序控制方法 基于业务逻辑的自动化测试 由于每一步业务逻辑都可以通过返回值 抛出 异常甚至调用专用的状态查询业务逻辑来检查测试步骤的执行结果 旦获得单 步结果 便可以马上执行下一步操作 具有以下两方面优点 1 简化了自动化测试的时序控制 每个测试步骤结束后系统可以非常自然 而方便地调用下一个测试步骤 2 由于测试步骤可以十分紧凑地连续进行 因此也提高了自动化测试的效 率 而不用像基于g u i 的自动化测试那样把大量的时间浪费在测试步骤 之间的等待上 此外 基于业务逻辑的自动化测试可以精确地记录每一步的执行时间 从而 实现对系统性能的测试和统计 而这是基于g u i 的自动化测试所无法实现的 2 4 移动终端软件自动化测试方法的横向比较 移动终端平台的存在着各种平台差异性 不同的移动终端操作系统提供的各 种底层服务不尽相同 功能特性存在差异 用户界面特性和用户操作流程也存在 种种差异 即使是同一品牌手机使用同一操作系统的不同型号的手机 可能由于 1 8 基于业务逻辑的移动终端软件自动化测试方法研究与应用第2 章 系统版本 硬件配置的差异而具有不同的功能特性或界面特征 移动终端网络使用g p r s 或w i f i 等无线网络 网络的不稳定会导致传输速 度低 出错率高等传输问题 这既是自动化测试系统所必须统计和测试的问题 也是测试过程中必须面对和克服的问题 因此 移动终端软件的自动化测试具有更高的要求 对于之前所述的三种自 动化测试的方法的横向比较如表2 1 所示 表2 1 移动终端软件自动化测试方法的横向比较 基于a p i 的自动化测试 基于g u i 的自动化测试基于业务逻辑的自动化 测试 所测软件层次 a p ig u b l l 业务逻辑层 所属测试类型白盒测试 单元测试黑盒测试 功能测试 灰盒测试 功能测试 性能测试 是否节约测试是 既可以运行在真实否 只能运行在真实手 是 既可以运行在真实 设备的手机环境 又可以运机环境 的手机环境 又可以运 行在模拟器环境行在模拟器环境 是否节省测试否 a p i 测试并不能保否 比手动测试更慢 是 比手动测试快 因 时间 证整体功能的正确性 因为每一个测试步骤都为测试步骤之间不需要 还需要进行进一步的系需要等待事先设定好的事先设定好的时间间 统功能测试 一段时间间隔 该时间隔 程序可以判断步骤 间隔必须足够长以保证 完成与否 一旦完成则 测试测试步骤己完成或立即执行下一步操作 者已超时失败 可靠性差 单元测试并不能保差 使用o c r 像素比 好 调用业务逻辑返回 证系统功能的正确性较等方法进行结果验证的结果比较精确 并可 受许多界面因素和平台以提供专用于查询系统 因素制约 检查点的检状态的业务逻辑来辅助 查条件一般比较宽松测试 可维护性差 a p i 接口数量较庞差 与u i 耦合度太高 好 b l l 接口比较稳定 大 修改频繁而u 会随着软件版本随软件的升级对测试系 的升级而不断改动统和测试用例所作修改 较小 可移植性差 a p i 接口与平台的差 与l n 耦合度太高 好 b l l 接口可以在 相关度非常高而l 会在不同的设备不同平台上可以保持统 平台上存在许多细微的 差别 测试真实度低 仅为单元测试层面高 不改变被测试软件中 不是运行完整的被 和环境测程序 并不能完全反 映实际运行情况 从对比中可以看出 基于业务逻辑的自动化测试在移动终端软件的测试中 1 9 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第2 章 可以节约测试的时间 提高测试效率 具有较高的可靠性 对测试结果的验证精 确而实时 在多平台环境下具有较高的可靠性 可以满足移动终端软件多平台测 试的要求 具有较好的扩展性 可以随软件的升级修改而做较简单的维护 可以 在回归测试中发挥重要作用 2 5 小结 本章系统分析了自动化测试的优点与不足 对最常用的基于g u i 的移动终端 软件自动化测试方法进行分析 指出其在脚本维护 结果验证和时序控制等方面 存在的重大问题 通过分析提出基于业务逻辑的移动终端软件自动化测试方法 具有脚本可维护性和可移植性高 结果验证简单准确 时序控制方便灵活等特点 最后 并对不同自动化测试方法在移动终端软件测试上的应用做出系统的横向比 较和分析 从中体现出基于业务逻辑的移动终端软件自动化测试方法的优越性 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第3 章 第3 章基于业务逻辑的自动化测试系统的 设计1 茛计 根据基于业务逻辑的测试思想 本文设计了一个基于业务逻辑的移动终端软 件自动化测试系统 可以完成移动终端软件的功能测试和性能测试 3 1 基于业务逻辑的测试系统与被测系统的联系 基于业务逻辑的自动化测试系统与被测系统在系统架构的层面上 存在两方 面的联系 1 测试系统与被测系统共用相同的业务逻辑层和系统底层服务层 被测系 统是在业务逻辑层的基础上使用图形用户界面对业务逻辑进行封装 而 测试系统是在业务逻辑层的基础上实现测试用例脚本的自动化运行来 完成相应的业务逻辑流程 如图3 1 所示 测系统 一 厂自动化铡 图形用户界面ii l测试运行控制器 业务逻辑层 底层服务层 图3 1 基于业务逻辑的自动化测试系统与被测系统的联系 2 为了方便基于业务逻辑的自动化测试的实现 被测系统需要在实现业务 逻辑层时 尽量将系统异步操作封装在单一的业务逻辑接口中 将异步 操作转化为同步操作 例如与服务器交互的系统操作中 最常见的形式 是向服务器发送一个请求 然后等待服务器的应答 接受并处理服务器 的返回信息 如果将请求发送和接受并处理服务器应答信息分别封装为 两个业务逻辑接口中 由于自动化测试系统使用脚本对系统操作过程进 行描述 因此中间的等待过程和请求与应答的对应关系将很难描述 测 试系统的解释运行模块也很难实现 因此 应该将类似的请求和应答操 2 l 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第3 章 作封装在单一业务逻辑接口中 以方便自动化测试系统的实现 3 2 基于业务逻辑的自动化测试系统框架设计 软件测试工作是围绕测试用例展开的 测试人员根据被测软件的功能特性编 写并运行一系列测试用例以最大限度地发现软件错误 或者达到性能测试 安全 性测试等其它测试目标 图3 2 软件测试流程 一个完整的测试过程至少包括测试用例设计 测试用例的执行 和结果验证 三个阶段 如图3 2 所示 因此 一个功能完善的自动化测试系统一般由三大模 块组成 测试用例设计模块 测试用例执行模块 以及结果验证模块 2 3 对于基于业务逻辑的自动化测试 结果验证不再是一件困难和麻烦的事情 通过执行测试步骤调用系统业务逻辑接口获得的返回值和捕获的异常信息可以 对测试结果进行精确的判断 或者提供专用的业务逻辑来查询系统状态以辅助判 定运行结果 因此 在基于业务逻辑的自动化测试系统中 测试用例的执行和验 证可以在测试用例运行的过程中一体化完成 测试用例执行模块和结果验证模块 合为运行控制模块 在自动化测试的运行过程中 结果报告和查询功能也是十分重要的 主要体 现在 1 在执行庞大的测试用例集或者运行一个长耗时的测试用例时 测试过程 中一旦出现严重的系统错误而导致测试无法进行下去时 自动化测试系 统需要及时地将系统错误报告给测试人员 以便确定并排除系统错误 重新启动测试 而不用等到测试人员在预计的测试结束时间到来时才发 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第3 章 现测试被提早中断 从而浪费了大量的测试时间 拖延了测试的进度 2 测试的目的在于最大限度地发现被测软件的错误 检验其稳定性以及系 统性能 因此自动化测试系统应该辅助测试人员对测试结果进行记录和 统计 提供测试人员进行查询和分析 综上所述 基于业务逻辑的自动化测试系统由测试用例设计模块 运行控制 模块 结果报告与查询模块共三大模块组成 系统总框架如图3 3 所示 图3 3 基于业务逻辑的自动化测试系统总框架 为了提高自动化测试系统的可维护性 应用接口与实现相分离的思想 统一 待测系统在不同平台下的业务逻辑接口 通过对不同平台的待测系统编写相应的 适配器来屏蔽平台差异 实现业务逻辑的抽象与具体的实现细节相分离 有利于 测试在不同的平台间移植 当待测系统的业务逻辑随系统的升级或修改而发生变 动时 也可以通过更新相应的适配器而使业务逻辑接口保持不变 因此也不需要 对原测试用例脚本进行修改 大大提高了测试系统的可维护性 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第3 章 3 2 1 测试运行控制模块设计 运行控制模块是自动化测试系统的核心模块 包括测试引擎和测试管理工具 两大部分组成 如图3 4 所示 图3 4 运行控制模块内部结构 测试用例管理工具包括测试用例配置 环境参数配置 运行控制和日志四大 子模块 1 测试用例配置子模块用于配置测试用例集的数据脚本和控制脚本 以及 测试用例的时序关系 测试人员可以在测试的过程中根据测试反馈信息 对测试用例进行重新配置 2 环境参数子模块提供环境参数的配置功能 测试人员可以配置环境参 数 将测试调整至不同的环境下进行 例如指定不同的服务器地址或代 理地址 指定使用不同的g p r s 网络或w i f i 网络等等 以验证各种环 境下系统功能是否出错 是否稳定 3 运行控制子模块可以控制测试的启动 暂停 取消 恢复等 方便测试 人员在发现系统错误或测试用例设计缺陷时可以及时干预正在运行的 测试 及时调整环境参数配置或测试用例集配置后重新启动测试 方便 基于业务逻辑的移动终端软件自动化测试方法研究与应用第3 章 测试的灵活控制以节省测试时间 4 日志子模块提供日志记录的服务 接受测试引擎的调用 记录自动化测 试过程中的系统信息 以方便测试系统的调试 也可以有效的记录被测 系统的异常或错误信息以确定被测系统的缺陷所在 测试引擎是整个测试运行控制模块甚至整个自动化测试系统的核心 测试引 擎运行测试用例的一条业务逻辑命令的过程如图3 5 所示 i 测试 云行格翻结晏翳钎脚太懈折业葬逻揖调用 适配置被勇秉统业彝谬蟹屡菇涮荔绕雇孱腰葬屡 脚本碡析 l 业务逻辑命令 输天蠡据 期望数据7 业务陧辑命令 输入教l旨 i 业务逻辑功能调用 业务逻辑功能调用 系统调用 返回值或抛出异常7 i 返回值或抛出异常 返回值或抛出异常 运行结果 两望结果 实际结果 验证结果r l 1 一 记录日每发送艚 图 3 5 测试引擎工作时序 测试引擎在解析测试用例脚本到运行测试的具体运行流程如下 1 根据测试人员设定的环境参数和指定的测试用例集 加载测试用例脚本 进行解析 根据脚本指令调用不同的业务逻辑 完成相应的功能操作 2 根据业务逻辑接口的返回值或异常抛出来收集测试数据 进行结果验 证 3 测试引擎块会对测试中出现的异常进行处理和记录 一方面 必须在一 个测试用例发生异常 及时中止该测试用例的执行 使其它测试用例可 以继续执行下去 这在无人值守的长时间自动化测试用是非常重要的 另一方面 测试引擎要对测试用例的异常情况进行记录 保存现场状态 等数据 供测试人员查看和再现 以确定是否为被测系统的代码错误或 设计缺陷 及时发现错误并掌握充分的依据 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第3 章 4 如果测试过程中出现严重的系统错误导致测试无法运行下去 测试引擎 会调用结果报告与查询模块的实时报告功能接口及时发出错误报告 以 通知测试人员及时查看系统错误信息 调整测试计划配置后及时重新启 动测试 避免测试人员在测试预期结束时间时到来才发现测试早已出错 停止 从而避免浪费了测试时间和耽误测试进度 5 测试引擎运行过程中收集到的测试数据和结果会发送给测试结果报告 与查询模块 以记录到测试结果报告与查询模块的数据库中 根据测试 结果报告与查询模块的设置定期发送实时报告 或接受测试人员的查 询 3 2 2 测试用例设计模块设计 测试用例是对测试流程的描述 是测试计划的具体实现 测试用例设计模块 对系统业务逻辑接口进行封装 提供业务逻辑功能的单步调用与反馈 允许测试 人员对逻辑功能操作步骤进行可视化编辑 将不同的逻辑功能流程和输入输出数 据记录为相应的测试用例脚本 模块内部结构如图3 6 所示 图3 6 测试用例设计模块内部结构 测试用例设计模块的具体功能包括 1 提供测试用例脚本的可视化编辑功能 测试用例脚本使用x m l 语言描 述 并且将控制脚本和数据脚本分离开来 因为有些测试用例仅仅是输 入输出数据上的差异 控制流程基本一致 使用控制脚本和数据脚本相 基于业务逻辑的移动终端软件自动化测试方法研究与应用第3 章 分离的测试用例脚本 可以使得多份数据脚本共用一份控制脚本 这样 做一方面共用了控制脚本减少了数据的冗余 另一方面在控制流程发生 变化时只需要修改一份控制脚本即可 大大减少了测试用例脚本维护的 工作量 也降低了修改时出错的几率 2 提供脚本的格式验证和逻辑验证 格式验证是指检验手动编辑过的测试 用例脚本是否符合相应的脚本格式规范 而逻辑验证是指检验测试用例 的编写是否符合系统业务逻辑的特点 例如检验是否符合业务逻辑的时 序关系 即调用某个业务逻辑时是否已经调用了前置的业务逻辑 3 单纯的测试用例可视化编程虽然方便测试人员调试测试用例 但是不利 于测试用例的批量编写 因此 测试用例设计模块还提供测试用例的批 量文本编辑功能 4 提供测试用例联机调试功能 将脚本命令和输入数据发送到运行控制模 块的测试引擎进行单步或整体运行 检验输出结果是否与期望结果一 致 5 提供测试用例脚本的版本控制功能 可以结合现成的s v n c v s v s s 等版本服务器实现 3 2 3 测试结果报告与查询模块设计 成 结果报告与查询模块由实时报告子模块与测试结果查询子模块两大部分组 基于业务逻辑的移动终端软件自动化测试方法研究与应用 第3 章 员 图3 7 实时报告子模块内部结构 实时报告子模块提供接口供运行控制模块调用 其内部结构如图3 7 所示 在测试开始之前 测试管理员首先对实时报告子模块进行配置 配置内容包括 1 实时报告模板配置 配置实时报告邮件的格式集 根据调用实时报告子 模块时的参数选择相应的报告模板来发送实时报告邮件 2 定期报告任务配置 配置阶段性实时报告的发送时间和发送内容 3 收件人列表配置 配置实时报告的收件人列表 可以是与测试系统与被 测系统相关的开发人员与测试人员 实时报告通过基于s m t p 的邮件发送引擎以邮件的形式发送给测试管理员 内容分为两种 1 在运行控制模块运行测试用例的过程中出现严重系统错误导致测试中 断时 可以通过调用实时报告接口 向测试监控人员及时报告错误 以 通知测试人员及时查看错误信息 调整环境配置或修改不合理的测试用 例 并及时重新开始运行新的测试 以节约测试时间 2 根据系统配置 查询存储在数据库中的测试结果信息 定期自动发出阶 段报告给管理员 以方便测试人员及时掌握测试的运行情况 基于业务逻辑的移动终端软件自动化测试方法研究与应用第3 章 行控制模块测试 脚本解 析 业务逻辑 功能调用 实时报告发送 测试结果发送 验证结 结果验 证 测 试 结 果 存 储 接 口 果管理子模 数据库驱动 试结果数据 测 图3 8 结果查询于模块内部结构 结果查询子模块围绕测试结果数据的管理设计的 内部结构如图3 8 所示 主要功能包括 1 提供测试结果存储服务 接受运行控制模块的调用 将测试结果存入数 据库 2 提供测试结果查询服务 测试人员可以根据时间条件或其它条件查询历 史结果 并自动生成报表 以查看被测软件稳定性的变化 方便对被测 软件的评估 3 测试数据管理 允许备份和删除测试结果数据库中的历史数据 4 可以扩展实现b u g 管理系统 对测试中发现的系统缺陷进行跟踪管理 3 3 基于业务逻辑的自动化测试系统与被测系统并行开发 的流程分析 基于业务逻辑的自动化测试系统 由于不是单纯的黑盒测试 需要被测软件 在系统设计时提供一定的支持 以方便自动化测试系统的开发 配合自动化测试 工作的进行 在允许的情况下 应尽量在被测系统开始设计时同时开始自动化测 试系统的设计工作 基于业务逻辑的自动化测试系统的开发流程如图3 9 所示 芙一 笺蜀舅 基于业务逻辑的移动终端软件自动化测试方法研究与应用第3 章 图3 9 基于业务逻辑的自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 探索乡村振兴路径2025年乡村文化创意集市区域协调发展报告
- 巷道掘进知识培训通知课件
- 灌区基本知识培训课件
- 灌区业务知识培训课件
- 视频监控设备项目可行性研究报告
- 激光蚀刻安全知识培训课件
- 岩石说课课件
- 2025版建筑工程合同管理与招投标全过程服务协议
- 2025版购物中心开业活动合同样本
- 二零二五年度电子产品分销代理合同模板
- 高速天桥拆除方案(3篇)
- 第1课 鸦片战争 课件 历史统编版2024八年级上册
- 2025年中国冷链物流行业投资前景分析、未来发展趋势研究报告(智研咨询发布)
- 2025合作合同范本下载
- 手外伤急救诊疗流程标准化
- 农村土地托管培训课件
- 老年专科护士学习培训汇报
- 基孔肯雅热防控培训课件
- 公司岗位补助管理办法
- 游戏与儿童发展课件
- 捐赠助学活动方案
评论
0/150
提交评论