测试实战day1
*前端有静态资源和动态资源,动态资源即插入一些服务器的脚本(php),例如有可能根据用户需求来查询数据库的一些内容来返回给用户,所以每次访问页面的内容都是不一样的。如果用户访问的是静态的页面,服务器就直接把网页返回给客户端,如果是动态页面,web服务器就提供一个脚本运行环境,把脚本运行结果返回到客户端。
*PHP+Apache+MySQL:php是服务器脚本语言,Apache是web服务器软件,MySQL是数据库软件
*Apache可以处理php,也可以java;tomcat,Jboss,weblogic针对的是java
*扩展hosts文件,可以创建一些域名,方便切换不同环境
*项目背景调研包括:项目进展(未开发,开发中,开发完成),项目复用程度(全新,复用部分,复用全部代码),项目已有成果(产品维度:需求说明书,UI/UE设计图;开发维度:概要设计文档,详细设计文档,源代码,数据库设计文档,软件;测试维度:之前的测试计划,测试方案,用例,缺陷,总结报告),开发人员(业务水平,技术水平)
*测试范围列表可以用excel来书写:
测试实战day2
*点:功能点;线:业务流程,场景;面:非功能面的地方,兼容性,安全性,用户体验方面;体:其他维度的测试,接口层面;这里是针对点的测试设计展开
*写测试用例之前,要做需求分析和弄清楚测试点,可以从每个功能点的输入,过程,输出,这三方面考虑 —— 然后去写等价类表 —— 最后再写测试用例,有两个原则:1、设计一条测试用例,尽可能多的覆盖所有的有效等价类,2、针对无效等价类,单独生成一条测试用例
*等价类法:应用于单个条件的判断;因果法,场景法:应用于几个条件的组合
总结
测试设计: 测试用例编写
一、测试需求分析(理清被测功能点的具体要求,梳理测试点)
1、 功能点:注册
输入:长度,类型,组成,是否重复,是否为空
处理:正常处理 和 异常处理
输出: 可见输出和不可见输出
软件界面(前台和后台),数据库
2、 功能点:首页:数据校验(商品分类,楼层,楼层数据),设计数据库表查询
1) 确定功能对应的数据库表
2) 编写对应的sql
3) 写测试用例
3、 功能点:轮播图:分析实现细节:
二、测试数据表:等价类表
三、测试用例编写
测试用例:优先级,测试用例标题,前置条件,操作步骤,测试数据,预期结果,实际结果。
除了要会写用例,明白用例的作用。
测试实战day3
*接口管理:UI界面测完以后,在界面上覆盖不到的点,接口也要测到。
测试实战day4
*线——业务场景——重要性:用户角度:更多地使用系统的功能组合,核心业务场景;测试人员角度:分工合作,为了防止测试遗漏,补充场景测试用例;
*场景测试方法:1、深度和广度图:1)分析系统功能点;2)形成一个n*n矩阵;3)确认矩阵中每个功能的可达性(一步可达性,中间没有其他步骤);4)绘制深度或广度图;5)从开始到结束的任意一条路径就是一条测试用例。2、流程图
*响应时间:下命令到得到反馈的时间,包括些什么内容?首先我们要了解这个项目是什么架构,如果是三层架构,那响应时间就包括数据传输的时间,web服务端,数据库服务端处理时间,客户端渲染处理的时间,每一个部分都占时间。
*资源利用率:硬件,网络带宽占用都会有影响
*对于一个web项目,重要的几个环节包括:浏览器,web服务器(数据库),HTTP协议:浏览器与web服务器之间的传输协议
*这里的应用层包含了理论上的应用层,会话层,表示层;物理层包括物理层和数据链路层
*URL:统一资源定位符,每一条URL后面的内容,是URI:资源标识符,资源在服务器中的层级路径,这里的资源包括图片,文字等在网页上呈现的内容;而URL就是在URI+服务器IP地址+HTTP协议内容,这样URL在互联网上能确认一个唯一确定的资源。
*可以通过httpwatch这样一个抓包工具,能够捕获客户端和服务端的通讯过程捕获下来,来分析了解Http协议。
*在httpwatch中的result栏,如果显示的不是状态码,而是Cache就证明本次请求的数据来自于本地浏览器的缓存,并没有向服务器发起请求
*对于GET方式的请求响应浏览器是可以缓存的,因为它作用是从服务器中下载资源,下次请求的时候就可以直接从缓存中获取;而POST是提交数据给服务器,每次提交的数据都有可能不一样,所以POST方式的请求响应浏览器是不会缓存的,因为缓存没有意义。
*fiddler,http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。
*DNS服务,用于域名与IP相互转换的服务。
知识补充:网络基础概念
1、HTML 和 HTTP
1)HTML:是英文HyperText Markup Language的缩写,又叫做超文本标记语言。其中:
*超文本 就是指可以包含图片、链接,甚至音乐、程序等非文字元素
*标记 就是通过 <标记>内容</标记> 的格式让内容具有不同的表现形式,从而达到超文本的目的
我们在互联网上浏览的网页,本质上就是超级文本标记语言。
2)HTTP:HTTP:是英文HyperText Transfer Protocol的缩写,又叫做超文本传输协议,是互联网上应用最为广泛的一种网络协议。
HTTP 是与HTML有关的!其实HTTP设计的最初目的就是为了提供一种传输 HTML 页面的方法。其中:
传输 就是指把网页相关的数据,从一台电脑传递到另外一台电脑
协议 就是指两台电脑之间按照什么样的方法来传输数据,是客户端和服务器之间的一个约定
- 客户端 就是用户的电脑、手机等其他设备
- 服务端 就是专门提供数据的一台专有电脑
2、请求和响应
1)HTTP 请求
HTTP 请求,简称请求 是指从客户端到服务器的请求消息,通俗地讲,就是用户希望从服务器得到什么样的信息?
在一个完整的HTTP 请求中,除了包含要访问的网页地址外,通常还会包含以下内容:
用户使用的浏览器类型,如:Chrome、Firefox、IE 等
用户的浏览器支持的语言,如:中文还是英文
用户的浏览器是否支持数据压缩
也包含了页面展示所需要的资源的相关请求...
注:这些额外的请求信息,都是在 HTTP 中规定好的
2)HTTP 响应
HTTP 响应,简称响应 是指从服务器返回给客户端的请求结果,通俗地讲,用户只有获取到服务器的请求结果之后,才能够在浏览器中显示出来
在一个完整的HTTP 响应中,除了包含被访问的网页内容外,通常还会包含以下内容:
状态码 用数字表示的响应状态,最常见的有:200 表示成功,404 表示页面没找到
响应数据的长度,通常返回的数据内容越多,用户等待时间越长
响应数据的类型,除了可以返回网页数据外还可以返回:图片,文字,音乐,视频...
注:这些额外的响应信息,也是在 HTTP 中规定好的
3、HTTPS
HTTPS 中的S是Secure的意思,就是在HTTP基础上增加了数据加密,从而使得客户端和服务器之间传输的数据更加安全。
4、GET 和 POST 方法
GET 和POST是两种最常见的HTTP 请求方法。
1)GET方法:GET 方法就是从服务器拿数据,从服务器拿需要的数据 使用的请求方法就是GET 方法。表现形式,使用 GET 方法请求的具体内容,可以在浏览器地址栏中看到,科普:地址栏中输入的内容被叫做URL,俗称网址。
例子:在浏览器的地址栏中,输入以下内容,然后观察浏览器中显示的内容:http://www.baidu.com/s?wd=黑马程序员,其中:*s表示搜索(search);*wd表示关键字(word);*=右侧就是要搜索的内容
2)POST方法:POST 方法是把数据提交到服务器,无论是用户登录,还是选购商品:客户端需要把某些信息主动告诉给服务器,在客户端提交信息之前,服务器并不知道是哪一个用户要登录,也不知道用户具体要购买的商品。表现形式,使用 POST 方法请求的具体内容,在浏览器地址栏中无法看到,可以在一定程度上保证数据安全,但是 POST 方法请求的数据,使用抓包工具可以拦截。时间柱
测试实战day5
*浏览器会默认添加http协议默认端口80,所以我们在输入地址的时候一般不用自己加http
*http协议,stmp,pop3协议(邮件)TCP传输协议;音视频传输,UDP传输协议
*数据加密,当客户端把数据传给服务端,如果数据加密了(用md5,3des或者hash等加密算法加密)再传输,服务端把数据传回客户端也是加密的数据,要把数据根据加密算法解密以后,才能读懂数据。
*SQL注入,非法数据获取,输入手机号:' or 1=1 #,但它没有注册过你的网页也登录进来,能成功获取你数据库的信息,获得非法数据
*浏览器内核包括渲染引擎(解析html文件),js引擎(解析js脚本)
*移动端APP测试适配性要测试不同厂商的机型(10种以内),选机型方式,对于已上线的产品,根据后台埋点数据来测用户中使用的主要机型;对于未上线的产品,综合考量现有市场占有率的情况。
*fiddler是基于.net技术开发的抓包工具,所以用在windows平台上的支持性和功能性要远好于其他平台,在windows上用得比较多;如果在mac平台上,fiddler可以,但charles用得更多。
*接口测试是在集成测试,系统测试,验收测试阶段进行
*fiddler的IP默认是你安装fiddler的那台机器的IP,默认端口是8888,可以修改
*fiddler中如果只想查看某些请求,可以通过条件过滤filters来设置,设置完以后要点Actions->run filterset now
*通过命令行来针对某个请求来打断点,如请求断点就是在命令行界面,输入bpu URL回车,想要取消断点就直接bpu回车;响应断点类似语法。
*fiddler其他功能:1)AutoResponder:用本地资源或数据替换服务端一些返回;2)Statistics性能数据;3)TimeLine,可以对比所有请求耗时情况;4)可以对请求加注释,在Comments中展示;5)也可以对一次操作捕捉到的请求保存save成saz文件在本地,下次打开fiddler可以直接打开这个文件查看以往的请求情况。
*测试设计以后就是测试执行,要知道你的测试轮次,bug的跟进。
*最后一步就是测试总结