01.软件测试基础知识整合

软件测试基础

  • 前言
    • 一、什么是软件测试
    • 二、软件测试的目的
    • 三、软件测试的基本流程
    • 四、测试分类
    • 五、测试用例
      • 1、什么是测试用例
      • 2、测试用例的重要性
      • 3、测试用例的设计方法
      • 4、测试点分析
      • 5、如何编写测试用例
      • 6、测试用例的一般形式
    • 六、软件测试需求
      • 1、什么是需求
      • 2、如何进行软件测试需求分析
    • 七、浏览器兼容性测试
      • 1、定义
      • 2、产生兼容性问题的原因
      • 3、常见浏览器介绍
      • 3、浏览器兼容性测试的应用场景
      • 4、什么时候需要做浏览器兼容性测试
      • 5、一般兼容性测试是怎么做的
      • 6、常见兼容性测试工具
    • 八、软件测试计划和测试报告
      • 1、软件测试计划
      • 2、软件测试报告
      • 3、测试结果分析
    • 九、BUG的生命周期
      • 1、bug的类型
      • 2、bug的等级
      • 3、bug的生命周期
      • 4、bug的状态处理
      • 5、常见问题的处理

前言

  • 软件测试的基础知识总览

一、什么是软件测试

  • 软件测试就是软件的质量检测,通过一定时间,操作和检测确保软件的功能是否正常

二、软件测试的目的

  • 发现程序员在开发过程中代码存在的问题,以及逻辑上的错误
  • 审核提交的产品是否符合客户需求
  • 提高客户的满意度
  • 提交更高质量的产品

三、软件测试的基本流程

  • V模型,RAD快速开发,也成为了软件开发的V模型。就是开发和测试同时进行,用来缩短开发周期,提高测试相率。
    01.软件测试基础知识整合_第1张图片

四、测试分类

  1. 白盒测完(逻辑驱动测试):称为结构测试、透明盒测试,是基于代码的测试,要求测试人员能够自己写带吗来测试程序内部逻辑结构,和所有逻辑路径,输出测试数据
  2. 黑盒测试(数据驱动测试): 称为功能测试,界面测试(UI测试,测试界面布局是否合理),压力测试,负载测试
  3. 兼容性测试: 测试系统软件硬件的兼容性能力(app、浏览器兼容性、客户端兼容性)
  4. 性能测试: 压力测试(最大访问量)、负载测试(最大访问量的最长时间)
  5. 安全测试: 测试系统防止非法入侵的能力(网络安全方面)
  6. 恢复测试
  7. 回归测试: 按错误修改后或软件功能,环境发生变化后进行的重新测试(就是开发对测试所提出的bug进行修复后,再把软件发给测试重新测)
  8. 探索性测试
  9. 验收测试

五、测试用例

1、什么是测试用例

  • 在测试之前,根据测试点来设计的的测试依据。
    (就是指导你执行测试,帮助你证明软件功能或发现软件缺陷的一种说明。也就是每一个测试点的数据设计和步骤设计。)

2、测试用例的重要性

  1. 便于测试计划的实施
    我们可以根据测试用例,一步一步滴测试,并清楚地知道测试的进度。
  2. 规划测试数据的准备
    根据测试用例,提前设计好测试需要的数据,如:手机号码(数据类型,数据长度),微信红包金额(0.01-200)
  3. 编写测试脚本的根本
  4. 评估测试结果的基准
    根据测试用例的通过率以及错误率,来判定该软件测试项目的测试结果,能不能发布
  5. 分析缺陷、

3、测试用例的设计方法

  1. 等价类划分:这个范围内的数据对某个功能或者是某个定义规则而言,取任何一个数据都是等同效果的。
  2. 边界值 :就是定义分类的左右两边附近的值
  3. 错误推测法:推测其异常情况,平常大部分异常情况,都是来自于错误推测法。
  4. 场景法:模拟整个业务流程的场景,然后验证系统功能是否正确。
  5. 正常流:基本流就是没有出现异常 (一次性正常登录)
  6. 分支流:判断异常,然后进行处理

4、测试点分析

  1. 对某个功能模块的单个功能进行验证。(功能测试)
  2. 模块与模块间的业务联系,验证相关联系==(功能交互测试)==
  3. 考虑隐形的需求验证,在需求文档中一般没有体现==(界面,安全,兼容性,易用性,性能)==

示例:整理绑定银行卡的测试点
01.软件测试基础知识整合_第2张图片
测试点如下:

  • a. 正常功能:先测试整体业务流程,看能不能正常绑定银行卡。
  • b. 检查下拉框,能不能下拉,下拉框中的信息是否符合数据字典要求,能不能在选择框中编辑信息。
  • c. 置灰界面能不能输入信息,置灰界面中的信息是否与数据库中的信息匹配。
  • d. 检测输入“卡号”的数据长度,数据类型能否遵循数据字典的要求。
  • e. 检查输入“手机号”的数据长度,数据类型是否符合数据字典的要求。
  • f. 检查输入“充值金额“的大小是否符合满足规定的要求(边界值)。
  • g. 检查按下”获取验证码”后,到获取了验证码的时间是否满足规定的时间。
    如果在规定时间内没有获得验证码,是否可以再次按下获取验证码。
  • h. 检查所“获取的验证码”的数据长度,和数据类型是否符合遵循数据字典的要求。
    如果输入错误的验证码,能不能直接通过手机验证。
    如果输入错误的验证码,有没有提示。
  • i. 检查页面手机是否协调,页面信息是否完整,清晰。
  • j. 检查页面窗口功能是否正常。

5、如何编写测试用例

  1. 一句不同的功能模块列出测试点
  2. 选择等价类、边界值、错误推断法等测试用例设计方法,西华测试点分解我不同的测试标准,并补充对应的测试步骤及测试数据,预期结果
  3. 测试用例覆盖所有的用户需求,包括单个功能及功能业务的覆盖;正面和反面用例的覆盖
  4. 编写时注意测试用例编写格式要求,元素包含测试编号、测试标题、预置条件、…;不存在冗余、重复、二义性等。

6、测试用例的一般形式

编号 功能模块 子模块 标题 预设条件 测试步骤 预期结果 实际结果 备注
DXFS_001 短信平台发送 正常功能 输入正常合法的各信息,是否发送成功 网络正常、账号登录系统成功 1.点击[短信群发] 2.输入3个手机号:15878788888(移动)、18600001111(联通)、18900001111(电信)3.输入短信内容:testing 4.发送方式默认即时发送,点击提交 1.正常跳转至短信群发界面 2.成功添加3个手机号码 3.短信内容字数更新为74.提示发送成功,查询[短信发送记录]正确显示
DXFS_002 短信平台发送 手机号 手机号为黑名单,是否过滤 1.网络正常 2.账号登录系统成功 3.在[黑名单]模块已添加黑名单号码 1.点击[短信群发] 2.输入2个手机号,其中包含黑名单号码:15878788888、18600001111(黑名单) 3.输入短信内容:testing 4.发送方式默认即时发送,点击提交 黑名单号码信息被过滤,下发一条信息成功,查询[短信发送记录]正确显示
DXFS_003 短信平台发送 手机号 手机号为重复号码,是否过滤 1.网络正常2.账号登录系统成功3.在[黑名单]模块已添加黑名单号码 1.点击[短信群发] 2.输入2个手机号,其中包含黑名单号码:15878786543、15878786543(重复号码) 3.输入短信内容:testing 4.发送方式默认即时发送,点击提交 过滤重复号码,下发一条信息成功,查询[短信发送记录]正确显示

六、软件测试需求

  • 只要解决“测什么”的问题。一般来自于需求规格说明书中的原始需求。
  • 测试需求应该覆盖全部业务流程,包括功能和非功能方面的需求。

1、什么是需求

  1. 设计测试用例的依据
  2. 有助于保证测试用例的质量,和进度
  3. 衡量测试覆盖率的重要指标(功能的覆盖)

2、如何进行软件测试需求分析

  1. 列出需求文档中具体可测的原始需求。
  2. 对每一条需求进行细化分解,形成可测试的分层测试描述的测试点(就是测试的地方)。
  3. 对每一条测试点,从软件产品的质量需求来分析,确定测试执行时需要实施的测试类型。
  4. 建立测试需求跟踪矩阵,对测试需求进行管理。

七、浏览器兼容性测试

1、定义

  • 网页或网站兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。我们的需求就是,无论用什么浏览器查看我们的网站或登录我们的系统,都应格是正常显示效果。为了给用户提供更好的体验效果。(浏览器的兼容,主要是排版问题)

2、产生兼容性问题的原因

  • 浏览器使用的内核(决定了浏览器如何显示网页的内容以及页面的格式信息)不同及所支持的HTML等网页语言不标注。

3、常见浏览器介绍

  1. Firefox:跨多个操作系统平台,最大特色就是兼容性,跟IE相比,速度比较快,不会动不动就卡数,然后也不会被各种广告拦截,还有一些比较有用的插件,比如全屏截图的,firebug抓包、接口httpresquest功能
  2. Chrome:软件体积小,浏览网页速度快,本身安全性比较高,其简洁、快速的特点、拥有者比较多。因为谷歌退出中国市场,关闭了国内网络,搜索服务,在访问google服务时会自动跳转至HK服务器,但不影响我们兼容性测试。有一个比较厉害的功能就是,可以模拟各种手机进行测试,当日仅限于网页的调试,并不能完全替代手机。
  3. safari:现在苹果很火,也许你以后到的公司做的产品就需要考虑到苹果浏览器的用户,所以就需要测试这个浏览器
  4. 其他小众浏览器:世界之窗、猎豹、遨游、QQ

3、浏览器兼容性测试的应用场景

  • . 网站:天猫、淘宝、唯品会等

4、什么时候需要做浏览器兼容性测试

  • 用户有要求,指定浏览器;网站一般都需要做兼容性、用户使用量来看,选取主流浏览器

5、一般兼容性测试是怎么做的

  • 主要是页面格式、字体、输入框、下拉框、复选框、按钮等的检查

6、常见兼容性测试工具

  1. letester,可以测试不同版本的IE浏览器
  2. 在虚拟机里面安装不同版本的IE浏览器
  3. https://app.crossbrowsertesting.com 这个网站支持不同系统版本浏览器的兼容性测试,但是免费用的时长不多,需要缴费进行测试
  4. Spoon Browser Sandbox http://spoon.net/browsers你可以查看你的网站在各大主流浏览器中的显示效果。当然,使用这个工具之前,你需要先安装一个小插件,但是启动起来非常慢非常慢,需要注册之后才能使用,启动之后效果还是非常好的。

八、软件测试计划和测试报告

1、软件测试计划

  1. 属于软件测试流程中的第二个阶段。(需求分析,计划,设计,执行,评估)
  2. 一般由主管来写,是整个测试工作开始之前做的一些准备计划工作。
  3. 包括的内容:目的,测试范围,测试进度安排,测试人员,测试环境,测试方法,测试工具,风险评估,培训计划。

2、软件测试报告

  • 属于软件测试流程中的第五个阶段。
  • 一般由测试人员来写
  • 包括的内容:
    • 如果是初始版本:就要包括测试的功能模块,测试环境,一流的bug有哪些,测试用例的覆盖率有多少,bug的统计与分析,风险有哪些。版本测试评估,发布的建议?
    • 如果是升级或者修复版本:就要在上面的基础上,列出这次升级测内容包括哪些。

3、测试结果分析

  • 新增功能,老功能的升级bug,出现的新bug
  • 还存着哪些问题,并罗列在风险分析。

九、BUG的生命周期

  • BUG:与需求不符的产品缺陷

1、bug的类型

  • bug的类型:
    • 代码错误,设计缺陷,界面优化,性能问题,配置相关,安全部署,安全相关,标准规范,测试脚本,其他。
    • 其他划分:功能类,界面类,性能类,易用性类,兼容性类、其他

2、bug的等级

  • 致命错误 1级
    1)常规错做引起的系统崩溃,死机,死循环
    2)造成数据泄露的安全性问题
    3)涉及金钱
  • 严重错误 2级
    1)重要功能不能实现
    2)错误的涉及面广,影响到其他重要功能正常实现;
    3)非常规操作导致的系统崩溃,死机,死循环
    4)外观难以接受的缺陷
    5)密码明文显示
  • 一般错误 3级
    称为故障起因,但对产品外观。
    不影响产品的运行,不会成为故障起因,但对产品外观和下一道工序影响较大的缺陷。
    1) 次要功能不能正常实现
    2)操作界面错误(包括数据窗口内列名定义,含义不一致)
    3)查询错误,数据错误
    4)简单的输入限制未放在前台控制;
    5)删除操作未给出提示
  • 细微错误 4级

示例:bug的等级判定

编号 bug标题 等级 备注
1 网站无法登陆,无法进行后续操作 1级
2 网站无法登陆,能够进行后续操作 2级
3 用户输入错误的密码可以登陆 1级 涉及安全性
4 验证码显示打印在网页上,程序员忘记去掉这个打印功能了 1级 一旦涉及短信验证码,都是安全性比较高的
5 酒店管理网站的网页某些图片显示不出来 2级
6 酒店管理网站的网页某些图片出现重复 3级
7 网站后台删除商品失败 2级
8 网站出现404,访问不了地址,没有给出友好提示 1级 系统崩溃(服务器繁忙)
9 网站出现404,访问不了地址,给出友好提示 4级 正在维护,平台升级
10 网站充值后,出现金额错误 1级 涉及金额
11 网站购物后,已经支付,但是仍然显示未支付状态 1级 涉及金额
12 点击登陆按钮,或者注册按钮无效 2级
13 app的某个图标显示太小或者像素失真 4级
14 某个提示语需要改进一下,用户对专业术语不太懂 4级

3、bug的生命周期

  • 就是一个bug被发现到这个bug被关闭的过程

4、bug的状态处理

01.软件测试基础知识整合_第3张图片

5、常见问题的处理

  1. 有没有你印象深刻的bug?
  • 从下面的角度思考:
    (1)需求阶段发现的问题:更能体现所经历测试工作中测试提前的思想,是很多测试管理者想要的,一直在为之努力的。而且在需求阶段发现BUG需要对业务的熟练掌握,还能体现自己的业务能力;
    (2)有争议的Bug:可以使基于用户体验的但需求未明确说明的Bug,可以体现自己对于用户体验的理解。
  1. 当开发认为不是bug,如何处理?
  • 确认开发环境是否跟测试环境一致,如果如开发所说不是缺陷则进行关闭;如果确认是缺陷就去跟开发沟通,沟通未达到一致结果就去找产品经理确认,确认是BUG注明情况再次指派给开发。
  1. 对于复现率不高的bug怎么处理?
  • 确认开发环境是否跟测试环境一致,包括操作步骤,浏览器,特定帐号等,如果多个版本验证之后,如开发所说无法重现,依据BUG的严重程度跟产品,开发一起确认关闭;如果找到重现原因,注明清楚情况,再次指派给开发

你可能感兴趣的:(软件测试基础)