测试基础知识

  • 常见测试分类
  1. 按测试阶段划分:
    1. 单元测试:针对程序源码进行测试。(国内是开发自测)
    2. 集成测试:又称接口测试,针对模块间的访问地址进行测试。
    3. 系统测试:对整个系统进行测试,包括功能、兼容性、文档等。
    4. 验收测试:分为内测和公测。
  2. 按代码可见度划分
  1. 黑盒测试:代码完全不可见
  2. 灰盒测试:部分代码可见
  3. 白盒测试:代码全部可见
  1. 扩展
    1. 冒烟测试:将程序的主要功能进行一次正向测试。通常在提测时进行。起源于工业测试,是否在执行功能时冒烟(损坏、报错)。
    2. 提测的标准:单元测试完成、冒烟测试通过。
    3. 系统测试和黑盒测试的核心是"功能测试"
    4. 集成测试和灰盒测试又称接口测试
    5. 单元测试和白盒测试都是对源码进行测试
    6. 自动化测试属于功能测试
    7. 性能测试、安全测试等属于"专项测试"
  • 模型
  1. 质量模型:

功能性:功能是否满足需求。

性能效率:性能满足实际需求。

兼容性:软件能够与主流硬件和软件进行兼容;不同浏览器、不同硬件、不同操作系统,对第三方有没有影响。

易用性:便于使用,用户体验优。

可靠性:性能功能是否可靠,不易瘫痪崩溃。

信息安全:信息在传输或使用、存储的过程中具备足够的安全程度。

可维护性:便于交付后维护,便于代码交付后其他人接手。(注释够明确)

可移植性:可以在不同硬件、不同系统、不同开发环境下运行。

  1. W模型(又叫双V模型)

简述:

在用户提出需求时设计验收测试计划。

在开发进行需求分析时,测试参会,输出系统测试计划。

当开发进入概要设计阶段时,由开发输出的API文档设计接口测试(集成测试)计划。

当开发进入代码编写阶段,由开发自测完成单元测试

开发完成模块代码后,根据接口测试计划,完成接口测试

开发完成代码集成,开始实施,根据系统测试计划,完成系统测试。

bug修复且回归通过后,项目交付,根据验收测试计划完成验收测试,包括内测和公测。

  • 测试流程
  1. 需求分析:各部门对需求理解一致
  2. 计划编写:测什么、谁来测、用什么测、怎么测
  3. 用例设计:测试操作文档
  4. 用例执行:根据用例执行测试
  5. 缺陷管理:对缺陷进行跟踪管理
  6. 测试报告:总结测试工作、风险评估、缺陷分析
  • 测试用例
  1. 什么是用例:为测试项目而设计的执行文档
  2. 用例的作用:
    1. 防止漏测
    2. 实施测试的标准
  3. 用例的格式:
    1. 用例编号
    2. 标题
    3. 模块
    4. 预置条件
    5. 优先级
    6. 测试步骤
    7. 测试数据
    8. 预期结果
  • 等价类划分法
  1. 什么是等价类划分
    1. 在所有测试数据中,具有共同特征的数据集合进行拆分
    2. 解决穷举问题
  2. 有效等价类:满足需求的数据集合
  3. 无效等价类:不满足需求的数据集合
  4. 步骤:
    1. 明确需求
    2. 确定有效和无效等价类
    3. 提取数据编写测试用例
  5. 案例:

6-10位自然数:6-10位、自然数

有效类:同时6-10位和是自然数

无效类:

①不满足6-10位、是自然数

②满足6-10位、不是自然数

正向:尽量覆盖组合

  • 边界值分析法
  1. 上点:边界上的点
  2. 离点:距离上点最近的点
  3. 内点:在范围内的点

开内闭外:范围为开区间,选择内离点;范围为闭区间,选择外离点。

  • 判定表法
  1. 适用于单个输入类、条件与结果之间有相互制约关系(如果。。。则。。。)
  2. 条件桩:列出问题的所有条件,次序无关紧要。
  3. 动作桩:列出问题中可能采取的全部动作,次序无关紧要。
  4. 条件项:列出条件的对应取值,所有可能情况的真假值。
  5. 动作项:根据条件项各种取值,判定该采取的动作。
  • 场景法
  1. 扩展:流程图
    1. 开始或结束使用椭圆表示
    2. 判断使用菱形表示
    3. 分支走向使用箭头表示
    4. Y表示是,N表示否
  2. 基于流程图来设计用例的方法,叫做场景法。适用于多功能组合测试,优先级高于单功能。
  • 错误推测法
  1. 建立在经验的基础上,推测系统可能出现的缺陷。
  2. 适用于时间紧任务重,没有足够时间进行用例编写。或者项目测试已经结束,等待上线,做补充覆盖。
  • 缺陷管理
  1. 缺陷判定标准
    1. 少功能:需求说明书中的功能没有全部实现
    2. 功能错误:需求实现不符合需求说明书
    3. 多功能:出现了需求说明书中没有的内容
    4. 隐形功能错误:需求说明书中没有明确说明,但是常规软件应该具备的问题。没有实现。
    5. 不易使用:软件难以理解、运行缓慢、提示不明确、用户体验不好。
  2. 缺陷产生的原因
    1. 需求阶段:需求描述有歧义、难以理解、有错误等等
    2. 设计阶段:设计文档存在错误或缺陷。
    3. 编码阶段:代码存在错误。
    4. 运行阶段:软件、硬件系统本身存在故障导致软件缺陷。(兼容性不好)
  3. 缺陷的生命周期
  4. 缺陷描述及提交要素
    1. 标题、预置条件、复现步骤、预期结果、实际结果、必要附件(log、截图、测试数据等)
    2. 缺陷编号、严重程度、优先级、缺陷类型、缺陷状态。
  5. 缺陷类型
    1. 严重程度:
      • 严重:主要功能错误。(主要业务流程,流程正向及逆向用例)
      • 一般:次要功能错误。(不影响主要业务流程的,单功能正向及逆向用例)
      • 微小:易用性、界面样式(页面问题、提示信息问题等)
      • 建议:建议性问题
    2. 缺陷分类:
      • 功能错误:抓包确认到底属于前端还是后端问题。
      • 界面(UI)错误
      • 兼容性
      • 数据
      • 易用性
      • 改进建议
      • 架构
  6. 常用缺陷管理工具

禅道:产品管理、项目管理、质量管理。

质量管理:缺陷管理、用例管理等

  • HTML基础
    1. 简介
      1. Web前端三大核心技术:

HTML:超文本标记语言,用来实现网页架构

CSS:负责网页样式与美化

JC:JavaScripts,负责网页的行为

      1. HTML标签:
        • 一个网页的内容,都是由一个个的标签组成。以<>表示
        • 单标签:<a />
        • 双标签<b> 内容 </b>
        • 标签的属性,描述标签的特征,以键值对形式出现。属性名="属性值"
      1. HTML骨架标签
        • 根标签:<html> </html>
        • 头:<head> </head> 身体:<body> </body>
        • 编码方式:<mata charset="UTF-8">
        • 页面标签名称:<title> </title>

注释:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记001</title>
</head>
<body>
<!--
注释国际快捷键:Ctrl+/
-->
<!--
注意:前端页面注释,在上线之前必须检查或删除
-->
</body>
</html>

标题标签:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记002</title>
</head>
<body>
<!--
标题标签h1-h6:h1是最大号显示,h6最小号显示。
用于显示模块的标题(文章标题)
实际很少用(太死板,只能调整到固定大小),一般都用css控制显示大小。
-->
    <h1>h1</h1>
    <h2>h2</h2>
    <h3>h3</h3>
    <h4>h4</h4>
    <h5>h5</h5>
    <h6>h6</h6>

</body>
</html>

段落标签:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记003</title>
</head>
<body>
<!--不在段落里-->
不在p标签里的段落1
不在p标签里的段落2
<!--
段落标签:<p>
用于标识一个段落
段落标签:一个p标签独占一行,利用此特性,给页面信息换行使用。
将内容放在p标签中具有语义化作用,浏览器会将其识别为显示内容。
-->
<p>段落1</p>
<p>段落2</p>
</body>
</html>

超链接标签:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记004</title>
</head>
<body>
<!--
超链接标签:a
用于点击文本跳转到指定页面,跳转到第三方
要显示的文本写在<a>文本</a>
href属性:点击超链接的文本时应该跳转的地址,可以是带协议的在线地址URL,也可以是本地链接
            注意:如果是线上地址,一定要加协议,不加协议默认是本地文件
target属性:是否在新窗口打开,缺省则默认在当前页打开,添加该属性则在新页面打开
            属性值如果不是默认的几个值(失手写错了),默认是_blank
-->
<!--
扩展:即使写错了属性值,也会起作用,只是不按照预期结果显示
-->
<p>
  <a href="https://www.baidu.com">百度一下_当前页打开</a>
</p>
<p>
   <a href="https://www.baidu.com" target="_blank">百度一下_新页面打开</a>
</p>
<p>
  <a href="learn003-段落标签p.html">打开本地页面</a>
</p>
</body>
</html>

图片标签:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记005</title>
</head>
<body>
<!--
图片标签:img
用于向网页插入图片
属性:src:加载图片的路径,不可以是绝对路径,只能读到项目根目录
      width="200px" height="100":两个属性调整其中一个,另一个根据文件比例等比缩放
      alt:图片没有加载时显示的内容
      title:图片标题,鼠标悬停时显示的内容。
      没有alt时,加载失败直接显示title,有alt直接显示alt
测试点:图片必须有title,否则影响用户体验
-->
<img src="./img/19.jpg" width="200px" height="100" alt="这里应该是一张大福的照片" title="大福"/>

</body>
</html>

换行与空格:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记006</title>
</head>
<body>
<!--
换行:单标签<br/>
在内容中直接换行写,是不能被浏览器识别的,
html在同一个段落中默认不换行,需要换行的地方可以添加一个br标签
一个<br/>标签就相当于文本编辑中的一次回车
-->
<!--直接换行写,页面只有一个空格表示间隔,并没有同代码中一样换行显示:hello world-->
hello
world
<!--
添加换行标签后可以换行显示
hello
world
-->
<br/><br/>hello<br/>world!<br/><br/>
<!--
空格:&nbsp;
在文本中直接写空格,是不能被识别的。
一个&nbsp就是一个空格,如果需要多个空格,想要几个空格就写几个&nbsp;
-->
hello&nbsp;world!!!<br/>
hello &nbsp; world  !!!<br/>
<!--上边两行代码结果是一样的,都是hello world!!!-->
</body>
</html>

布局标签:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记007</title>
    <style type="text/css">
       span{color:red;}
    </style>
</head>
<body>
<!--、
div:可以理解为大盒子
将body比作最大的一个盒子,div理解为大盒子,盒子与盒子可以并排放,小一号的盒子也可以放在大一号盒子里继续嵌套
一行只能放一个div
-->
<!--span小盒子:一行可以放多个span-->
<div>这里是div[1]</div>
<div>这里是div[2]</div>
<!--不用写<br/>标签,自动会换行,一行只能有一个div-->
<div>
    <span>div[3]的第一个span</span> <span>div[3]的第二个span</span>
</div>
<!--案例:原价¥999,折后价¥99,折后价标红-->
<div>
    <p>原价¥999&nbsp;折后价<span>¥99</span> </p>
</div>
</body>
</html>

input标签:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记008</title>
</head>
<body>
<!--
input:用于页面输入信息
-->
<!--    用户名:文本框-->
    用户名:<input type="text"/>
    <br/>
<!--    密码:密码框-->
    密&nbsp;&nbsp;&nbsp;码:<input type="password"/>
    <br/>
<!--    性别:单选框,类似于收音机按钮,只能同时按下一个
        想要做到单选效果,需要将input标签放同一组(相同name为一组,默认name值不一样)
-->
    性&nbsp;&nbsp;&nbsp;别:<input type="radio" name="sex"/>男<input type="radio" name="sex"/>女
    <br/>
<!--    多选框-->
    爱&nbsp;&nbsp;&nbsp;好:
    <input type="checkbox"/>唱歌
    <input type="checkbox"/>读书
    <input type="checkbox"/>跑步
    <br/>
<!--    按钮:value为显示在按钮上的内容-->
    <input type="button" value="普通按钮"/>
    <br/>
    <input type="submit" value="提&nbsp;&nbsp;&nbsp;交"/>
</body>
</html>

文本域与下拉框:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记009</title>
</head>
<body>
<!--先引入input标签,整合一个注册页面-->
    用户名:<input type="text"/>
    <br/>
    密&nbsp;&nbsp;&nbsp;码:<input type="password"/>
    <br/>
    性&nbsp;&nbsp;&nbsp;别:<input type="radio" name="sex"/>男<input type="radio" name="sex"/>女
    <br/>
    爱&nbsp;&nbsp;&nbsp;好:
    <input type="checkbox"/>唱歌
    <input type="checkbox"/>读书
    <input type="checkbox"/>跑步
    <br/>
<!--
下拉框
现在不常用,使用input+css可以实现
-->
    家庭住址:
    <select>
        <option>北京</option>
        <option>天津</option>
        <option>南京</option>
        <option>上海</option>
    </select>
    <br/>
<!--
文本域:现在不常用,使用input+css可以实现
cols:文本列数
rows:文本行数
-->
    <textarea cols="50" rows="5">个人签名:</textarea>
    <br/>
    <input type="submit" value="提交"/>
</body>
</html>

表单:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记010</title>
</head>
<body>
<!--
from表单:用于数据提交
填写完内容后点击提交,输入的信息会提交并清空。
action:表单数据提交到的页面,提交到该页面并跳转进该页面
method:get/post
        get:参数在URL中显示,显示数据对应标签的name值。
            速度相对post更快
            提交的内容长度有限制
            通常用于查询(百度搜索功能)
        post:参数不在URL中显示
            速度相对较慢
            提交内容长度无限制
            通常用于提交数据给服务器(登录注册)
-->
<form action="learn005-图标标签img.html" method="get">
    用户名:<input type="text" name="username"/>
    <br/>
    密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password"/>
    <br/>
    性&nbsp;&nbsp;&nbsp;别:<input type="radio" name="sex"/>男<input type="radio" name="sex"/>女
    <br/>
    爱&nbsp;&nbsp;&nbsp;好:
    <input type="checkbox" name="hobby"/>唱歌
    <input type="checkbox" name="hobby"/>读书
    <input type="checkbox" name="hobby"/>跑步
    <br/>
    家庭住址:
    <select name="address">
        <option>北京</option>
        <option>天津</option>
        <option>南京</option>
        <option>上海</option>
    </select>
    <br/>
    <textarea cols="50" rows="5">个人签名:</textarea>
    <br/>
    <input type="submit" value="提交"/>
</form>
</body>
</html>

列表:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习笔记011</title>
</head>
<body>
<!--有序列表-->
<ol>
    <li>冠军</li>
    <li>亚军</li>
    <li>季军</li>
</ol>
<br/>
<!--无序列表-->
<ul>
    <li>北京</li>
    <li>桑海</li>
    <li>墨脱</li>

</ul>
</body>
</html>
相关推荐
幼儿园老大*35 分钟前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
1 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
ctrey_1 小时前
2024-11-4 学习人工智能的Day21 openCV(3)
人工智能·opencv·学习
啦啦右一1 小时前
前端 | MYTED单篇TED词汇学习功能优化
前端·学习
霍格沃兹测试开发学社测试人社区2 小时前
软件测试学习笔记丨Flask操作数据库-数据库和表的管理
软件测试·笔记·测试开发·学习·flask
今天我又学废了2 小时前
Scala学习记录,List
学习
王俊山IT2 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
Mephisto.java3 小时前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
南宫生3 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
武子康5 小时前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘