软件测试中的冲突测试
转自:http://www.51testing.com/html/54/n-247254.html
摘要:本文介绍了我们公司内部的一种测试方法——冲突测试的含义,并就冲突测试在我司使用范围、冲突测试用例的设计方法等做了简单的介绍。
关键词:冲突测试
1、什么是冲突测试
冲突测试是我们公司内部的一种叫法,可能不同的公司叫法不同。我们公司所谓的冲突测试是指,在运行某一程序的功能时被第三方功能或者软件给干扰的测试。该测试方法模拟的是一种基于软件状态场景的测试。从软件的运行状态来看,我们认为软件状态一般只有开始、挂起、结束,这三种状态。冲突测试即为模拟干扰软件运行“开始”、“挂起”、“结束”状态的测试。
2、冲突测试的应用范围和一些应用场景
冲突测试这种测试方法,常见于手机软件测试、移动通信类嵌入式软件测试等领域。但在一些桌面软件或者Web系统测试领域当中也可应用,只是应用的场景并不如移动通信类软件这么广泛。
下面简单介绍一下其不同软件类型中的典型应用场景:
手机软件:
比如在收短信时,来个电话的场景;
在播放视频过程中,插入了USB;
在通话过程中,收到了一个短信等等。
移动通信类嵌入式软件:
移动通信类嵌入式软件,大多是基于3G网络应用的软件。比如一些车载软件,将此类终端装在汽车上,就可以实现类似基于手机功能,并整合互联网娱乐的功能的软件。典型软件类型,如丰田公司的“G-BOOK”、比亚迪的“i”系统等。
其测试场景比如:
在下载导航的过程中,来了一个即时消息;
在播放音乐的过程中,来了一个电话;
在蓝牙连接的过程中,又接收到了一个新的蓝牙连接请求等等。
桌面软件或者Web系统:
桌面软件或Web系统的冲突测试,常见于多线程程序、具有多系统合作程序、多权限管理的程序。
多线程程序:
比如某查询功能,由于数据量很多,查询后有一个等待加载完成的状态线程。这时我们就可以通过关闭标签或者页面,结束这个等待的状态线程;
有某导出数据的功能,在导出数据等待过程中,关闭标签或者页面,结束这个等待的状态线程。
……………………
3、冲突测试应该在整个测试中的地位
冲突测试在整个测试中的地位应该与边界值测试中的地位相同。在设计测试用例时,也应较多的考虑这类测试。根据以往采用这种测试方法进行测试的经验来看,此类测试往往会引起一些较严重的问题。比如上文中提示到“在播放视频过程中,插入了USB”,就引起过手机软件黑屏,且不能恢复的p1级问题;“在下载导航的过程中,来了一个即时消息”,引起车载导航功能在界面中卡死,只有重启才能恢复软件运行的问题;“查询功能,由于数据量很多,查询后有一个等待加载完成的状态线程。这时我们就通过关闭标签结束这个等待的状态线程”,引起桌面软件彻底崩溃,只有通过进程结束才能恢复的问题;多系统合作程序那个例子,在我们做过的论坛系统中,引起过文章被发表通过的问题。
为什么说冲突测试跟边界值测试法的地位相同呢?
因为说白了其实冲突测试就是边界值法测试方法的一种具体体现。对边界值法有一个小小的误区,无论是书上还是网络上通常说到边界值法的时候,举的例子往往是数量边界,即某个输入框只能为20位字符时,我们测试其21位字符的情况,这当然也没有错,只是常此以往,很多测试人员认为边界值法就是数据边界了。其实我认为边界值法,包括三种:输入动作的边界,数量的边界,以及状态的边界。所谓输入动作的边界,比如查询有三个输入框,一个框都不输入去查询,这就是一个输入动作的边界。数量边界,即一个值的最小和最大数量。状态边界,即“开始”、“挂起”、“结束”这三种状态。由于本文重点是介绍冲突测试这种方法,关于边界值就不继续禅述了。
4、冲突测试用例的设计方法和执行策略
此类测试用例设计的方法与其它类型的用例设计方法基本上相同。不过,不同的软件类型其用例设计方法的偏重点也略有不同。我们先来看看手机和移动通信类嵌入式系统的用例设计大体方法和执行策略:
A)确定可打断其它功能状态的功能。
比如手机功能:一般通话、蓝牙、短信、彩信、闹钟、USB、充电等功能,都会弹出一个提示信息层。所以冲突测试用例,都必须考虑这种功能打断其它程序时会不会引起一些异常等。
B)遍历所有功能模块
分析功能模块的使用频率,将不同的使用频率的模块按不同的级别划分,以便有利于测试策略的安排。
C)执行策略
此类测试在手机等移动通信软件中的一个难点就是,找准测试时间点。因为在执行某个功能时,发生的速度非常快,而要打断这个状态就得算好时间。这一点,我想做过手机软件测试的同志是非常清楚的。我所采用的方法,一般是在这个功能使用手机秒表功能计算并统计时间后取出平均时间来执行的。另外,此类用例在前期应执行级别最高的用例,到中后期按照多个版本遍历所有级别的原则进行组合策略按排。
5、冲突测试用例的实例
手机软件,如短信模块的一些用例:
模块 |
用例概要 |
测试步骤 |
期待结果 |
短信模块 |
来电话 |
1.从主菜单界面进入短信界面过程中,有电话呼入 |
1.电话正常呼入,仍处于主菜单界面 |
短信模块 |
来电话 |
1.进入写短信界面过程中,有电话呼入 |
1.电话正常呼入,仍高亮于写短信菜单 |
短信模块 |
来电话 |
1.在发送短信过程中,有电话呼入 |
1.电话正常呼入,该短信发送失败,保留在收件箱内 |
短信模块 |
来闹钟 |
1.从主菜单界面进入短信界面过程中,闹钟时间到 |
1.正常弹出闹钟,关闭闹钟后,仍处于主菜单界面 |
短信模块 |
来闹钟 |
1.进入写短信界面过程中,闹钟时间到 |
1.正常弹出闹钟,关闭闹钟后,仍高亮于写短信菜单 |
短信模块 |
来闹钟 |
1.在发送短信过程中,闹钟时间到 |
1.正常弹出闹钟,关闭闹钟后,该短信发送失败,保留在收件箱内 |
....
软件测试中的冲突测试相关推荐
- 软件测试中的压力测试是什么?
压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性.压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃.它甚至可以测试超出正常工作 ...
- 软件测试中不需要测试的八件事
不要测试它 做为一名测试人员,我们也许会问我们自己很多问题: ● 我们可以立即执行的最好的测试是什么? ● 我将要使用的测试方法是什么? ● 这是一个Bug吗? ● 我已经测试完成了吗? 但是我们之中 ...
- 在软件测试中如何搭建测试环境?
去搭建测试环境是软件测试实施的一个重要阶段,测试环境适合与否会严重影响测试结果的真实性和正确性.测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器.客户端.网络连接设备,以及打印机/扫描仪等辅 ...
- 软件测试中有关界面测试经验总结
关键字: 1.应验证显示内容的完整性: a) 报表显示时应考虑显示宽度的自适应或自动换行. b) 所有有数据展现的界面(如统计.查询.编辑录入.打印预览.打印等),必须使测试数据的记录数超过一屏/一页 ...
- 什么是软件测试中的探索性测试(完整指南)(二)
目录 Session-based Exploratory Testing基于会话的探索性测试 Pair Based Exploratory Testing基于结对的探索性测试 Exploratory ...
- 软件测试中的面向对象测试,面向对象编写测试用例
前言 测试用例和测试点是相辅相成的,测试点是属于思路性质的,测试用例是属于在实际的工作中具体怎么进行测试的一个依据.一般情况下,用例编写时,我建议把用例中有公用的部分,提取出来写到一块,有特性的部分, ...
- 软件测试中的ab测试指的是什么?
随着移动互联网流量红利.人口红利的逐渐衰退,越来越多的产品运营开始关注数据驱动的精细化运营方法,期望通过精细化运营在一片红海中继续获得确定的用户增长,而A/B测试就是一种有效的精细化运营手段. AB测 ...
- 软件测试中抓包测试,抓包的目的是什么?
在程序运行的数据交互中,传输的数据一般都是以数据包的形式传输. 在这个发送和接收的过程中,可能发出的数据包中有错误的数据,也可能接收的包中有错误的数据,从而导致后期的程序处理出错. 因此我们直接抓取传 ...
- 软件测试中PR测试是什么意思?
在软件测试中,我们会遇到PR测试,那么软件测试中的PR测试是什么意思呢?有的人说是性能测试,是正确的答案吗?下面晟仔就给大家介绍下PR测试的意思以及做法. PR的性能测试是通过自动化的测试工具模拟多种 ...
最新文章
- 【重大更新】DevExpress v17.1新版亮点(DevExtreme HTML5/JS篇)
- POJ 2853 Sequence Sum Possibilities
- html 将两个标签绑在一起,基本标签2
- HP ProLiant 服务器 - 基础知识
- 沃尔什哈达玛变换Matlab,哈达玛变换矩阵-数字图像处理.ppt
- 不一样的三一重工:重在选择 —— 三一集团CIO潘睿刚专访系列之一
- LVM基本介绍与常用命令
- Jquery中拿到相同的对应的所有的标签
- JasperReport 导出PDF不能加载
- sqlserver高可用方案_PowerJob 的自实现高可用方案,妙妙妙
- 一 c语言程序设计 张玉生版
- 群晖NAS教程(十三)、利用Web Station安装wordpress博客
- 【Python实践】Python部分实际案例解答1
- 详解Java 堆排序
- 谷歌驱动的下载和配置
- 计算机音乐专业考研,武汉音乐学院2021年硕士研究生招生考试《计算机音乐作曲》考试大纲...
- 人无自信当废人无自信而不立
- java树型结构数据根据条件移除节点(递归方式)
- 次世代教程——美队盾牌雕刻
- php可以用中文的单引号吗,PHP中单双引号用法误区
热门文章
- jquery操作select option使用小结
- 使用java9的uuid生成方式,让uuid生成速度提升一个档次...
- 吴恩达机器学习笔记21-正则化线性回归(Regularized Linear Regression)
- Java Mail 邮件发送(一):入门Demo
- nginx调用PHP有sock方式和端口方式
- 软件:向工业互联网产业成功转型的关键
- CentOS 6 IPv6 关闭方法
- nginx访问日志,错误日志参数说明
- EasyUI--datebox设置默认时间
- POJ 1678 I Love this Game!