利用矩阵模式完成Web多种场景测试

阵模式形象的可理解为表格,我们常用表格来记录复杂的数据,若将表格首行和首列的数据看成一个个简单的测试点,那除首行首列之外的表格里的数据就可以看成一个复杂测试用例期望执行的结果,那这个表就是一个容纳了很多测试用例的6184.html">数据表。本文就矩阵模式在">软件测试用例中的应用进行阐述,以帮助您了解如何巧妙的利用矩阵模式这种简单手段,更高效的记录测试用例,尤其是复杂场景的测试用例

矩阵模式对测试用例的重要性

在软件测试中,编写测试用例是必不可少的一环。理论上测试人员会根据产品设计文档等将测试点全部罗列出来,然后根据每个测试点设计不同的场景,逐一编写测试用例。但通过分析会发现某个测试点的场景很类似,编写的测试用例中有些步骤的重复率很高。而在实际测试中,这些重复性的步骤利用率并不高,有经验的测试人员无需逐条查看每一步骤,根据场景就可以执行类似测试用例。

针对这一情况,Ryan Davis 早在 2007 年就提出了矩阵模式,用矩阵模式记录测试用例,其实相当于把多条测试用例组合成一个复杂的产品检查清单,一方面节省了编写和维护测试用例的时间,提高工作效率;另一方面可以将传统的测试用例看起来简单化,增加易读性,直观的将功能点展现出来,方便测试人员全局追踪测试状态。

本文就矩阵模式在软件测试的应用展开,主要介绍矩阵模式在多个场景测试,重复性问题测试,交互测试的应用实例,以及改进的矩阵模式原理及其工具。

多个场景测试

在测试中经常会针对某一测试点设计不同的场景进行测试,以达到模拟用户使用的真正效果。比如数据输入测试,如密码输入域,一般会限制至少 6 位等条件。针对密码输入长度至少 6 位这一测试点,至少需测试以下四种场景:

不输入; 小于 6 位; 等于 6 位; 大于 6 位;

按照传统测试用例编写方式需要编写四条类似的测试用例,而且这四条的测试步骤几乎一样。如下表 1-表 4 所示:

表 1.密码输入域长度测试用例-不输入

Test steps Expected result 1. Open a application…. Can open normally 2. No input in password field   3.Submit Alert “password is not allowed blank”

表 2.密码输入域长度测试用例-小于 6 位

Test steps Expected result 1. Open a application…. Can open normally 2. Input password with less than 6 digit in password filed   3.Submit Alert “password length must be
more than or equal 6 digit”

表 3.密码输入域长度测试用例-等于 6 位

Test steps Expected result 1. Open a application…. Can open normally 2. Input password with 6 digit in password filed   3.Submit Success

表 4.密码输入域长度测试用例-大于 6 位

Test steps Expected result 1. Open a application…. Can open normally 2. Input password with more than 6 digit in password filed   3.Submit Success

分析这四个测试用例,发现除了第二步输入的参数不同之外,其余步骤都一样。我们可以把这一参数抽离出来,通过矩阵模式可以将测试用例简化表示,如下表 5 所示:

表 5.密码输入域长度测试用例

Test point Expected result Execute result 不输入 Alert “password is not allowed blank”   小于 6 位 Alert “password length must be more than or equal 6 digit”   等于 6 位 Success   大于 6 位 Success  

比较发现利用矩阵模式简单明了地将密码输入域长度的测试点列出来,为测试人员节省了编写测试用例的时间。理论上这种形式的测试用例不能够完全称为完整的测试用例,没有像传统的测试用例那样,将每一步骤都详细列出来,但实际上反而更适用,尤其是当某一测试点有一定数量级的测试场景需要测试时,或者某个测试用例有多个测试点时,通过矩阵模式制定这种形式的测试用例还是很值得的。

时间: 2024-10-12 10:44:33

利用矩阵模式完成Web多种场景测试的相关文章

模式应用 - 利用工厂模式制作自己的"小程序测试工厂"

在平时开发程序的过程中,自己经常会写一些控制台小程序进行测试某个功能,事后我们会寻找这些小程序,如果不仔细管理,经常会找不到.由于每个控制台小程序都有自己独立的 Main方法,所以我们不能把他们都放在一个Solution里面,这样在编译整个项目的时候会通不过,但是又不想为每个小程序都单独建立一个项目,这样又太浪费,因为每个都是一个非常简单的代码文件.于是我想到了利用工厂模式,我是这样做的: 首先创建一个ITestCase接口,它有一个Run方法. namespace SharpTrainer{ 

python高性能web开发与测试实验实例

python具有如下两个特征: 解释型语言 GIL全局解释器锁 前者导致其性能天然就被编译型语言在性能上落后了许多.而后者则在多核并行计算时代,极大的限制了python的应用场景. 但是通过合理的web框架,则可以使用python扬长避短,仍然能够在多核并行时代须保持其高效开发的生产力同时,在性能上也有出色表现.例如,tornado框架. tornado框架主要做了如下几件事: 使用单线程的方式,避免线程切换的性能开销,同时避免在使用一些函数接口时出现线程不安全的情况 支持异步非阻塞网络IO模型

《Android深度探索(卷1):HAL与驱动开发》——6.4节使用多种方式测试Linux驱动

6.4 使用多种方式测试Linux驱动 Android深度探索(卷1):HAL与驱动开发 在上一节已经实现了一个简单的Linux驱动程序,该驱动的功能是统计给定字符串中的单词数,并且在最后已经将该Linux驱动的源代码成功编译成动态Linux驱动模块word_count.ko.下一步就是测试该模块.测试的方法很多,最常用的就是直接在Ubuntu Linux中测试.当然,这对于本章实现的Linux驱动是没问题的,但是对于需要直接访问硬件的驱动在Ubuntu Linux上测试就不太方便.在这种情况下

场景测试

背景 自诞生之初,MQC就始终致力于帮助开发者发现.解决更多的App质量问题,并降低开发者测试成本.MQC依托于阿里深刻.全面的测试技术,一直在努力探索各类测试方法,让开发者以最低成本发现更多的问题.基于这样的目的,场景测试应运而生. 场景测试通过设定多种不同的测试场景,包括网络模式(WIFI,3G,2G).屏幕(横屏,竖屏).电话呼入.CPU.内存.电量,从而检查出App在不同的场景下出现的问题. 各测试场景介绍: 1. 网络 4类模式:WIFI(默认选项,没有速度限制).3G(Up: 128

利用GoAhead构建嵌入式web应用

1 简介 廉价的硬件,功能强大的32操作系统,以及无处不在的因特网,它们一起促成了网络应用和设备的飞速增长.大量的设备连接到网络上,于是人们希望通过一种通用.熟悉.快捷的方式来访问和控制它们.嵌入式web服务器正好迎合了这种需求,它们嵌入在网络设备之中,使用标准的浏览器就可以远程访问和控制它们. 然而,并不是所有的web服务器都可以担当如此重任,我们需要的是一个强大,安全,标准的,而且最好是久经考验的嵌入式web服务器.这里将要介绍的GoAhead嵌入式web服务器能够满足所有这些需求,包括西门

利用JQuery制作符合Web标准的QQ弹出消息

 本篇文章主要介绍了利用JQuery制作符合Web标准的QQ弹出消息.这里所说的弹出消息指的是在网页右下角升起又下去的那种框框,在这里用到了jQuery的自定义动画 这里所说的弹出消息指的是在网页右下角升起又下去的那种框框,在这里用到了jQuery的自定义动画,感觉这个自定义动画就是像flash里的形状和渐变动画一样,只要定义了开头和结尾的两个关键帧,中间的动画过程会自动完成,不用会jQuery的可去查下jQuery的帮助文档.    基本思路是这样子滴:首先弹出消息框其实就是一个div层,页面

Redis的11种Web应用场景简介_Redis

下面列出11种Web应用场景,在这些场景下可以充分的利用Redis的特性,大大提高效率. 1.在主页中显示最新的项目列表 Redis使用的是常驻内存的缓存,速度非常快.LPUSH用来插入一个内容ID,作为关键字存储在列表头部.LTRIM用来限制列表中的项目数最多为5000.如果用户需要的检索的数据量超越这个缓存容量,这时才需要把请求发送到数据库. 2.删除和过滤 如果一篇文章被删除,可以使用LREM从缓存中彻底清除掉. 3.排行榜及相关问题 排行榜(leader board)按照得分进行排序.Z

利用php soap实现web service

原文:利用php soap实现web service php有两个扩展可以实现web service,一个是NuSoap,一个是php 官方的soap扩展,由于soap是官方的,所以我们这里以soap来实现web service.由于默认是没有打开soap扩展的,所以自己先看一下soap扩展有没有打开.  在soap编写web service的过程中主要用到了SoapClient,SoapServer,SoapFault三个类. SoapClient类 这个类用来使用Web services.S

谷歌浏览器:利用Metro模式推出ChromeOS界面

硅谷网讯 在经过长时间测试后,谷歌(微博)日前推出了Chrome最新的32版本.最值得注意的是,针对Windows8用户,Chrome浏览器利用Metro模式推出了类似ChromeOS的界面,和Chromebook看到的十分类似,媒体称,谷歌在微软的Windows中,建立了一个与对手竞争的"国中之国". 随着主要的电脑大厂商纷纷推出Chromebook,ChromeOS的市场份额正在攀升.ChromeOS对传统的Windows操作系统提出了挑战,不仅启动速度更快,而且永远自动更新,另外