目录
目录
一、web手工测试
1、基础环境
Linux系统下的环境搭建:LNMP(Linux+Nginx+MySQL+PHP)
Windows系统下的环境搭建:WAMP( Windows+Apache+MySQL+PHP)
#BS架构(server端:Nginx、Apache两种比较常见的软件)
大型项目:Java;小型项目:PHP
web server:
- 硬件是一个服务器
- 安装服务器操作系统(Linux、Unix、Windows server)
- web服务(提供了并发,http协议支持)
- Niginx
- Apache
- 数据库
- MySQL
- Oracle
- 业务功能的开发
- Java
- .net
- Python
- PHP
2、前置工作
熟悉项目
熟悉项目的步骤
- 了解项目的业务特性:项目是用来做什么的?
- 了解项目的角色与用户:项目是给谁用的?
- 了解项目的组织架构图:项目包括哪些功能模块?
- 了解项目的技术栈:项目是使用哪些技术实现的?
熟悉项目的信息来源
- 项目中已经存在的文档:需求说明书,用户使用手册,测试用例等
- 使用项目的现有环境:开发环境,测试环境,线上环境等
- 询问项目中的其他成员:测试组员/组长,开发人员,产品经理等
项目测试流程
- 需求评审
- 编写测试计划与测试方案
- 测试用例设计与评审
- 测试执行与BUG跟踪
- 编写测试报告
1、需求评审
软件需求
软件需求是指为用户解决某一问题或达到某一目标的所需的软件功能
需求评审
项目相关人员就软件需求进行确认和评估的相关活动
需求评审的目的
保证需求说明书的完整、准确
保证项目团队对需求的理解达成一致
需求评审的形式
需求评审会议
需求评审的参与人员
- 产品人员
- 开发人员
- 测试人员
- UI设计人员
测试人员在需求评审的职责
- 确认自己对需求要有清晰的理解,没有疑惑
- 确认需求文档完整,准确,能够指导后期工作
- 对需求中不合理的地方提出自己的修改建议
2、编写测试计划和测试方案
测试计划
描述了要进行的测试活动的范围、方法、资源和进度的文档
测试计划的核心内容
- 明确的测试目标与测试范围
- 执行计划的角色与职责
- 任务的进度安排与资源安排
- 风险估计和应急计划
- 测试的准入/准出的标准
测试方案
是从测试的技术角度去分析需求,在方向上明确要怎么测,分析结果重点在于测试策略与技术实现
测试方案的核心内容
- 测试策略
- 测试环境的规划
- 测试工具的设计与选择
熟悉项目中的数据库表
- 表说明书
- 参考表说明书能梳理表和表的关系
- 能梳理表字段和项目中具体功能的关系
3、编写测试用例
(1)掌握测试用例编写的基本要求
测试用例需求来源
- 需求说明书,产品原型图,UI设计图
- 站在用户角度,测试软件的可用性
#如果需求说明书有不明确的地方,一定要和产品经理确认,所有确认的东西都需要留痕,不能口头上说
#包括开完会议之后也要确定有会议纪要
测试用例设计步骤
- 需求分析
- 整理测试点
- 测试点是测试中需要关注的具体功能点;
- 测试点的作用是用来拆分需求,辅助编写测试用例
- 编写测试用例
编写测试用例的原则
能看懂--确保每个用例通俗易懂
能执行--测试用例清晰准确,用例中每个步骤都是可执行的
测试结果的几种状态
pass--通过
fail--失败
block--阻塞
NA--忽略
执行测试用例的原则
- 严格按照测试用例书写的步骤执行
- 失败的用例,及时提交缺陷报告
(2)掌握轮播图功能测试方法(例子)
1、分析轮播图的功能需求
从需求分析报告分析出来
2、测试用例设计步骤
- 需求分析
- 编写测试点
- 测试中需要关注的具体功能点
- 拆分需求,做为编写测试用例的辅助
- #测试点:完整的操作为一个测试点
-
- 编写测试用例
- #根据测试点写测试用例(测试点可以根据实际情况修改,减去冗余的)
3、执行测试用例
#一般在执行之前还有评审测试用例
执行的时候严格按照步骤进行并且记录不符合预期结果的
(3)掌握购物车功能测试方法(例子)
三、非功能测试
1、兼容性
项目要求在不同的操作系统、不同的浏览器、不同的平台、不同的分辨率下操作
关注点
OS
不同的操作系统:Windows、Linux、Mac等
相同的操作系统不同的版本:Win7、Win8、Win10等
Browser(浏览器)
不同的浏览器:三大主流--IE、Chrome、Firefox
相同浏览器的不同版本:IE--IE8、IE9、IE11(可以通F12开发人员工具选择IE版本)
其他常用的浏览器,如搜狗、360
注意不同的版本,高速模式(Chrome)、兼容模式(IE)
2、界面测试
界面测试,或UI测试,测试用户界面的功能模块的布局是否合理,各个控件的放置位置是否符合客户使用习惯
如何做测试用例
- 一般情况下,直接一句产品原型图以及UI效果图,进行对比验证,确认一致
- 如果没有原型图和UI效果图,从以下几个方面去考虑:
- 导航测试
- 图形测试
- 内容测试
- 整体界面风格测试
3、易用性测试
是指用户使用软件时是否感觉方便,简单来说就是:易懂、易学、易用、吸引人
关注点
项目难易程度
适用人群
用户的计算机水平
4、性能
性能测试是通过测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
什么时候考虑性能测试
对软件的性能有要求
用户量大的项目
性能测试的目的
验证软件系统是否能够达到预期的性能指标
发现软件系统中存在的性能瓶颈,以便优化软件
验证稳定性,在一个生产的负荷下测试一定的时间,评估系统的稳定性是否满足要求
5、安全测试
功能模块涉及到用户隐私信息,人身,财产安全的情况
关注点
安全性:登录和密码是否进行加密以及密码是否容易破解
SQL注入:攻击者把SQL语句作为参数传入web应用程序,最终达到欺骗服务器执行恶意的SQL语句
(看看通过SQL语句能不能查询到类似于密码之类的涉及到用户隐私)
6、编写测试报告
测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础
测试报告的主要内容
测试工作的经过与结果
风险评估
缺陷汇总与分析
测试工作总结与改进
四、功能测试与抓包工具
1、HTML与HTTP协议
HTML--超文本标记语言
HTTP--超文本传输协议
在我们日常浏览网页时,使用的就是HTTP协议,输入http网站就可以进入网站
2、HTTP请求和响应
协议交流最基本原理
- 客户端client--浏览器
- 服务器server
- client发一个请求,server回一个响应
HTTP请求
简称请求,指的是从客户端到服务端的请求消息(通俗的说,就是用户希望从服务器得到什么样的消息)
HTTP响应
简称响应,指的是从服务器返回给客户端的请求结果(通俗的讲,用户只有获取到服务器的请求结果之后,才能在浏览器中显示出来)
3、HTTP请求和响应的内容
HTTP请求和响应的内容各自包括三个部分:
HTTP请求内容
在一个完整的HTTP请求中,除了包含要访问的网页地址外,通常还会包含其他内容:
- 用户使用的浏览器类型:Chrome、Firefox、IE等
- 用户的浏览器支持的语言:中文/英文
- ......
这些额外的请求信息,都是在HTTP中规定好的
HTTP响应内容
在一个完整的HTTP响应中,除了包含被访问的页面内容外,通常还会包含以下内容:
- 状态码
- 200 表示成功
- 3XX:表示数据路径发生改变 ---> 重定向302,304
- 4XX:表示客户端问题,404表示页面没找到,403表示访问的数据被禁止
- 5XX:表示服务器错误
- 响应数据的长度,通常返回数据的内容越多,用户等待时间越长
- 响应数据的类型,除了可以返回网页数据外还可以返回:图片、文字、音乐、视频....
#这些额外的响应信息,也是在HTTP中规定好的
4、HTTP请求方法
POST方式
在网址URL那边不显示账号密码(加密)
通过HTTP请求响应体去提交账号密码
GET方式
在网址URL那边显示账号密码(不加密)
5、Fiddler抓包程序
可以抓取HTTP请求时请求内容和HTTP响应时的响应内容
接口测试的时候可以用
若有收获,就点个赞吧