Web 手工测试

强颜欢笑 提交于 2020-02-03 07:23:33

day 1

学习目标:

  • 熟练搭建本地测试环境
  • 掌握熟悉项目的步骤和内容
  • 掌握项目基本的测试流程

基础环境介绍:

项目环境的组成部分:

  • 操作系统
    • windows
      • win7
      • win10
    • Linux
      • Centos 6.x,7.x
      • Redhat 6.x,7.x
      • Ubuntu 14.z,16.x,18.x
      • Mac
  • web 服务器
    • apache: 稳定,文档齐全 默认监听端口:80
    • nginx: 负载均衡器 默认监听端口:80
    • tomcat:默认监听端口"8080 ->JAVA
  • 数据库
    • Mysql
    • Oracle
    • Sql Server
    • DB2
  • 项目
  • LNMP: LINUX+Nginx+Mysql+PHP
  • WAMP: Windows+Nginx+Mysql+PHP

扩展: Apache 与 Nginx 的区别:

  • apache 与 nginx 均可以作为web服务器使用
  • apche 系统稳定性更强文档丰富
  • nginx 消耗更少的系统资源(如CPU,内存等)
  • nginx 更加典型的应用场景是作为负载均衡器使用

搭建测试环境

  • 准备工作

    • phpstudy安装文件
    • 项目部署包
    • 部署说明书
  • 安装集成环境

    • apache 监听端口: 80
    • mysql 监听端口: 3306
  • 部署项目

    • 将TPshop 项目压缩包解压后文件夹里的全部内容放入phpstudy安装路径\www中
  • 常见故障

    • mysql 端口被占用

      1565754388934

    • apache 端口被占用 :httpd-conf

熟悉项目的步骤:

  1. 了解项目的业务特性:项目用来做什么的?
  2. 了解项目的角色与用户:项目是给谁用的?
  3. 了解项目的组织架构图:项目包括哪些功能模块?
  4. 了解项目的技术栈:项目是使用哪些技术实现的?
  • 业务特性
  • 用户与角色
  • 组织架构图
  • 技术栈

熟悉项目的信息来源

  • 文档
    • 需求文档
    • 设计文档,数据库表设计文档
    • 测试用例
    • 用户手册等
  • 环境
    • 开发环境->开发
    • 测试环境->测试环境
    • 线上/生产环境->客户,运维
    • 产品经理/项目经理
    • 开发工程师
    • 测试工程师
  • 项目中已经存在的文档: 需求说明书,用户使用手册测试用例等
  • 试用项目的现有环境:开发环境,测试环境,线上环境
  • 询问项目中的其他成员:测试组员\组长,开发人员,产品经理等

熟悉Tshop步骤:

  • 业务特性:Tshop 是一个开源的电商系统.
  • 用户与角色
    • 前台
      • 游客
      • 注册会员
    • 后台
      • 超级管理员
      • 仓管员
      • 客服
  • 组织架构图
    • 概念:各系统各元素的组织关系,反映的是各个模块以及各个模块的组织关系.
    • 作用
      • 帮助整体理解项目
      • 理解相关业务之间的关联性
    • 工具:xmind
  • 技术栈

测试流程(重点)

  • 需求分析与评审
  • 编写测试计划与测试方案
  • 设计测试用例与评审(重点)
  • 执行测试用例与缺陷跟踪(重点)
  • 编写测试报告

SVN服务器设置扩展

  • 添加用户
  • 添加用户组
  • 创建仓库及获取仓库地址
  • 服务启动,停止,重启等基本操作

虚拟机(扩展)

装虚拟机的容器软件:

  • VMware
  • VirtualBos

快照:记录现在的情况各种参数配置,方便下次再次使用

  • 网络类型
    • 桥接模式
      • 与外部Inter网络互通
    • NAT模式
      • 通过主机IP去连接外部Inter网络(单向,外部Inter网是找不到此虚拟机)
    • Host-Only 仅主机模式
      • 与外部Inter 网络互相不能通讯
  • 远程连接设置
    • 虚拟机设置允许远程连接
    • 主机输入mstsc命令启动本地远程连接
    • 在虚拟机中启动cmd窗口,并且输入ipconfig
    • 输入虚拟机的账号和密码

day 2

学习目标

  • 需求评审(了解)
  • 测试计划与测试方案(了解)
  • 注册功能测试用例设计,执行与缺陷跟踪(重点)
  • 轮播图功能测试用例设计,执行与缺陷跟踪(重点)
  • 购物车功能测试用例设计,执行与缺陷跟踪(重点)

测试流程

  • 需求分析与评审
  • 编写测试计划与方案
  • 设计测试用例与评审
  • 执行测试用例与缺陷跟踪
  • 编写测试报告

软件需求

为用户解决某一问题或达到某一目标所需的软件功能

为什么需要需求评审

  • 保证需求的完整,准确
  • 保证团队对需求理解的一致性

如何做需求评审

  • 需求评审会
  • 参会人员
    • 项目经理/产品经理
    • 开发工程师,架构师
    • 测试工程师
    • 运维工程师(DEVOPS)
    • UI/UE
    • DBA 数据库工程师

需求分析->概要设计->详细设计->编码->集成->实施->交付

测试V:

单元测试设计->集成测试设计->系统测试设计->验收测试设计

  • 早介入
  • 早发现
  • 早治疗

测试工程师在需求评审中的主要职责是什么?

  • 确认自己对需求要有清晰的理解,没有疑惑
  • 确认需求文档的完整与正确性,能够知道后期的工作
  • 对需求中不合理的地方提出自己的修改意见

在现实工作中非常多的需求逻辑问题都是由测试工程师发现,比提出修正的.

测试方案

概念:从测试的技术角度去分析需求,在方向上明确要怎么测,分析结果重点在于测试策略于与技术实现

测试方案都包含什么内容

  • 测试策略/测试方法
  • 测试环境的规划
  • 测试工具的设计和选择
TpShop 测试方案 或其他测试方案获取

测试计划与测试方案的区别

  • 测试计划是【管理型】文档,注重人员、资源,时间的调配;测试方案是【技术型】文档,注重环境,工具,方法。
  • 测试计划主要解决【做什么】【谁来做】,测试方案主要解决【怎么做】
  • 主要内容存在差异:
    • 测试计划主要内容如下
      • 明确的测试目标与测试范围
      • 执行计划的角色与职责
      • 任务的进度安排与资源分配
      • 风险估计和应急计划
      • 测试的各项标准
    • 测试方案主要内容如下:
      • 测试策略/测试方法
      • 测试环境的规划
      • 测试工具的设计和选择

注册功能(重点)

设计测试用例

设计测试用例方法

  • 等价类划分法与边界值组合

测试用例设计步骤

第一步:需求分析

黑盒测试方法:

  • 输入分析
    • 输入内容
    • 长度
    • 类型
    • 是否为空
    • 是否重复
  • 处理分析
    • 正常处理
    • 异常处理
  • 输出分析
    • 前台
    • 后台
第二部:划分等价类

执行测试用例与缺陷跟踪

测试执行

执行步骤:
  • 查看用例标题-确定目标
  • 检查预置前置条件
  • 按照步骤执行测试用例
  • 实际结果与预期结果进行比对

缺陷跟踪

  • 提交缺陷报告
    • ID
    • 标题
    • 模块
    • 优先级
    • 严重程度
    • 复现步骤
    • 预期结果
    • 实际结果
    • 缺陷状态
    • 缺陷类型
  • 跟踪缺陷
    • 新建
    • 打开
    • 已修复
    • 关闭
    • 重新打开
    • 拒绝
    • 延期

轮播图功能(重点)

设计测试用例

设计测试用例方法

  • 需求->测试点->测试用例
  • 一个测试点就是一条测试用例

测试用例设计步骤

  • 第一步:需求分析
  • 第二部:划分等价类
  • 第三部:设计测试用例

业务流程测试用例设计(重点)

流程图基础知识(复习)

概念:

流程图:使用形状和连线来表示业务流程执行顺序的一种图示

流程图法:它时用流程图的方式表示用户的使用场景,通过覆盖流程的路径来设计测试用例的一种方法

基本流:用户的正确操作流程

备选流:用户的错误操作流程

作用:

帮助测试整体理解系统的业务,各个模块、子模块在业务上的关联性

使用阶段:

集成测试、系统测试、验收测试、冒烟测试

常用符号:

  • 开始或结束:椭圆
  • 方向或路径:箭头
  • 处理或操作:长方形
  • 判断:菱形
  • 输入或输出:平行四边形

设计测试用例步骤:

  • 需求分析
  • 绘制流程图(分析流程节点、节点的先后顺序)
  • 设计测试用例(一条流程路径就是一条测试用例,注意覆盖流程图中所有的路径)

绘制流程图

绘制步骤:

  • 第一步:确定业务中的操作
  • 第二步:分析执行的顺序
  • 第三步:按照业务方向进行连线

绘制工具:

  • Microsoft Visio
  • 2003?管理员运行

下单流程

  • 登陆
  • 选购
  • 加入
  • 支付
  • 等待

Day04

学习目标

  • 了解测试报告基本内容
  • 了解非功能测试基础知识
  • 掌握项目与数据库的关系
  • 了解项目中数据库的4种典型应用场景
  • 掌握网络基础知识(URL、HTML、HTTP、HTTPS)
  • Fiddler 常用操作,了解Fiddler 典型应用场景

编写测试报告(了解)

概念

测试活动的总结性文档,表只测试活动的结束

主要内容

  1. 测试概要
  2. 缺陷分析与总结
  3. 给出测试结论与建议

非功能性测试

虽未提及,但有很多默认需要实现的具备的

  1. 兼容性测试
  2. 效率性(性能)
  3. 安全性
  4. 易用性
  5. 可维护性

兼容性测试

概念

在不同的软件环境和硬件环境上都具备很好的可移植性(能够被用户正常使用)

测试关注点

  • Windows
  • Linux
浏览器
  • IE
  • 谷歌
  • 火狐

注意:实际以客户需求(客户现场的真实使用环境)为准,建议在开发的早期阶段(需求分析)就明确相关的需求

分辨率
  • 1024*768
  • 1920*1024
网络环境

率性

关注点

访问项目的时间

测试依据(2-5-10s 法)

  • 2s:时间性能非常好
  • 2s-5s:用户还能暂时能够忍受
  • 10s:用户直接停止使用产品

易用性

测试关注点

  • 用户点击次数:推荐3次达到用户目的
  • Enter 回车事件处理
  • 基于特定用户群体需求考虑(老人年、儿童等)

可维护性

  • 软件升级过程:停服时间,停服频率
  • 数据库升级脚本
  • 项目代码的可维护性

安全性

测试关注点

输入数据的安全性

  • 敏感信息的遮挡处理
  • 输入框种敏感信息(密码)做不能赋值处理
处理数据的安全性(数据传输过程中的安全性)
  • 请求方法决定敏感信息不能暴露在地址栏种(推荐用post 请求方式)
  • 数据传输中需要加密
    • 需要加密
    • 加密算法(复杂度)
      • DES/2DES/AES
输出数据的安全性
  • 数据库存储敏感信息需要加密

sql 注入(了解)

概念:

主要时利用程序中特殊的 sql 语句漏洞进行非法操作

'or 1=1 #

'or 1=1 --

渗透测试(了解)

登陆功能(面试扩展)

功能性测试(功能性需求)

  1. 正确输入用户名、密码登陆成功
  2. 错误用户名,正确密码,登陆失败
  3. 正确用户名,错误密码,登陆失败
  4. 不输入用户名,登陆失败
  5. 不输入密码,登陆失败
  6. ...

非功能性测试(非功能性需求)

  1. 兼容性测试
    1. 操作系统
    2. 浏览器
      1. 客户的需求
    3. 分辨率
    4. 网络
  2. 效率(性能)
    1. 大量用户访问系统响应时间测试
  3. 安全性
    1. 密码要遮挡
    2. 密码不能被复制
    3. 数据库种存储时密码需要加密
    4. 地址栏中不显示密码(post)
    5. 传输过程中数据要加密
    6. sql 注入
  4. 易用性
    1. 回车
  5. 可维护性
    1. 元素定位难题(自动化测试)

项目与数据库关系(重点)

1565850061786

  • 项目中的数据时存储在数据库终得
  • 对数据库修改会影响项目页面显示

项目测试使用数据库场景(掌握)

数据库确定数据正确

  • 执行用例过程中,有时需要到数据库验证数据的准确性与完整性

借助数据库进行缺陷定位

  • 进行BUG定位时,有时需要到数据库查看数据的详细信息

借助数据库构造数据场景(需要特定测试数据)

  • 构造某种测试场景时,可以在数据库里直接修改数据,要比使用界面更有效率

借助数据库数据备份更新

  • 软件升级过程中,有时会涉及到历史数据的处理,这种情况需要执行升级SQL,并验证结果
    • 数据库表中增加字段:alter TABle xxx add COLUMN xxxx int(3) DEFAULT 100;

网络基础知识

URL

  • 名称:同意资源定位符
  • 格式:协议://主机地址[端口号]/资源路径
  • 默认监听在80端口,默认端口号可以省略
  • 示例:http://localhost/
  • 客户端:用户端,比如B/S架构中的浏览器,C/S架构中的手机
  • 服务器:对外提供web服务或app服务的服务器,解决资源与数据
  • 请求:客户端向服务器索取数据的一种行为
  • 响应:服务器对客户端的请求做出的反应,一般指返回数据给客户端

HTML

  • 名称:超文本标记语言
  • 超文本:声音、视频、超链接等

HTTP

  • 名称:超文本传输协议
  • 作用:传输超文本

请求(request)

请求内容

  • 请求行:请求方式,HTTP协议版本吧
  • 请求头:浏览器及操作系统信息,支持的语言
  • 请求体:传输的参数

请求方式(GET 和 POST)

GET

参数信息会直接暴露在URL 中,典型应用场景就是访问

POST

不会直接将参数信息暴露在url中,它相对比较安全,典型应用场景:登陆、注册等向服务器提交数据的情况

面试题:GET 和 POST区别

  • GET数将请求参数包含在URL当中,POST通过request body 传递参数
  • GET 比POST不安全,不能用来传递敏感信息
  • GET 在浏览器退回无害,POST 会再次提交
  • GET直接进行URL 编码,POST 支持多种编码方式
  • GET 请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
  • GET请求在URL 中传送的参数时有长度限制的,而POST 没有
  • 参数类型看:GET 只接受ASCII 字符,而POST 没有限制

响应(response)

  • 协议版本
  • 状态吗
    • 200:成功
    • 3xx:数据路径发生改变
    • 4xx,客户端存在问题
      • 404 :页面找不到
      • 403 :权限不够
    • 5xx:服务器端问题

  • web服务器信息
  • 项目信息

FIddler 的典型应用场景

  • 辅助定位bug
  • 构建模拟测试场景
  • APP 弱网模拟测试
  • 前端性能分析及优化
  • 其他用户。域名重定向,API 接口测试
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!