各种测试用例简要模板

各种测试用例简要模板,第1张

0 .  文档介绍

提示:请用户根据项目的实际测试状况,裁剪本测试用例模板。

0.1 文档目的

 

0.2 文档范围

 

0.3 读者对象

 

0.4 参考文献

提示: 列出本文档的所有参考文献(可以是非正式出版物),格式如下:

[ 标识符 ]  作者,文献名称,出版单位(或归属单位),日期

例如:

[AAA]   作者,《立项建议书》,机构名称,日期

 [SPP-PROC-ST]   SEPG,系统测试规范,机构名称,日期

0.5 术语与缩写解释

缩写、术语 解 释

SPP精简并行过程,Simplified Parallel Process

1 .  接口-路径测试用例

1 .1  被测试对象(单元)的介绍

1.2 测试范围与目的

1 . 3 测试环境与测试辅助工具的描述

1.4 测试驱动程序的设计

1.5 接口测试用例

接口A的函数原型

输入/动作期望的输出/相应实际情况

典型值…

边界值…

异常值…

接口B的函数原型

输入/动作期望的输出/相应实际情况

典型值…

边界值…

异常值…

1.6 路径测试的检查表

检查项 结论

数据类型问题

(1)变量的数据类型有错误吗?

(2)存在不同数据类型的赋值吗?

(3)存在不同数据类型的比较吗?

变量值问题

(1)变量的初始化或缺省值有错误吗?

(2)变量发生上溢或下溢吗?

(3)变量的精度不够吗?

逻辑判断问题

(1)由于精度原因导致比较无效吗?

(2)表达式中的优先级有误吗?

(3)逻辑判断结果颠倒吗?

循环问题

(1)循环终止条件不正确吗?

(2)无法正常终止(死循环)吗?

(3)错误地修改循环变量吗?

(4)存在误差累积吗?

内存问题

(1)内存没有被正确地初始化却被使用吗?

(2)内存被释放后却继续被使用吗?

(3)内存泄漏吗?

(4)内存越界吗?

(5)出现野指针吗?

文件I/O问题

(1)对不存在的或者错误的文件进行操作吗?

(2)文件以不正确的方式打开吗?

(3)文件结束判断不正确吗?

(4)没有正确地关闭文件吗?

错误处理问题

(1)忘记进行错误处理吗?

(2)错误处理程序块一直没有机会被运行?

(3)错误处理程序块本身就有毛病吗?如报告的错误与实际错误不一致,处理方式不正确等等。

(4)错误处理程序块是“马后炮”吗?如在被它被调用之前软件已经出错。

2.  功能测试用例

2 .1  被测试对象的介绍

2 .2 测试范围与目的

2. 3 测试环境与测试辅助工具的描述

2 .4 测试驱动程序的设计

2 .5 功能测试用例

功能A描述

用例目的

前提条件

输入/动作期望的输出/相应实际情况

示例:典型值…

示例:边界值…

示例:异常值…

功能B描述

用例目的

前提条件

输入/动作期望的输出/相应实际情况

……

3.  健壮性测试用例

3 .1  被测试对象的介绍

3 .2 测试范围与目的

3. 3 测试环境与测试辅助工具的描述

3 .4 测试驱动程序的设计

3 .5 容错能力 / 恢复能力测试用例

异常输入/动作容错能力/恢复能力造成的危害、损失

示例:错误的数据类型…

示例:定义域外的值…

示例:错误的操作顺序…

示例:异常中断通信…

示例:异常关闭某个功能…

示例:负荷超出了极限…

4 .  性能测试用例

4 .1  被测试对象的介绍

4 .2 测试范围与目的

4. 3 测试环境与测试辅助工具的描述

4 .4 测试驱动程序的设计

4 .5 性能测试用例

性能A描述

用例目的

前提条件

输入数据期望的性能(平均值)实际性能(平均值)

性能B描述

用例目的

前提条件

输入数据期望的性能(平均值)实际性能(平均值)

……

5 .  图形用户界面测试用例

5 .1  被测试对象的介绍

5 .2 测试范围与目的

5. 3 测试环境与测试辅助工具的描述

5 .4 测试驱动程序的设计

5 .5 测试人员分类

类别特征

A类

B类

……

5.6  用户界面测试的检查表

检查项测试人员的类别及其评价

窗口切换、移动、改变大小时正常吗?

各种界面元素的文字正确吗?(如标题、提示等)

各种界面元素的状态正确吗?(如有效、无效、选中等状态)

各种界面元素支持键盘操作吗?

各种界面元素支持鼠标操作吗?

对话框中的缺省焦点正确吗?

数据项能正确回显吗?

对于常用的功能,用户能否不必阅读手册就能使用?

执行有风险的操作时,有“确认”、“放弃”等提示吗?

操作顺序合理吗?

有联机帮助吗?

各种界面元素的布局合理吗?美观吗?

各种界面元素的颜色协调吗?

各种界面元素的形状美观吗?

字体美观吗?

图标直观吗?

6.  信息安全性测试用例

6 .1  被测试对象的介绍

6 .2 测试范围与目的

6. 3 测试环境与测试辅助工具的描述

6 .4 测试驱动程序的设计

6 .5 信息安全性测试用例

假想目标A

前提条件

非法入侵手段是否实现目标代价-利益分析

……

假想目标B

前提条件

非法入侵手段是否实现目标代价-利益分析

……

7.  压力测试用例

7 .1  被测试对象的介绍

7 .2 测试范围与目的

7. 3 测试环境与测试辅助工具的描述

7 .4 测试驱动程序的设计

7 .5 压力测试用例

极限名称A 例如“最大并发用户数量”

前提条件

输入/动作输出/响应是否能正常运行

例如10个用户并发操作

例如20个用户并发操作

极限名称B

前提条件

输入/动作输出/响应是否能正常运行

8.  可靠性测试用例

8 .1  被测试对象的介绍

8 .2 测试范围与目的

8. 3 测试环境与测试辅助工具的描述

8 .4 测试驱动程序的设计

8 . 5 可靠性测试用例

任务A描述

连续运行时间

故障发生的时刻故障描述

……

统计分析

任务A无故障运行的平均时间间隔(CPU小时)

任务A无故障运行的最小时间间隔(CPU小时)

任务A无故障运行的最大时间间隔(CPU小时)

任务B描述

连续运行时间

故障发生的时刻故障描述

……

统计分析

任务B无故障运行的平均时间间隔(CPU小时)

任务B无故障运行的最小时间间隔(CPU小时)

任务B无故障运行的最大时间间隔(CPU小时)

9.  安装 / 反安装测试用例

9 .1  被测试对象的介绍

9 .2 测试范围与目的

9. 3 测试环境与测试辅助工具的描述

9 .4 测试驱动程序的设计

9 . 5 安装 / 反安装测试用例

配置说明

安装选项描述是否正常使用难易程度

全部

部分

升级

其它

反安装选项描述是否正常使用难易程度

附录:评审意见

数组去重是一个经常会用到的方法,我写了一个测试模板,测试一下常见的数据去重的方法的性能

测试模板

1、Array.filter() + indexOf

方法思路:将两个数组拼接为一个数组,然后使用 ES6 中的 Array.filter() 遍历数组,并结合 indexOf 来排除重复项

2、双重 for 循环

方法思路:外层循环遍历元素,内层循环检查是否重复,当有重复值的时候,可以使用 push(),也可以使用 splice()

3、for...of + includes()

方法思路:双重for循环的升级版,外层用 for...of 语句替换 for 循环,把内层循环改为 includes()。先创建一个空数组,当 includes() 返回 false 的时候,就将该元素 push 到空数组中 。类似的,还可以用 indexOf() 来替代 includes()

4、Array.sort()

方法思路:首先使用 sort() 将数组进行排序,然后比较相邻元素是否相等,从而排除重复项

5、new Set()

ES6 新增了 Set 这一数据结构,类似于数组,但Set 的成员具有唯一性

6、for...of + Object

方法思路:首先创建一个空对象,然后用 for 循环遍历,利用对象的属性不会重复这一特性,校验数组元素是否重复

测试结果一目了然,几种方法的性能 6>5>4>3>1>2

在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具

Apache JMeter - Apache JMeter™

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

下面就以上图的Restful类型的接口为例简单介绍使用Jmeter进行接口测试的方法。

获取某个具体网关设备的基本信息。

请求

方法:GET

URI:/api/gateway/<gateway_id>

参数:

在HTTP请求(http request)的头部(header)添加Userid和Token字段作为用户验证字段

响应

返回值:JSON格式的网关信息

参数:

.启动jmeter:在bin下以管理员身份运行jmeter.bat,启动jmeter

2. 创建测试计划:

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为Apitest,点击保存,选择保存路径,后面的步骤,每次添加或修改了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。

3. 添加线程

右键左边树中的测试计划“Apitest”节点,“添 加”→”Threads”→”线程组”

添加成功后,“Apitest”节点下多了“线程组” 节点,当然这个线程组的名称是可以自己设定的。

4. 添加http默认请求:(用来配置公共参数,不是http请求)

右键线程组,选择“添加”→ “配置元件”→“HTTP请求默认值”,点击“HTTP请求默认值”后

添加成功后,线程组”节点下多了“HTTP请求默认值”节点

这里可以设置主机地址等一下公共参数,比如我们的例子中请求路径前面都是主机地址+index.php,就可以统一在"http请求默认值"里设置

填写默认请求名、服务器、默认请求路径,保存测试计划。

5.添加http请求信息头

这一项并不是必须的,只不过我们的例子中使用了Userid和Token放在HTTP请求头中用作用户验证

右键“Apitest”,选择“添加”→ “配置元件”→“HTTP信息头管理器”

6. 添加http请求

右键“Apitest”,选择“添加”→ “Sampler”→“HTTP请求”

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。

填写完成,保存测试计划

7. 添加监听器:

右键线程组,选择“添加”→“监听器”→“XXXXXXXXX”

可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

添加成功后,“线程组”下增加了几个节点

8. 试运行

点击执行

可以查看各个“监听器”的结果

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

9. 修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

设置上面几个参数,模拟的总的请求数是:线程数*循环次数。执行一下,用“图形结果”监听器查看一下

样本数目:总共发送到服务器的请求数.

最新样本:代表时间的数字,是服务器响应最后一个请求的时间.

吞吐量:服务器每分钟处理的请求数.

平均值:总运行时间除以发送到服务器的请求数.

中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值.

偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/58487.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-27
下一篇2023-02-27

发表评论

登录后才能评论

评论列表(0条)

    保存