软件测试的基本流程:
需求分析阶段:阅读需求,理解需求,分析需求点,参与需求评审会议。
测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围,进度安排,人力物力分配,整体测试策略的制定。
编写测试用例:适当的了解设计,搭建测试用例框架,根据需求和设计编写测试用例。
测试执行阶段:搭建环境准备数据,执行冒烟测试(预测试)然后进入正式测试(系统测试、回归测试、交叉测试、自由测试),bug管理直到测试结束。
输出测试报告:输出测试报告,确认是否可以上线。
1.需求分析
2.快速熟悉项目
3.页面初始化测试
4.防御性代码测试
5.详细功能测试
5.1 数据分析
5.2 数据构造(举例)
5.2.1 前台注册页面输入框(等价类边界值法)
5.2.2 后台搜索用户页面输入框
5.2.3 前台搜索商品价格输入框
5.2.4 前台搜索商品品牌、价格选择字段(正交法)
5.2.5 其他需要注意的测试内容
5.2.5.1模态窗口
5.2.5.2 动画
5.2.5.3 banner图
5.3 编写测试用例
6.非功能测试
6.1 sql注入攻击
6.2 js注入攻击
6.3 fiddler抓包
7.根据需求文档,编写和执行流程、场景测试用例
8.查询数据库
9.Bug跟踪处理和回归测试
10.结束测试
1.需求分析
一切测试都应追溯到用户需求
2.快速熟悉项目
(1)熟悉项目所处的阶段:前、中、后
(2)项目的复用程度:全新、半复用、全复用
(3)程序员的开发背景、业务水平
3.页面初始化测试
对照需求文档,查询数据库中数据,看页面中内容与页面中显示内容及其分类是否一致
4.防御性代码测试
如果页面中某一模块因文字增多而出现折行或覆盖其他模块的现象,说明没有对此模块进行防御性代码的书写。
防御性代码测试属于用户体验模块,在时间紧张、任务量较重情况下,可以先不进行修改。
5.详细功能测试
5.1 数据分析
5.2 数据构造(举例)
5.2.1 前台注册页面输入框(等价类边界值法)
(1)用户名输入框
有效等价类:上点、内点、中划线、下划线(中划线、下划线一般允许使用)
无效等价类:特殊符号、中文、空格、空、离点、敏感词汇、重复
特别注意:大小写
(2)邮箱输入框
有效等价类:上点、内点、中划线、下划线
无效等价类:中文、特殊符号、空、空格、离点、邮箱格式、重复
(3)密码输入框
有效等价类:上点、内点
无效等价类:中文(复制进去)、离点
特别注意:大小写
(4)确认密码输入框
有效等价类:与密码一致
无效等价类:与密码内容不一致、与密码字数不一致
(5)验证码输入框
有效等价类:与图片一致
无效等价类:与图片内容不一致、与图片字数不一致
5.2.2 后台搜索用户页面输入框
以用户名为例:
(1)支持模糊查询
(2)大小写
(3)查询’%’、’_’是否转义(如果没有转义,搜索结果为模糊查询结果)
(4)空
(5)空格
5.2.3 前台搜索商品价格输入框
(1)上点、离点的测试
(2)负号
(3)小数点
(4)中文、字母、特殊符号、空、空格
(5)前后输入框的大小调换
5.2.4 前台搜索商品品牌、价格选择字段(正交法)
(1)列出所有的因素、水平
(2)如果因子、水平个数正好与标准正交表一致,可以直接套用标准正交表
(3)如果水平数一致,因子数不一致—–>采用混合正交表法(选择因子数等于或稍大的正交表,选择用例数最少的正交表)
(4)如果因子数相同,水平数不同—->确定出现次数最多的水平数,根据水平数,找因字数相等或稍大的正交表水平数不足则补填,水平数多余则合并,最后设计完成后再分离出来),找用例数最少的正交表
5.2.5 其他需要注意的测试内容
5.2.5.1模态窗口
当页面中弹出模态窗口,页面其他部分变为灰色,只有窗口内容可以操作,提示用户优先处理窗口上内容。
5.2.5.2 动画
当页面中有动画存在,需要多次触发动画,测试是否有动画堆积现象
5.2.5.3 banner图
网页顶端可以切换的图片称为banner图、轮换图、焦点图、切换图,当鼠标不在banner图范围内时,图片切换,当鼠标在banner图范围内,图片不切换。
5.3 编写测试用例
6.非功能测试
6.1 sql注入攻击
在登录页面的用户名输入框中填写数据实际上构成了一句为真的sql查询语句,eg:
select * from iwebshop_users where name=’’ and password=’’
1
若网页没有进行sql注入攻击防范,只需要在用户名输入框中填写 ’ or 1=1– ,密码随便填写,即可构成sql语句:
select * from iwebshop_users where name=’’ or 1=1– and password=’’
1
实际执行的语句为:
select * from iwebshop_users where 1=1
1
所以,sql注入攻击也被称为黑客的填空游戏。
6.2 js注入攻击
当我们发朋友圈或发表评论时,相当于我们发表的内容插入到了html页面中,此时,如果页面没有进行js注入攻击防范,当我们在页面中添加代码:
1 当任何人打开此页面时都会弹出“hello world”的窗口,或者直接跳转到www.baidu.com页面。 6.3 fiddler抓包 注册账户时有许多格式要求,此时,如果只有前台有数据验证,而后台没有进行数据验证工作,可以通过fiddler工具绕过前台js验证,提交任意格式的用户名或邮箱。 步骤:打开注册页面,填写正确格式的相应内容—->打开fiddler,(点击filter可以进行筛选),按f11键暂停网页所有的提交任务——->点击注册页面的提交按钮——>回到fiddler,双击截取到的请求内容,进行修改——>点击run to completion继续完成提交任务——>双击红色标识 ## 7.根据需求文档,编写和执行流程、场景测试用例 ## 8.查询数据库 如果详细功能测试过程中有针对数据库的增删改,则需要对照需求文档查询数据库,看是否一致 ## 9.Bug跟踪处理和回归测试 ## 10.结束测试 将测试过程中所有的文档妥善保存