系统测试范围:
1 测试范围
1.1 功能性测试
1.1.1 功能测试
1、 表单提交非空判断:
不输入任何信息直接提交,查看会不会有非空提示,根据提示进行填写(注意查看提示信息是否正确),直到不有提示能够提交表单,能提交了再查看还有那些标有必填符号(一般以“*”标识)是否都已填写,那些填写的字段没有标识必填。
2、 文本框、文本域输入:
先查看表结构看看各个文本框(文本域)的长度,然后试着输入超过字段的长度的信息,然后进行提交查看是否会出错,当然也有些文本框做了长度限制所以无法入过长的字段,也有些做了本地判断无法提交
3、 下拉框选择:
当样式上会有错误,维护一个下拉框的值,字段尽可能的长,然后查看下拉框是否会自适应,自适应后是否会影响页面布局;如果不会自适应是否能查看到所有信息
4、 日期文本框:
首先查看日期文本框是否可以直接输入,如果不能直接输入则尝试通过右击粘贴的办法粘贴不合法的日期,和按TAB键进入文本框,能够进入文本框这输入不合法的日期进行提交。
5、 复选框:
复选框是否有全选功能,功能是否正确,特别是在全选控件也为复选框时,先全选后取消全选,查看各记录的复选框是否都已非选择状态。特别要注意的是全选后取消记录记录的选择状态后再进行取消全选看看有什么结果。
6、 数据导出:
对数据小批量的导出也许不会出错,但是进行大批量的导出时也许就会出错了,一般4000条记录都是没问题的,但是超过了6000条就很容易出错了。可以尝试10000条的。
7、 新增功能:
a、必填栏位检查
b、栏位值可否重复
c、栏位格式是否正确
d、栏位新增权限检查
e、若有自动产生的栏位,检查是否正确
f、检查输入栏位项是否对应
g、提交、功能是否正常
h、要添加的资料项均合理,检查资料库中是否添加了相应的资料
i、若提示不能保存,也要查看资料库里是否多了一条资料
8、 修改功能:
a、必填栏位检查
b、栏位值可否重复
c、栏位格式是否正确
d、若有自动产生的栏位,检查是否正确
e、带出资料是否为所选资料,且栏位项对应无误
f、是否有修改权限
g、只读栏位检查
h、提交功能是否正常
9、 删除功能:
a、提示确认删除框,确定则删除,反之则不删除
b、是否删除对应资料
c、多条删除时,checkbox全选、取消全选功能是否实现;当未选任何资料,点击删除按钮有何反应
d、分页显示时,当最后一页只有一笔记录,删除此笔资料,是否会出错
10、 查询功能:
a、输入的查询条件为数据库中存在的数据,看是否能正确地查出相应得数据
b、检查不输入任何条件的查询结果
c、查询栏位输入特殊字符是否处理
d、查询结果分页是否正确
e、清空查询条件按钮功能是否实现
f、输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
g、查询条件有范围限制时,测试查询边界范围资料
h、多条件查询时,检查结果是否符合所有条件
i、模糊查询时,输入一些字符,检查能否查出数据库中所有相关资料
11、 登录功能:
a、检查用户名或密码为空,或者两者均为空能否登入
b、数据库中不存在的用户名,不存在的密码
c、数据库中存在的用户名,错误的密码
d、数据库中不存在的用户名,存在的密码
e、输入的数据前存在空格
f、用户名、密码中存在特殊字符等不正确格式
g、用户权限检查
1.1.2 UI测试
1、 窗体的测试:
a、窗体的大小:窗体的大小要合适,使内部控件布局合理, 不过于密集, 也不过于空旷。
b、窗体的位置:对于主窗体, 显示屏正中, 对于子窗体, 一般应在父窗体显示区的中间。
c、移动窗体:快速或慢速移动窗体, 背景及窗体本身刷新必须正确。
d、缩放窗体:
① 鼠标拖动对于固定大小的窗体, 鼠标拖动不能缩放其大小。对于能用鼠标拖动缩放大小的窗体, 放大或缩小窗体后其内容也应做相应调整。
② 单击‘最大化’ 按钮。
窗体被最大化, 内部控件大小或位置也应做相应调整。
③ 单击‘还原’ 按钮。 应还原到窗体最初默认的大小。
④ 单击‘最小化’ 按钮。
对于主窗体, 应最小化到系统状态栏的左下角, 并依次排列; 对于窗体中的子窗体, 应最小化到父窗体容器的左下角, 并依次排列。
e、显示分辨率:
通常情况下, 计算机的显示分辨率包括 800×600、 1024×768、 1280×1024 等等。在编程时, 可能使用了固定的控件大小和位置,
不能随分辨率的改变而变化, 因此, 在分辨率为 1024×768 下开发的程序在分辨率为 800×600 时, 会出现显示内容被裁切的情况。
f、宽屏和普屏:宽屏和普屏的显示器, 界面显示效果可能不一样。
2、 标题栏测试
(1) 不同窗体的图标要易于分辨
a、父窗体的标题图标;
b、子窗体的标题图标;
③ 提示信息窗体的标题图标;
④ 警告信息窗体的标题图标;
⑤ 错误信息窗体的标题图标;
(2) 标题内容
①标题的内容要简明扼要,
且不能有错别字。
② 父窗体的标题内容;
③ 子窗体的标题内容;
④ 提示信息窗体的标题内容;
⑤ 警告信息窗体的标题内容;
⑥ 错误信息窗体的标题内容;
3、 菜单栏的测试
a. 菜单深度最好不超过 3 层;
b. 菜单通常使用 5 号字体。
c. 菜单前的图标不宜太大, 与字高保持一致最好。
d. 各项菜单是否能完成相应功能?
e. 各菜单与其完成的功能是否一致?
f. 有无错别字?
g. 有无中英文混合?
h. 快捷键或热键
① 是否有效?
② 是否重复?
i. 鼠标右键菜单;
j. 不可用菜单是否真的不可用? (这在不同权限下会出现。)
4、 文本框
作用: 接受用户输入的数据或显示数据。
状态: 可编辑(正在编辑、 未编辑) 、 不可编辑。
测试点:
1 根据文本框作用:
输入数据的内容(如输入空格或与已存在内容相冲突的数据等)输入数据的长度(如只能输入 8 位, 分别输入 7、 8、 9 位数据进行测试)
输入数据的类型(如只能输入数字, 分别输入汉字、 字母、 特殊符号等)
输入数据的格式(如‘yyyy/mm/dd’ )
2 显示数据
显示内容是否正确
内容太长, 文本框不能完全显示时, 是否有未完全显示的提示?
如加‘…’
显示内容格式是否正确?
3 根据文本框状态
可编辑文本框与不可编辑文本框是否易于区分? (一般将不可编辑文本框置灰)光标选中的可编辑文本框是否有明显显示? (如文本框底色由白色变为蓝色)
5、 单选按钮(单选框)
2 状态: 可选(被选中、 不被选中) 、 不可选。
3 测试点:
1 同一组中, 是否只能选中一个?
2 各项功能是否能正确完成?3 是否有默认被选中的选项?
4 可选和不可选项是否易于区分? (一般将不可选项置灰)
5 不可选项是否限制不能被选中?
6、 复选框(多选框)
1 作用: 可同时选中多项。
2 状态: 可选(选中、 未被选中) 、 不可选。
3 测试点:
1 是否可以同时全部选中?
2 是否可以同时部分选中?
3 是否可以都不选中?
4 各种选中情况下功能的实现?
5 是否有默认被选中的选项?
6 可选和不可选项是否易于区分?(一般将不可选项置灰)
7 不可选项是否限制不能被选中?
1.3 边界测试**
1、数字类型超出应用设定最大值
2、数字类型超出类型最大值
3、数据类型填写非数据类型
4、时间类型超出引用设定限制
5、时间类型填写其他类型数据
6、文本类型超出应用设定长度
7、数据不符合实际规则(例如输入不存在的日期,或可以输入小数点后多于2位以上等)
8、是否对输入内容的大小写进行自动转换,以防止用户对于大小写敏感内容出现输入错误
9、是否对输入内容的前后空格进行自动去除,以防止用户输入不该存在的前后空格
1.1.4 功能校验
1、填写不符合校验的数据,例如不能以数字开头的输入,输入数字开头的数据验证码,填写错误的验证码
2、需重复一致填写时,填写不一致数据
3、对于文本框输入类型内容有要求是否进行了键盘输入检测
4、上传不符合类型的文件
5、对数据库正确性进行验证
1.2 非功能性测试[Office6]
1.2.1 性能测试
性能测试最基本要考虑以下几点:
a、时间特性,主要指的是软件产品的事物响应时间(用户发出请求到收到应答的这段时间)
b、资源利用率,包括:cpu、内存、网络、硬盘、虚拟内存
c、服务器可靠性,指服务器能在相对高负载情况下持续的运行
d、可配置优化性,指服务器配置优化、业务逻辑优化、代码优化等
1、 外部指标
测试主要关注如下三个指标:
a、吞吐量:每秒钟系统能够处理的请求数、任务数。
b、响应时间:服务处理一个请求或一个任务的耗时。
c、错误率:一批请求中结果出错的请求所占比例。
2、 内部指标
后台服务的所有指令和数据处理都是由CPU负责,服务对CPU的利用率对服务的性能起着决定性的作用。Linux系统的CPU主要有如下几个维度的统计数据
a、us:用户态使用的cpu时间百分比
b、sy:系统态使用的cpu时间百分比
c、ni:进程分配的用户态cpu时间百分比
d、id:空闲的cpu时间百分比
e、wa:cpu等待IO完成时间百分比
f、hi:硬中断消耗时间百分比
g、si:软中断消耗时间百分比
1.2.2 容错性测试
1、 界面级测试
a、不按正常流程操作
b、使用非正常手段访问(例如直接使用内部链接地址访问,直接使用访问协议访问)
c、对于不应该进行的操作或违法操作是否进行了相关的屏蔽
d、对于一些存在限定条件的输入参数,在界面或页面上是否有输入要求提示
e、若只能对于某些固定的输入的内容进行处理时,应该使用下拉框或选择框控件,以防止用户输入错误
f、对于一些操作较复杂或较容易造成错误的界面,系统是否有明确的说明或向导提示,以减少用户输入或操作错误
2、 数据集测试
a、数据填写不完整时,是否产生错误
b、流程未完成,强制关闭,是否会产生错误
c、多人操作同一数据时,是否产生错误
d、当系统出现异常时,是否能自动进行数据备份,以最大程度减少错误带来的损失
3、 环境容错测试
a、在网络出现故障时,是否有其他网络进行自动的切换和连接(场景测试必不可少的测试点)
b、在系统断电时,是否有其他的供电系统是否能进行自动切换
c、在系统服务器出现问题时,是否有其他的备用服务器是否能进行自动切换
1.2.3 可用性测试
1、 导航测试
a、导航是否直观
b、Web系统的主要部分是否可通过主页存取
c、Web应用系统的页面结构、导航、菜单、连接的风格是否一致
b、Web应用系统导航要尽可能地准确。Web应用系统的层次一旦决定,就要着手测试用户导航功能
2、 图形测试
一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。
图形测试的内容有:
a、要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间;
b、Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面;
c、验证所有页面字体的风格是否一致;
d、背景颜色应该与字体颜色和前景颜色相搭配;
e、图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
3、 内容测试
a、检验Web应用系统提供信息的正确性、准确性和相关性。
b、信息的正确性是指信息是可靠的还是误传的
。
1.3 异常问题测试
1.文件丢失测试
强行删除被测软件的一些文件,测试被测系统的提示是否准确以及其后的相关补救提示或操作;
2.服务器资源测试
通过人为手段,增加软件数据库服务器、web服务器或者中间件服务器等相关服务器的硬件资源,如:cpu、内存、硬盘等的负载,测试被测系统的反应和其后的补救提示或操作;
3.断电测试
在测试期间,对部分或者所有相关软件测试机器进行断电测试,测试软件的恢复能力
4.网络故障测试
在测试中中断网络或者人工增加网络流量,测试被测系统的提示是否准确以及其后的相关补救提示或操作
5.数据表毁坏测试
非法删除或修改数据库中的表数据或者表,测试被测系统的提示是否准确以及其后的相关补救提示或操作
6.数据库服务器宕机测试
在测试过程中强行关闭软件的数据库服务器或者用其它方式导致数据库死机,测试被测系统的提示是否准确以及其后的相关补救提示或操作
7.web会话测试
对于采用b/s结构的软件,应该注意web会话测试。比如:在空白的浏览器中输入比较敏感的页面的URL,软件是否有相应的提示、强调应该先进行登录才能访问该界面
8.特殊业务流程测试
测试软件不按照正规的流程,而是按照可能的但非正规的业务流程运行,是否会生成错误数据,或者造成原有数据的错误,甚至造成系统的瘫痪;
9.压力测试
主要是检查系统某些关键业务在极限情况下运行的能力,测试在这种情况下系统的运行、处理数据的情况,是否会造成系统瘫痪
10.修改系统的重要配置信息测试
在软件的配置界面进行重要信息的修改或删除,测试系统是否有相关限制提示,并测试如果修改错误,系统是否能够进行错误提示,引导用户修改,而不至于系统瘫痪
11.单引号操作
大多数基于SQL的数据库数据库数据库数据库系统在用户存储包含一个英文单引号的信息时会出现问题,所以每一个可以接受文字数字型的条目都要有包含一个或多个单引号的文本案例。当然,这类问题还应该包括英文双引号、&、<、>等特殊字符。在测试的时候应该注意其之前的提示和错误操作之后的恢复与补救措施等
12.必填项输入测试
测试每一个功能说明书上指出的屏幕上必须输入数据的字段和屏幕上每一个被说明为必须输入的字段,以保证它强制要求你在字段中输入数据。测试其如果没有输入相关数据的提示和后续操作
13.日期类型测试
日期类型要测试其边界值和日期格式类型的有效性测试。对于日期类型的边界值可能根据数据库不同而不同,比如数据库的最小日期是1753年1月1日;而对于有效性最常用的就是闰年的有效日期问题,准备这类测试用例来测试软件对于错误输入的提示和后续操作
14.特殊字段类型测试
准备每一个功能说明书或界面中规定的特殊数据输入要求(身份证、日期、电话号码、邮编等)的字段的测试案例,输入的数据包括它不应该接受的数据类型,测试软件对错误输入的提示和后续操作
15.端口号被占用
不同服务使用了同一端口号
16.服务异常终止
通过人为手段将数据库服务、web服务等服务进行暂停,观察系统的反应
17.将系统的用户名和密码或权限进行修改
例如在系统运行过程中,修改数据库访问用户名或密码,观察系统的反应
18.修改系统环境变量
在系统运行过程中,人为修改系统使用的环境变量参数,观察系统的反应
19.对系统产品进行升级
老系统仍然在运行过程中,对系统进行升级操作
20.在对应的服务器上安装其他相关软件
在系统运行过程中,服务器上安装新的杀毒软件或者进行病毒库的更新,或更新或安装新的浏览器软件,或更新或安装新的输入法软件,或更新或安装新的办公软件
21.进行数据迁移工作
在系统运行过程中,对系统数据库进行迁移工作
22.文件丢失操作
在系统运行过程中,将系统对应的安装文件夹或生成文件夹进行移动或删除或修改文件夹的属性
1.4 稳定性测试
1.4.1 系统稳定性
1.长时间高并发情况是否可以承受压力
2.处理万亿级或更高级别数据量是否会出现熔断或服务崩溃
3.服务器CPU或内存使用达到较高比例时,是否会影响系统运行
4.磁盘存储没有空间的情况下,数据存储是否会出现丢失情况
5.在网络延迟较高或波动较大的情况下处理万亿级数据或更高级别的数据量时是否会出现数据丢失卡死等情况
6. 环境不稳定的情况下如何保证数据准确性
7. 项目组件损伤或版本不一致的情况下是否可以正常运行和对数据进行处理
8.系统组件出现问题后如何在对项目运行不造成影响的情况下进行修复
9.ES或Hbase连接失败时进行相关操作是否造成数据丢失等情况
1.5 兼容性测试
兼容性测试思维导图
1.6 接口测试
*接口文档规范性
接口文档规范性主要对开发提供的接口文档是否规范准确进行检查,测试案例中应包括:
a. 接口文档中对于输入输出参数都有准确的命名,不存在模糊的情况。
b. 接口文档对于每一个参数都有明确的类型说明,是否可选还是必输,是否有默认值。
c. 接口文档对于每一个输入参数都要明确好基本的录入条件,比如长度最长多少、只能为数字还是字母、不能含有特殊字符等
d. 针对一个接口如果有多种类型的输出参数组合且参数的命名或个数有不同,这种情况,要在接口文档中罗列清晰,并明确指出出现这种类型的输出参数的条件。
接口可用性
接口可用性主要测试接口是否可用、接口是否存在、接口的协议类型,测试案例中应包括:
a. 依据接口文档中给定的接口地址和协议方法能够访问到该接口。
b. 使用错误的协议方法无法按照接口地址进行访问。
c. 使用正确的协议方法无法按照错误的接口地址进行访问。
输入输出参数个数及命名
输入输出参数个数及命名主要测试接口包含的输入输出参数的个数以及各个参数的命名是否正确,测试案例中应包括:
a. 依据接口文档检查输入参数的个数以及命名是否和文档一致。
b. 依据接口文档检查输出参数的个数以及命名是否和文档一致(注意检查输出的正常参数和异常参数)。
c. 输入错误的参数名,接口会报错,并有错误信息返回。
输入参数的必输项
输入参数的必输项主要测试接口对输入参数的可选与必输的要求,测试案例中应包括:
a. 按照接口文档对所有必输的输入项依次不输入,检查接口是否给予报错信息返回。
b. 按照接口文档对所有选输的输入项依次检查是否可以不输入参数接口也有正确数据返回,无报错信息。
输入参数的合法性
输入参数的合法性的合法性主要对参数的录入规范要求进行检查,测试案例中应包括:
a. 依据接口文档,有明确的要求的(如:只能由数字组成、在以下几个可选值中选择、只能由字母组成、长度最多为多少、格式为时间格式)输入参数,检查是否符合这些要求。
b. 依据接口文档,没有明确要求的输入参数,依次测试长度超长、含有特殊字符、全角半角等情况。检查接口是否报错,给 予错误返回信息。
输出参数内容的正确性
输出参数内容的正确性主要对输出参数的内容是否和后台真实数据一致进行检查,测试案例中应包括:
a. 考虑多种输入参数的组合情况,依次测试在这些组合情况下接口返回的数据的各字段内容是否正确,要具体检查每个字段的内容。一般通过与后台数据库数据比较来进行检查
b. 考虑多种输入参数的组合情况,依次测试在这些组合情况下接口返回的数据中涉及输入参数的项,是否和最初输入的值一致
接口实现功能验证
接口实现功能验证主要对接口操作的具体功能是否正常运转进行检查,测试案例中应包括:
a. 输入正确的参数,检查接口对应的要实现的后台功能是否正确运转。例如:对一个启动接口发送启动的命令,接口对应的后台系统能够正确启动并返回正确的参数。
b. 输入错误的参数,检查接口对应的要实现的后台功能是否没有运转。
接口测试思维导图
在这里插入图片描述
1.7 安全性测试
1.7.1 登录权限测试
首先分别使用不同权限登录(一般至少会有管理员和普通用户两种级别的权限),测试各自权限规定内的功能是否能够实现;
在不同的浏览器或系统中同时分别登录不同权限等级和相同权限等级,测试各自各自权限定内的功能是否能够实现;
关于权限的增删改测试:
a. 管理员权限能否增删改自己或同等级和普通等级权限用户的设置;
b. 普通权限能否增删改管理员和其他普通权限等级用户的设置;
c. 以上增删改的操作后查看是否实现相应改动的权限功能、并且查看是否会影响上级权限及相同权限人员的权限等级的设置;
1.7.2 系统数据安全性
a. 当将密码或其他的敏感数据输人到应用程序时,会不会被储存在设备中,同时密码会不会被解码
b. 输人的密码将不以明文形式进行显示
c. 密码,或其他的敏感数据是否被储存在它们预输人的位置上
d. 密码长度是否必需至少在4一8个数字与字母组合长度之间
e. 当应用程序处理敏感数据时,是否会以明文形式将数据写到其它单独的文件或者临时文件中。
f. 应用程序异常终止是否有删除它的临时文件
g. 当将敏感数据输人到应用程序时,其不会被储存在设备中
h. 备份应该加密,恢复数据过程中通讯中断等,数据恢复后再使用前是否经过校验
i. 在没有权限许可的前提下是否可以删除应用程序中的任何内容
j. 如果数据库中重要的数据正要被重写,是否会出现程序错误,能否自动同步数据
k. 请求是否能够加密解密,以确保安全性