您现在的位置: 通信界 >> 测试仪表 >> 技术正文  
 
中国移动技术实践分享:探索式测试方法介绍及应用实践
[ 通信界 / 周煜澄 / www.cntxj.net / 2018/11/14 23:00:45 ]
 

任何一个软件公司发布的产品都有缺陷,所以软件测试是产品开发过程中必不可少的一部分。经过长期的发展,软件测试方法不断完善,探索式测试方法也是其中的一种。本文将结合实际工作谈谈对探索式测试方法的理解。

探索式测试方法主要分为两类:

局部探索式测试法针对测试人员在运行任何一个测试用例时所需要作出的细微决定;

全局探索式测试法针对测试人员在编制测试计划和测试用例设计时所需要考虑的广泛的战略性问题。

一、局部探索式测试法

1 输入:合法输入、非法输入

1)输入筛选器

第一,开发是否正确的实现了该功能?

第二,是否可以绕过屏蔽器?或者当输入值进入系统后还可以修改?

2)输入检查

测试时必须仔细阅读每一条错误信息,检查该信息是否写错了,错误信息还可以透漏开发编程时的一些想法。

3)异常处理

如果测试看到一个通用出错信息,建议测试再反复测试同一段函数,继续使用刚才引发异常的输入数据,或稍微修改一下,看看会不会导致出错。尝试运行其他一些要调用该函数的测试用例,看看会发生什么情况。

4)常规输入和非常规输入

例如:和Ctrl、Alt、Esc按键组合的字符,操作系统、编程语言、浏览器和运行时环境的特定保留词或按键。

5)使用输出来指导输入选择

①首先确定希望程序产生的输出结果,然后考察所有用户场景,来确定输入;

②先观察输出结果,再选择新的输入,使新的输出为重新计算后的结果。

2 状态

软件的一个状态就是状态空间中的一个点,它由所有内部数据结构的取值来唯一确定。

①使用状态信息来帮助寻找相关的输入,如果两个或更多个输入在某种程度上关联,那么它们应该放在一起测;

②使用状态信息来辨识重要的输入序列,当一个输入导致状态信息被更新时,紧接着再多次使用同样的输入会导致一连串的状态变化。

例如:

对数据库中的表进行多次更新,查看数据是否会溢出。

3 代码路径

测试需明确知道代码的所有选择结构,并理解哪些输入会导致软件走这条分支而不走另一条。

4 用户数据

①如何模仿真实的用户数据

②使用真实的用户数据时,应考虑如何解决“隐私问题”。

5 执行环境

是指测试使用的操作系统及其当前的配置,还包括运行在同一操作系统上会和被测试软件进行交互的其他一些应用程序,以及会间接或直接影响被测试软件本身或影响被测试软件运行的任何驱动程序、代码、文件、设置等,还包括软件当前连接的网络情况、网络的可用带宽、性能等。

二、全局探索式测试法(漫游测试)

在软件测试中,我们可以把整个测试过程比喻成游客在城市中旅游的过程,测试类型对应城市中的不同区域,针对每个区域制定不同的游览路线。以下将结合实际测试过程中的案例,来简单阐述全局探索式测试法的应用。

1 商业区测试类型(软件的重要功能模块)

1)指南测试法:

测试严格遵照用户手册的建议执行操作。在测试一个全新的软件之前,测试人员需要详细阅读需求文档或使用手册,积极与开发人员沟通以充分了解产品功能;在测试产品的新版本之前,查看jira中的新特性描述、新的需求文档以及之前版本存在bug的用例。

2)地标测试法:

通过指南测试法确定关键的软件特性(地标),再确定地标的前后顺序,然后从一个地标执行到另一个地标来探索应用程序,直到访问了所有的地标。在这个过程中,需要记录已经使用过哪些地标。

例如:在BC-ETL的某次测试过程中,需要测试数据流中的多个流程,此时每个流程都作为一个地标,通过多次调换、添加或删除流程的来测试整个数据流能否顺利执行。

3)极限测试法

也称找麻烦测试法,即故意设置各种障碍来观察软件如何反应。

例如:

在罗网项目某次迭代中,测试基站查询模块,选择使用基站名称查询,在搜索框中输入覆盖范围很大的区域名称(如:南通)进行查询,页面因加载时间过长导致卡死。

4)深夜测试法

当下班之后软件执行各种维护任务,将数据归档,备份文件等,程序不自动执行的时候,测试人员强制程序执行。

2 历史区测试类型

历史区:

指遗留的代码,或是在前几个版本就已经存在的软件特性,也指那些用于修复已知bug的代码。

1)恶邻测试法

某个区域代码bug很多,建议对邻近区域进行详细的测试,以此来验证那些修复已知bug的代码没有引入新的缺陷。

2)博物馆测试法

找出遗留代码和老的可执行文件,并确保它们在测试中受到和新代码同样的待遇。在实际测试过程中,可以理解为对新版本中没有改动的功能进行回归冒烟测试。

例如:

在罗网项目的某次回归冒烟测试中,测试研判模型的多案时空碰撞模块,正确创建分析任务,在任务列表中查看分析结果,页面右上角提示出错,无法查看。

3 娱乐区测试类型(辅助特性)

1)配角测试法

鼓励测试专注于某些特定功能,特别是紧邻主要功能的辅助功能。

罗网项目的主要功能为通过研判模型对各类案件及人员进行分析,然而每次审批几乎都离不开新建工单的过程,所以测试时对研判模型的每个模块都增加了许多新建工单的用例。

2)通宵测试法

即使程序长时间运行,不去关闭,观察程序是否会发生异常。

4 旅游区测试类型(快速访问软件的各种功能)

1)收藏家测试法

收集软件的输出,越多越好。确保能观察到软件能生成的任何一个输出。此方法庞大,通常以小组为单位进行。

例如:在广西上网行为分析项目中,为确保接收到的数据格式和内容都正确,需提前造出大量用户数据,模拟实际的运行环境批量发送数据,批量查看输出结果。

2)超模测试法

只测试界面显示。

例如:在采购部供应链大数据平台的某次测试中,由于前端页面没有设置按比例缩放,导致页面在小屏幕上无法显示完全。

5 旅馆区测试类型(经常被忽略或者在测试计划中较少描述的次要及辅助功能)

1)取消测试法

启动操作然后停止它。可以对任何提供取消功能或者需要较长时间才能完成的功能做同样的操作。如果没有取消按钮,对于在浏览器中运行的程序可以试着按Esc键或是程序中的回退按钮。

2)懒汉测试法

测试人员做尽量少的实际工作。接受所有默认值,保持输入字段继续为空,在表单中尽可能少填数据,在进入下一个界面时不点击任何按钮或者输入任何数据等等。

传统的手工测试方法需要提前编写测试用例,然后严格地依次执行每一个用例,引入探索式测试方法可以在测试过程中更及时地发现问题并补充用例,两种方法相结合才能更有效地把控产品的质量。

如果未来开发技术大幅进步,也许会有一天,测试人员不再是必需的了。这当然是软件厂商和用户的福音,但是在可预见的未来,检测软件缺陷的最好方法还是使用测试技术,而不是开发技术。原因很简单,太多的不确定因素,太多的场景,可能导致自动化测试失效的情况太多了,无法一一跟踪。这一切都需要“人脑”的介入,现在如此,下个十年不会变,再过几十年可以依然如此。 

作者介绍

孙小霞  中国移动苏州研发中心 大数据产品部 技术总监

王均    中国移动苏州研发中心 大数据产品部 测试工程师

周煜澄  中国移动苏州研发中心 大数据产品部 测试工程师 

 

作者:周煜澄 合作媒体:移动Labs 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管