一、测试理论
1. 软件分类
单机版:不需要联网的软件
分布式:需要联网
C/S:需要下载客户端
B/S:直接浏览器打开即可
2. 软件测试原则(7大原则)
穷尽测试不可能
尽早介入测试
测试显示软件存在缺陷
杀虫剂悖论
缺陷集群性(2/8原则)
测试活动依赖于测试内容
没有错误是好是谬论
3. 开发模型有哪些
瀑布模型 快速原型模型 增量模型 敏捷开发
4. 测试模型有哪些,并画图
V模型:用户需求、需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试
w模型:需求分析、概要设计、详细设计、编码实现、模块集成、系统构建、系统安装
需求测试、概要设计测试、详细设计测试、单元测试、集成测试、系统测试、验收测试
H模型
X模型
5. 测试流程
6. 测试分类
按技术
黑盒测试:不关心盒子里面的结构时什么样、只关心软件的输入数据和输出结果
白盒测试:按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法
灰盒测试:
按阶段
按内容
界面测试(UI测试)、功能测试、 兼容性测试、性能测试
按其他
冒烟测试:验证系统的核心功能是否能够正常运行的测试方法、随机测试、安全性测试、探索性测试、α测试、β测试、回归测试
二、测试计划
1. 怎么写
设计封面
九大项列出
自动插入目录
2. 模板
封面:
测试目的(整体概述、详细描述:功能模块、bug情况、上线日期)
测试资源:人力资源(姓名、职务、岗位职责)、软件资源:系统(Windows、MacOS、Linux)、浏览器、数据库、服务器、硬件资源:电脑、手机、 网络资源:局域网、互联网
测试范围:测试对象、测试特性、非测试特性
测试风险(人资法环时):编号描述等级负责人对测试影响规避方法
人员分工:姓名、职务、工作内容
测试策略:做什么样测试 界面测试、接口测试、兼容性测试、性能测试
测试进度:测试任务负责人预期开始时间预期结束时间时间进度备注
测试准则:启动准则暂停准则再启动准则结束准则
测试输出:名称存放位置备注、测试计划git/svn、测试用例、缺陷报告、测试报告、软件说明书
三、测试用例
3.1 测试用例模板
用例编号、所属模块、用例标题:测试/验证在 什么情况 去做什么 结果是什么、优先级、前置条件、操作步骤、
输入数据、预期结果、实际结果、是否通过、BugId、编写人、编写时间、测试人员、测试时间、备注
3.2 测试用例设计方法
等价类划分法:所有数据分成若干区域,然后在每一个区域取最少具有代表性的数据测试
有效等价类:合理的数据
无效等价类:不合理的数据
边界值分析法:取稍高于或稍低边界值的数据进行测试、概念:开区间、闭区间,空心圆和实心圆、获取测试点:内点、上点、离点(开内闭外)
因果图法:比较适合输入条件比较多的情况,测试所有的输入条件的排列组合
错误推测法:
判定法:
场景法:根据具体业务场景、标准流:正确完成的流程、备选流:存在异常的流程,对于基本流每一步都取反
正交实验法:利用排列整齐的表 -正交表来对试验进行整体设计、综合比较、统计分析,实现通过少数的实验次数找到较好的生产条件,以达到最高生产工艺效果。
正交小助手:会用
3.3 如何设计测试用例
分析需求:做什么,怎么做,结果是什么
提取测试点
设计测试用例
四、禅道
1. 安装登录
安装
双击安装,点击启动即可
登录
点击访问禅道 → 登录数据库(禅道运行环境最下边一行的密码和账号) → 管理员登录禅道(默认admin,123456)
2. 操作
人员管理(admin):添加部门 → 添加用户
创建产品(产品经理):产品 → 添加产品
添加需求(产品经理):产品 → 需求 → 提需求
创建项目(项目经理):项目 → 添加项目 → 自动跳转(选择设置团队)→ 团队管理 → 给团队配人
关联需求(项目经理):项目 → 需求 → 关联需求 → 勾选任务
批量分解(项目经理):在任务右侧 → 选择批量分解 → 批量分解
查看任务(开发人员):我的地盘 → 首页查看任务 → 点击任务数量进入任务列表 → 选择完成任务
创建版本(开发人员):项目 → 版本 → 创建版本
测试Bug(测试人员):测试 → bug → 提bug
解决bug(开发):测试 → bug → 确认 → 完成
再次测试(测试人员):测试 → 再次测试 → 如果解决的,点击关闭,否则重新编辑
创建版本(产品经理):产品 → 发布 → 创建发布 → 完成
bug流转
五、缺陷报告
什么是缺陷?引起原因?
影响软件正常运行的问题,也叫Bug,包含软件和文档。
原因:软件结构复杂、编码问题、使用新技术、需求不明确或者更改需求、项目周期短,时间紧迫
缺陷分类
根据测试种类:界面、功能缺陷、性能、安全、兼容性
根据严重程度:严重、一般、次要、轻微
根据优先级:立即解决、高优先级、正常排队、低优先级。
根据发生阶段:需求、架构、设计、编码、测试
画出Bug跟踪流程图
核心要素(8项)
缺陷编号
缺陷状态:新建、指派、打开、修复、拒绝、延期、回归、关闭、重开
缺陷标题
优先级
重现步骤:步骤、预期结果、实际结果
严重程度
缺陷类型
测试环境
指派人
提交人
提交时间
对应的测试用例
附件
模板
六、测试报告
定义、分类
模板
概述
编写目的:测试报告的描述、项目简介、测试内容描述。
人员分工:姓名、职务、任务
测试环境:软件、硬件环境
测试过程
测试进度:测试任务、测试负责人、启动时间、计划完成时间、实际完成时间、备注
用例执行情况:模块、用例总数、执行用例数、通过用例数、未通过用例数、阻塞用例数
缺陷统计:模块、bug总数、新增bug总数、修复bug总数、遗留bug总数
缺陷分析
按照级别分:
按照缺陷模块分:
按照缺陷类型分:版本、趋势
测试总结
测试结论:是否通过。各种率、按级别描述缺陷
风险分析:编号、风险描述、规避方法和建议
遗留问题:编号、缺陷描述、缺陷等级、处理方法
七、接口测试
HTTP和HTTPS区别
1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前的网易官网是http,而网易邮箱是 https 。)
2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的
请求组成:4部分组成,请求行、请求头、空行、请求体
响应组成:4部分组成,响应行、响应头、空行、响应体
Http版本:1.1
常见状态码:200、301、404、500
接口:
接口文档:能看懂,word、showdoc、swagger
接口测试:逻辑功能、路径测试、异常测试、其他异常情况
测试案例:使用postman进行get和post测试
接口测试用例
八、Charles
常用抓包工具:Charles、fiddler、wireshairk
Charles安装、代理配置
1.获取本地ip地址: win+r在运行中输入cmd,在打开的命令行中输入ipconfig回车2.点击proxy 点击proxy→settings 设置端口3.手机与电脑连接同一个wifi4.设置手机代理为手动,代理服务器信息为pc端ip地址以及相应的8888端口5.用手机访问项目地址进行抓包,查看charles抓到的内容
客户配置:电脑和手机,web和移动抓包
安装证书:
安装证书:Charles → help → SSL Proxy → 安装web证书(第二个选项) →
导出证书:
导入证书:
HTTPS代理设置:
断点
右击地址 → breakpoints
Proxy → breakpoint settings → 添加接口
过滤
Proxy → Recording settings → include、exclude
在请求导航栏最下边输入我们要看到域名
模拟慢网速
Proxy → throttle settings
设置主机域名 、设定慢网速
模拟404/403
tools → blocklist :指定域名
压力测试:
repeat advanced:次数、并发数
九、Fiddler
简介
配置:
电脑浏览安装、导入证书
移动端:
前提:手机和电脑必须在同一个无线网
fiddler配置端口号(8888)、配置8888
主机地址:fiddler右上角、cmd
十、 数据库
什么是数据库
是一个存储、管理、组织数据的仓储。
数据库 = 多张表 + 各表之间的关系
常见数据库
MySQL、SQLite、Oracle、Radis、SQL Server、MongoDB
数据库和SQL关系
数据库用来存放数据的,SQL是用来操作数据库中的数据的语言。
SQL语句分类
DDL:数据定义语言
库:5
表:7 + 4
//创建表
createtablestudent(idint,namevarchar(20),sexvarchar(20),ageint,saleryfloat(6,2),birthdaydate)
//删除表
droptablestudent;
//查看所有表
showtables
//查看表的创建细节
showcreatetablestudent;
//展示表结构
descstudent
// 在原有的学生基础上添加address列
altertablestudentaddaddressvarchar(20)
//在原有的学生基础上删除address列
altertablestudentdropaddress
unique、notnull、primarykey、auto_increment
DML:数据操作语言
插入数据:(2)
注意事项:字符集修改(2)
setcharacter_set_client=gbk;
setcharacter_set_results=gbk;
删除数据(3)
deletefrom表名
deletefrom表名where条件
truncatetable表名
注意:delete from 表名 和 truncate table 表名区别
修改数据(3
update表名setfiled=数据where条件
update表名setfiled=filed+数据
update表名 修改多个字段使用 ,隔开
DQL:数据查询语言
insertintosutvalues(1,'张三',90,80,80);
insertintosutvalues(2,'李四',90,87,60);
insertintosutvalues(3,'王五',70,60,69);
insertintosutvalues(4,'赵六',99,90,87);
DCL:数据控制语言
selectidfromteacherwherename=’李老师’
selectstudent_idfromteacher_studentwhereteacher_id=id
select*fromstudentwhereidin(selectstudent_idfromteacher_studentwhereteacher_id =(selectidfromteacherwherename='李老师'));
多表设计
一对一:
一对多:
多对多:子查询
多表联查
交叉查询:,
内连接查询:
select*from坐表innerjoin右表on条件
左外连接
select*from坐表leftjoin右表on条件
右外连接
select * from 坐表 right join 右表 on 条件
MySQL图形化工具
项目名称:积云商城1.1
功能模块:注册、登录、商品列表、商品详情、购物车、支付