软件测试基础

2023-10-31

软件测试的目的

  • 软件测试的目的是为了发现错误而执行程序的过程

  • 测试是为了证明程序有错,而不是证明程序无错

  • 好的测试用例在于发现至今未发现的错误

  • 一个成功的测试时发现了至今未发现的错误的测试

    • 注意:测试不仅仅是为了找出错误,通过错误产生的原因和错误分布的特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时通过分析也可以帮助我们设计有针对性的检测方法,改善测试的有效性。
    • 没有发现错误的测试也是有价值的,完整的测试时评测质量的方法,详细而严谨的可靠性增长模型可以证明这一点,例如Bev Littlewood发现,一个经过测试正常运行n小时的系统有继续运行n小时的概率。

    验收测试

  • 分为α、β、正式验收测试

  • α测试时内侧版本,即现在所说的cb,此版本仅仅是一个初步完成品,通常只在开发者内部交流,α测试的目的是评价软件产品的FLURPS (即功能、局域化、可用性、可靠性、性能、支持)尤其注重产品的界面和特色。α测试即为非正式验收测试

  • Beta是公测版本,是对所有用户开放的测试版本。该版本相对于α 版已有了很大的改进,消除了严重的错误, 但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布, 用户可从相关的站点下载。通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改。

  • Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本。
    正式验收测试是一项管理严格的过程,它通常是系统测试的延续。在某些组织中,开发组织(或其独立的测试小组)与最终用户组织的代表一起执行验收测试。在其他组织中,验收测试则完全由最终用户组织执行,或者由最终用户组织选择人员组成一个客观公正的小组来执行。

缺陷的属性

  • 缺陷标识:缺陷标识是标记缺陷的一组符号,每个缺陷必须有一个唯一的标识。
  • 缺陷类型:缺陷类型是根据缺陷自然属性划分的缺陷种类,
  • 缺陷严重程度:是指缺陷的引起的故障对软件产品的影响程度。
  • 缺陷优先级:指缺陷被修复的紧急程度
  • 缺陷状态:指缺陷通过跟踪修复过程的进展情况
  • 缺陷起源:指缺陷引起的故障或第一次被检测到的阶段。
  • 缺陷来源:指引起缺陷的起因
  • 缺陷根源:指发生错误的根本原因。

软件测试分类

  • 从是否关心内部结构和具体现实分

    • 分为黑盒测试
    • 白盒测试
    • 会和测试
  • 从是否执行被测软件:

    • 静态测试
    • 动态测试
  • 从软件开发各阶段分

    • 单元测试
    • 集成测试
    • 确认测试
    • 系统测试
    • 验收测试

    确认测试

    • 在完后集成测试后,验证软件功能和性能及其他特性是否满足用户要求,目的是保证系统按照用户预期要求工作,通常采用黑盒测试。

软件测试的生命周期

  • 1、新建(new)
  • 2、打开(open)在测试者提交一个缺陷后,测试组长确认其确实为缺陷会把它置为打开阶段
  • 3、指派、分配( assign)一旦缺陷被置为打开,会把缺陷交给相应的开发人员或开发组,这时状态变为“分配”
  • 4、测试(text)当开发人员修复缺陷后,会把缺陷提交给测试组进行新一轮测试
  • 5、延迟(deferred)缺陷状态被置为“延迟的”意味着缺陷将在下一个版本进行修复,将缺陷置为延迟原因有很多,有些由于缺陷有现金不高,或时间紧。
  • 6.不接受的(rejected)如果开发不认为是一个缺陷,他会不接受,并将状态置为“不接受的”
  • 7、重复提交(duplicate)如果一个缺陷被重复提交两次,或两个缺陷表明意思相同,那么缺陷状态将被置为“重复提交”
  • 8、已核实(verified)缺陷一旦被修复就会置为“测试”,测试人员会执行测试,如果缺陷不再出现就说明缺陷被修复,同时状态被置为已核实。
  • 9、再次打开(reopened)若缺陷被修复后仍然存在,测试人员会将状态置为再次打开。
  • 10、关闭(close)缺陷一旦被修复,测试人员会进行测试,如果缺陷不存在了,会把缺陷状态置为关闭。

测试用例

什么是测试用例?

  • 测试用例是指为特定目的设置的一组测试条件、预期条件、预期结果,测试用例是执行测试的最小实体,他是测试工作的核心,是一组在测试时输入、输出的标准、是软件需求的具体对照。

测试用例的主要元素

  • 标识符:唯一标识每一个测试用例
  • 测试项:准确描述需要测试的项目及其特征
  • 测试环境要求:表示执行测试用例的测试环境
  • 输入标准:执行测试用例的输入要求(这些输入可能包括数据文件、或者操作)
  • 输出标准:按照输入环境和输入标准得到的期望预期结果。
  • 测试用例之间的联系:标识该测试用例与其他测试用例之间的关系

设计测试用例的设计过程

  • 分析系统工作的流程
  • 确定并制定测试用例
  • 确定测试用例的数据
  • 测试用例的修改和更新
    • 测试用例修改的原因:
    • 在测试过程中发现测试用例考虑不周
    • 在软件交付后反馈的软件缺陷,而缺陷又是由测试用例存在漏洞引起的
    • 软件自身功能更新以及软件版本更新,测试用例也要配套更新

黑盒测试

黑盒测试又称功能测试,他通过检测软件功能是否能正常使用,在测试中,把软件当做打不开的盒子,在完全不考虑程序内部结构和内部特征的情况下,在程序接口进行测试,他只能检测程序是否按照程序规格说明书运行,程序能否适当接收输入数据产生正确的输出信息。
黑盒测试主要着眼于程序外部结构,不考虑程序内部逻辑。主要针对软件界面,软件功能进行测试。
别名:功能测试、数据驱动测试、基于规格说明书测试
优点:

  • 从产品功能进行测试
  • 适用于测试各个阶段
  • 容易上手生成测试数据
    缺点:
  • 如果规格说明有误无法发现
  • 某些代码得不到测试
  • 不易进行充分测试

黑盒测试的主要方法

  • 概述:从理论山讲,黑盒测试只有采用穷举输入测试,把所有输入条件都作为测试情况考虑,才能查出程序的所有错误,实际上测试数据有无数多个,不仅要进行所有合法输入,而且要对不合法但可能输入的条件进行输入,这样看来完全测试时不可能的,所以我们要进行有针对的测试。通过测试案例指导测试的实施 保证测试有组织、按步骤有计划的实施。黑盒测试的行为必须加以量化,才能保证软件的质量。而测试用例就是将测试方法量化的方法之一。
  • 具体黑盒测试方法包括
  • 等价类划分法
  • 边界值法
  • 错误推导法
  • 因果图法
  • 决策表法
  • 场景法
  • 正交测试法
    白盒测试
    静态测试
    动态测试

未完——

软件的生命周期

一个软件的生命周期包含:

  • 制定计划
  • 需求分析
  • 软件设计
  • 程序编码
  • 软件测试
  • 软件运行
  • 软件维护
  • 软件停用 8个阶段

软件测试的生命周期

  • 测试计划
  • 测试设计
  • 测试执行
  • 测试总结

软件测试的5w1h

  • what 测试什么
  • why/which 为什么做/输入什么数据
  • where 在哪做
  • who 谁来做
  • when 什么时候测试
  • how 怎样进行测试

测试5c原则

  • correct(准确)每个组成部分描述准确不会产生误解
  • clear(清晰)每个组成部分清晰,易于理解
  • concise(简洁)只包含必不可少的信息 不包含多余的信息
  • complete(完整)包含该复现的完整步骤和其他本质信息
  • consistent(一致)按照一致的格式书写全部缺陷报告

制定测试计划的目的

  • 为测试各项活动制定一个现实可行、综合的计划,包括每项测试
    活动的对象、范围方法、进度、预期结果。
  • 为项目建立一个组织模型,并定义项目中每个角色的责任和工作内容
  • 开发有效的测试模型,能正确的检验正在开发的软件系统
  • 确定测试需要的时间和资源,以保证其可获得性有效性
  • 确定每个测试阶段的标准、要完成的标准
  • 是被测试活动的风险,并消除存在的风险,降低不可能消除风险所带来的损失。

测试计划包含的元素、内容要素

  • 测试的范围
  • 测试的策略
  • 测试的需求
  • 测试的资源要求
  • 测试的人员要求
  • 测试的进度
  • 停止测试的标准
  • 测试用例设计方法
  • 测试中潜在的风险和问题区域
  • 角色职责

为什么要进行软件测试?软件测试的目的是什么?

  • 因为软件也是一种产品,是产品就应该经过测试菜可以流通上市,所以软件产品也需要测试是无可厚非的,在项目生命周期中,测试是给软件把关的重要环节。
  • 软件测试的目的是为了发现错误而执行程序的过程
  • 测试是为了证明程序有错,而不是证明程序无错
  • 好的测试用例在于发现至今未发现的错误
  • 一个成功的测试时发现了至今未发现的错误的测试
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件测试基础 的相关文章

  • 【性能测试入门】:压力测试概念!

    压力测试可以验证软件应用程序的稳定性和可靠性 压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力 并确保软件在紧急情况下不会崩溃 它甚至可以进行超出软件正常工作条件的测试 并评估软件在极端条件下的工作方式 在软件工程中 压力测试
  • 软件测试开发/全日制/测试管理丨用户端 Web 自动化测试

    随着Web应用的普及和不断发展 用户端Web自动化测试成为确保Web应用质量的重要手段 这种测试方法不仅提高了测试效率 也帮助团队及时发现和解决潜在问题 确保用户体验的连贯性和稳定性 工具选择 用户端Web自动化测试的第一步是选择适当的工具
  • 软件测试|Python Selenium 库安装使用指南

    简介 Selenium 是一个用于自动化浏览器操作的强大工具 它可以模拟用户在浏览器中的行为 例如点击 填写表单 导航等 在本指南中 我们将详细介绍如何安装和使用 Python 的 Selenium 库 安装 Selenium 库 使用以下
  • JMeter 批量接口测试

    一 背景 最近在进行某中台的接口测试准备 发现接口数量非常多 有6 70个 而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值 想了几种方案后 决定尝试使用JMeter的csv读取来实现批量的接口测试 二 脚
  • 接口测试之Fiddler弱网测试

    前言 目前市面上的APP功能越来越丰富 移动端测试也越显为重要 因为用户在网速慢的情况下 你的网站 软件 总能出现各种各样的问题 请不要忽略这一点 针对在不同的网络情况下 接下来 本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试
  • 最佳利用Mock提升测试效率的7个技巧!

    再聊这个问题之前 我们先了解一下公司技术架构的演变过程 这样我们才能真正体会到我们为什么要使用 Mock功能 单体应用 在早期 大部分公司的应用技术栈主要可以分为两大类 LAMP Linux Apache MySQL PHP 和 MVC S
  • 软件测试/测试开发/全日制/测试管理丨Python深拷贝与浅拷贝

    深拷贝和浅拷贝是两种不同的拷贝方式 它们在处理可变对象 如列表 字典 时有着不同的行为 以下是深拷贝和浅拷贝的主要区别 1 浅拷贝 Shallow Copy 创建方式 浅拷贝通过复制原始对象 创建一个新对象 但对于原始对象中的可变对象 如列
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO

随机推荐

  • Python中嵌套的列表推导式,以及实际应用中的更佳做法

    Python中嵌套的列表推导式 以及实际应用中的更佳做法 语法说明和示例来源自Python3 8官方文档 以转置矩阵的例子来说明嵌套列表推导式的使用 我们以Python中嵌套的列表来作为矩阵的存储结构 下面是一个3x4的矩阵 它由 3 个长
  • Qt继承类实例

    slavesexplorer h ifndef SLAVESEXPLORER H define SLAVESEXPLORER H include
  • Linux Django不允许外部访问ip:8000始终访问不了..

    原因 你的防火墙是否开启这个端口号8000 Firewall开启常见端口命令 firewall cmd zone public add port 8000 tcp permanent 重启防火墙 firewall cmd reload 查看
  • 实践Angular中Router路由跳转之navigateByUrl与navigate

    开始进入实战前 我们先来看下官方文档中对navigateByUrl navigate的介绍 navigateByUrl 定义 基于所提供的 URL 进行导航 必须使用绝对路径 参数 url string UrlReee extras 一个包
  • 在Angular6下ng add ng-zorro-antd 时报错

    ng add ng zorro antd 自动安装配置的ng zorro antd由于版本太高 会报错T1005 解决方案 1 在package json中修改ng zorro antd为 ng zorro antd 1 2 0 2 在an
  • Android中Intent的介绍

    一 Intent的介绍 Intent的中文意思是 意图 意向 Intent对Android的核心和灵魂 是各组件之间的桥梁 四大组件分别为Activity Service BroadcastReceiver ContentProvider
  • HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models

    HaluEval A Large Scale Hallucination Evaluation Benchmark for Large Language Models 原文 https arxiv org pdf 2305 11747 尽管
  • GAN-对抗生成网络

    generator import argparse import os import numpy as np import math import torchvision transforms as transforms from torc
  • 深入理解设计原则之依赖反转原则(DIP)【软件架构设计】

    系列文章目录 C 高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C 并发线程编程 DIP 依赖反转原则 系列文章目录 1 依赖反转原则的定义和解读 2 稳定的抽象层 3 依赖倒置原则和控制反转 依赖注入的联系 小结
  • 数字信息-数字编码挂钩法

    一 前方无路 一切才刚开始 0呼啦圈 1蜡烛 2鹅 3金元宝 4青龙5钩子 6哨子 7七仙女 8八卦镜9药酒 二 少年中国说 看到 1 想到 树 想到 树 想到 智慧树 再想到 少年智则国智 看到 2 想到 鸭子 想到 鸭子 想到 鸭子浮在
  • yaml配置文件转换成JSON

    目录 1 1Yaml配置文件读取 1 2加载yaml文件 1 3工具类 1 4writeValue使用 1 5map遍历工具 1 1Yaml配置文件读取 依赖导入
  • 原地重写法

    原地重写法有2种常见应用 1 线性表删除元素 2 线性表partition 基于swap i 代表新数组下一个要写的位置 j 用来遍历原数组 数组分成3部分 0 i 是已经重写的 满足条件的部分 i j 是已经处理 不满足条件的部分 j n
  • Mol Cell Proteomics.

    大家好 本周分享的是发表在Molecular Cellular Proteomics 上的一篇关于富马酸二甲酯在脑细胞蛋白质中新作用靶点的鉴定及功能性验证的文章 题目是Identification of Novel Protein Targ
  • ipadpro画流程图_Paper 推出适用于快速制作流程图的 Think 套件

    我们在上一次介绍的 Paper 2 0 里着重介绍了 Mix 社区和 Pencil 的使用体验 在六一儿童节 FiftyThree 团队再次给大家惊喜 带来了制作流程图的专业套件 该套件包括 Diagram 线图 Fill 填充 以及 Cu
  • 3W字详细解析 ConcurrentHashMap 1.7和1.8源码,再也不用担心被面试官吊打了。

    前言 上篇文章介绍了 HashMap 源码后 广受好评 让本来己经不打算更新这个系列的我 仿佛被打了一顿鸡血 被读者认可的感觉 真奇妙 然后 有读者希望我能出一版 ConcurrentHashMap 的解析 所以 今天的这篇文章 我准备讲述
  • UIUC简介 -- 写给今年得到UIUC Offer并在犹豫中的同学

    更新版 此次更新修改了一些信息 添加了一些经常被问到的问题 另外 我现在读本科该上大三 对研究生各专业的申请和专业前景以及就业前景并不知晓也不关心 所以请有这方面问题的同学不用再发邮件问了 感兴趣的话自己去UIUC主页看 http illi
  • [项目管理]建设项目团队—主题晨会

    项目管理 建设项目团队 主题晨会 是提高工作能力 促进团队互动和改善团队氛围 以提高项目绩效的过程 项目经理应该去建立 建设 激励和领导项目团队 以实现项目团队的高效运行和项目目标 建设项目团队的目标通常包括三点 1 提高团队成员的工作技能
  • Mac 安装ant

    文章目录 一 官网下载ant 二 解压到指定路径 三 编辑配置 四 执行命令ant version 一 官网下载ant https ant apache org bindownload cgi 二 解压到指定路径 三 编辑配置 vi bas
  • mysql 1197_【MySQL故障处理】 Seconds_Behind_Master= NULL Error_code: 1197

    将处理主从故障的过程记录在此 故障1 Error code 1197 max binlog cache size 数据库版本 5 7 9 报错信息 ERROR Slave SQL for channel Worker 1 failed ex
  • 软件测试基础

    软件测试的目的 软件测试的目的是为了发现错误而执行程序的过程 测试是为了证明程序有错 而不是证明程序无错 好的测试用例在于发现至今未发现的错误 一个成功的测试时发现了至今未发现的错误的测试 注意 测试不仅仅是为了找出错误 通过错误产生的原因