1、什么是冲突测试
冲突测试是我们公司内部的一种叫法,可能不同的公司叫法不同。我们公司所谓的冲突测试是指,在运行某一程序的功能时被第三方功能或者软件给干扰的测试。该测试方法模拟的是一种基于软件状态场景的测试。从软件的运行状态来看,我们认为软件状态一般只有开始、挂起、结束,这三种状态。冲突测试即为模拟干扰软件运行“开始”、“挂起”、“结束”状态的测试。
2、冲突测试的应用范围和一些应用场景
冲突测试这种测试方法,常见于手机软件测试、移动通信类嵌入式软件测试等领域。但在一些桌面软件或者Web系统测试领域当中也可应用,只是应用的场景并不如移动通信类软件这么广泛。
下面简单介绍一下其不同软件类型中的典型应用场景:
手机软件:
比如在收短信时,来个电话的场景;
在播放视频过程中,插入了USB;
在通话过程中,收到了一个短信等等。
移动通信类嵌入式软件:
移动通信类嵌入式软件,大多是基于3G网络应用的软件。比如一些车载软件,将此类终端装在汽车上,就可以实现类似基于手机功能,并整合互联网娱乐的功能的软件。典型软件类型,如丰田公司的“G-BOOK”、比亚迪的“i”系统等。
其测试场景比如:
在下载导航的过程中,来了一个即时消息;
在播放音乐的过程中,来了一个电话;
在蓝牙连接的过程中,又接收到了一个新的蓝牙连接请求等等。
桌面软件或者Web系统:
桌面软件或Web系统的冲突测试,常见于多线程程序、具有多系统合作程序、多权限管理的程序。
多线程程序:
比如某查询功能,由于数据量很多,查询后有一个等待加载完成的状态线程。这时我们就可以通过关闭标签或者页面,结束这个等待的状态线程;
有某导出数据的功能,在导出数据等待过程中,关闭标签或者页面,结束这个等待的状态线程。
3、冲突测试应该在整个测试中的地位
冲突测试在整个测试中的地位应该与边界值测试中的地位相同。在设计测试用例时,也应较多的考虑这类测试。根据以往采用这种测试方法进行测试的经验来看,此类测试往往会引起一些较严重的问题。比如上文中提示到“在播放视频过程中,插入了USB”,就引起过手机软件黑屏,且不能恢复的p1级问题;“在下载导航的过程中,来了一个即时消息”,引起车载导航功能在界面中卡死,只有重启才能恢复软件运行的问题;“查询功能,由于数据量很多,查询后有一个等待加载完成的状态线程。这时我们就通过关闭标签结束这个等待的状态线程”,引起桌面软件彻底崩溃,只有通过进程结束才能恢复的问题。