【测试】测试概念篇和基础篇

news2025/3/14 13:06:46

目 录

  • 一.了解软件测试的基础概念
    • 1.需求
    • 2.测试用例
    • 3.BUG
  • 二.开发模型和测试模型
    • 1.瀑布模型
    • 2.螺旋模型
    • 3.增量模型和迭代模型
    • 4.敏捷模型
  • 三.软件测试模型
    • V模型
    • W模型
  • 四.BUG篇
    • 1. 如何合理的创建 bug
    • 2. bug 级别
    • 3. bug 的生命周期
    • 4. 跟开发产生争执怎么办

一.了解软件测试的基础概念

1.需求

什么是需求?

在企业中,需求主要分为两类,用户需求软件需求

用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。

软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。

软件需求是测试人员进行测试工作的基本依据。(用户需求不可以直接作为测试/开发工作的依据! ! ! 用户的需求不一定是正确的、合理的,需要进行用户需求的提取和分析~)

如果说用户需求是合理的,而且有开发的必要产品经理就会将用户需求转变成软件需求文档


2.测试用例

测试人员在执行测试之前需要编写测试用例,测试用例的好坏与产品测试质量具有很大的关联关系

假如我们现在要测试这样的一个输入框,我们该怎么测试?能够设计出哪些测试用例
 
输入一个空内容,检查结果
输入一个关键词,检查结果是否跟关键词相关
输入C语言/c语言,检查结果是否相同
输入字符串检查结果是否符合预期
输入带有空格的关键词,检查结果
是否存在SQL注入的情况

想一个测试一个,尤其是软件功能比较复杂的时候,仅仅通过头脑风暴来记住测试肯定是不科学的同时,测试用例的存在能够提高测试覆盖率,如果不设计测试用例来进行测试, 可能会造成漏测的风险,测试人员要尽可能的去避免漏测,保证线上不会出现明显的问题。

测试用例的出现主要解决了两个问题:测什么,怎么测。

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。


3.BUG

当且仅当规格说明(软件需求文档)是存在的并且正确,程序与规格说明之间的不匹配才是错误。

当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是 软件错误


二.开发模型和测试模型

也可以理解为 开发流程/项目推进 流程(软件的生命周期)。

在这里插入图片描述


软件测试贯穿于软件的整个生命周期

软件测试人员需要执行的测试 任务/动作 也是分阶段的

软件测试的生命周期:需求分析——测试计划——测试设计与开发——执行测试——测试评估。(测试设计开发:测试人员需要借助需求文档+技术文档来编写测试用例)

1.瀑布模型

在这里插入图片描述

线性结构∶意味着前一个阶段结束后一个阶段才能开,导致风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。

测试被后置,需要保留足够的时间给测试,否则导致测试不充分,缺陷直接暴露给用户

一个最大缺陷在于,可以运行的产品很迟才能被看到瀑布模型是不能够很好的迎接变化

适用场景:需求固定的小型项目


2.螺旋模型

在这里插入图片描述

在瀑布模型的基础上增加了风险分析生成新的原型(原型图)

螺旋模型增加了风险分析阶段一定是耗时耗力,会专门招聘风险分析人才

成本高,团队需要耗费一定的资金和时间去招聘风险分析人才

适用场景:需求不确定,变化的可能性很大的大型项目


3.增量模型和迭代模型

在这里插入图片描述
增量模型:将项目进行模块化,使其每个模块都能够进行独立的开发和上线。

优势︰产品能够在较短时间内尽快的交付给用户去使用

迭代模型:假如说有一个产品包含五个功能 A B C D E,迭代模型会先完成这五个功能的基础版本,会再经历一起一起的迭代优化,直到这五个功能非常的优秀。

4.敏捷模型

  • 个体与交互重于过程和工具
  • 可用的软件重于完备的文档
  • 客户协作重于合同谈判
  • 响应变化重于遵循计划

敏捷宣言的解读:强调团队内部人员尽可能的进行高效的沟通敏捷模型最终的标准就是︰可交付的软件

敏捷宣言的特点:轻流程、轻文档、重目标、重产出

敏捷开发有很多种方式,其中 scrum 是比较流行的一种方式。

scrum:

了解三个重要的角色五个重要的会议

三个角色:产品经理+项目经理+研发团队

产品经理:定义商业价值,负责收集用户需求,把用户需求整合为软件需求,推动研发团队进行研发,对产品负责。

项目经理:在一定时间内检验团队是否完成工作,召开会议,协调项目,为研发团队服务。

研发团队:由不同技能的成员组成,通过紧密协议,完成一次迭代的目标,交付产品。

收集用户需求,在需求池中评估需求,展开以下会议:

  • 会议1:需求发布会议

产物:确定本次迭代要是实现的需求

  • 会议2:迭代计划会议

需求拆分成一个个任务,明确每个任务对应的责任人,初步评估工时

  • 会议3:每日会议

会议中每个研发团队成员需要回答三个问题:

  1. 昨天做了什么
  2. 今天要做什么
  3. 遇到了什么问题

每日会议结束之后的产物:可交付的软件

  • 会议4:演示会议

每日会议结束之后的产物︰用户的需求

  • 会议5:回顾会议

scrum 模型中每个迭代周期为1 ~ 4 周,通常情况下为一周。


三.软件测试模型

V模型

在这里插入图片描述

左边和右边是一一对应的,其中单元和集成测试一般都是开发人员根据详细和概要设计文档来测试的,而系统测试是根据需求分析和系统文档来由测试人员测试的。

特点:明确了测试有不同类型,而且每个类型和前期的开发工作之间的对应关系。

缺陷:测试后置


W模型

在这里插入图片描述

优点:测试从一开始就介入(软件测试贯穿于软件的整个生命周期),有利于尽早发现问题

缺点:开发和测试虽然是同步的,但是仍然存在着前后的线性关系,不支持敏捷模型。


四.BUG篇

1. 如何合理的创建 bug

创建 bug 的要素:问题的版本,发现问题的环境,发现问题的步骤,预期结果,实际结果等等。

问题的版本:QQ浏览器 xxx 版本
发现问题的环境:windows10家庭版
发现问题的步骤:…
预期结果:用户可以快速通过输入框找到想要的标签
实际结果:没有可以用的输入框,用户只能挨个儿查找,对用户不友好


2. bug 级别

  • 崩溃

  • 严重

  • 一般

  • 次要

为什么要介绍 bug 的优先级?
 
bug 的等级跟优先级有一定关系
出现线上问题进行问题定级,定级会涉及到对应的惩罚范围


3. bug 的生命周期

  • New:新发现的 Bug,未经评审决定是否指派给开发人员进行修改。
  • Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
  • Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
  • Rejected:如果认为不是Bug,则拒绝修改。
  • Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
  • closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
  • Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。

在这里插入图片描述
在这里插入图片描述

4. 跟开发产生争执怎么办

  1. 先检查自身,是否 bug 描述不清楚

  2. 站在用户的角度去考虑问题,可以反问:如果你是用户,你能够接受这样的实现吗?

  3. BUG 定级要有理有据, bug 等级对于开发人员来说是非常敏感

bug等级越严重,说明程序员在实现的实现出现的问题比较严重,就可能上升到工作态度问题?开发能力问题?

  1. 不光能提出bug,最好也要能提出解决方案

  2. 组织bug评审

邀请代表人参加:产品代表、开发代表、测试代表

bug评审会议里要解决以下问题:
1)如何修改bug
2)如何避兔类似的问题发生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1453482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于项目中websocket的socket.io客户端js库的应用

1.如何使用客户端js库? pnpm add socket.io-client2.如何建立连接? import io from socket.io-client // 参数1:不传默认是当前服务域名,开发中传入服务器地址 // 参数2:配置参数,根据需要再来介绍 const socket i…

Java学习第十六节之创建对象内存分析和小结类与对象

创建对象内存分析 小结类与对象 package oop;//一个项目应该只存在一个main方法 public class Application {public static void main(String[] args) {/*1.类与对象类是一个模版:抽象对象是一个具体的实例2.方法定义,调用!3.对应的引用引用…

【vscode】在vscode中如何导入自定义包

只需要额外添加这两条语句即可: import os,sys sys.path.append("../..") 需要注意的是,ipynb 文件打开的工作目录是文件本身的路径,而 py 文件打开的工作路径是 vscode 打开的路径。 相比较而言 pycharm 中创建好项目之后并不…

51单片机编程应用(C语言):DS1302实时时钟

单片机计时的缺陷: 1.他的精度不高,没有时钟芯片精度高, 2.会占用单片机CPU的时间, 3.单片机的时钟无法掉电继续运行,(最大的缺点) DS1302芯片内部有备用电池,可以掉电继续计时…

前端JS按钮点击事件、跳出弹窗、遮罩的实战示例

前端JS 按钮事件、弹窗、遮罩实战示例 文章目录 前端JS 按钮事件、弹窗、遮罩实战示例一、开始二、功能实现三、具体代码如下1、运行结果2、具体代码如下 四、功能解析1、index.html2、button.css3、server.js 一、开始 各位未来的开发者请上座,闲暇的时候发现&…

蓝桥杯:C++二分算法

在基本算法中,二分法的应用非常广泛,它是一种思路简单、编程容易、效率极高的算法。蓝桥杯软件类大赛中需要应用二分法的题目很常见。 二分法有整数二分和实数二分两种应用场景 二分法的概念 二分法的概念很简单,每次把搜索范围缩小为上一…

普中51单片机学习(六)

点亮第一个LED LED相关知识 LED,即发光二极管,是一种半导体固体发光器件。工作原理为:LED的工作是有方向性的,只有当正级接到LED阳极,负极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。其原理图如下 …

linux系统监控工具prometheus的安装以及监控mysql

prometheus 安装服务端客户端监控mysql prometheus浏览器查看 安装 https://prometheus.io/download/下载客户端和服务端以及需要监控的所有的包服务端 官网下载下载prometheustar -xf prometheus-2.47.2.linux-amd64.tar.gz -C /usr/local/ cd /usr/local/ mv prometheus-2.…

如何理解CSS的边框宽度?

CSS 边框宽度学习手记 CSS 边框宽度小概念 在CSS的世界里,border-width这个属性真的很实用,它能帮我指定HTML元素四周边框的宽度。这个宽度嘛,可以用像素px、点pt、厘米cm、相对单位em这些来表示,很方便吧!还有呢&am…

代码随想录 Leetcode435. 无重叠区间

题目&#xff1a; 代码(首刷看解析 2024年2月17日&#xff09;&#xff1a; class Solution { private:const static bool cmp(vector<int>& a,vector<int>& b) {return a[0] < b[0];} public:int eraseOverlapIntervals(vector<vector<int>&…

XUbuntu22.04之apt与snap如何重装软件(二百一十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

[AIGC_coze] Kafka 的主题分区之间的关系

Kafka 的主题分区之间的关系 在 Kafka 中&#xff0c;主题&#xff08;Topics&#xff09;和分区&#xff08;Partitions&#xff09;是两个重要的概念&#xff0c;它们之间存在着密切的关系。 主题是 Kafka 中用于数据发布和订阅的逻辑单元。每个主题可以包含多个分区&#x…

《学成在线》微服务实战项目实操笔记系列(P92~P120)【下】

史上最详细《学成在线》项目实操笔记系列【下】&#xff0c;跟视频的每一P对应&#xff0c;全系列18万字&#xff0c;涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳&#xff0c;参考这篇&#xff0c;相信会带给你极大启发。 四、课程发布模块 4.1 (课程发布)模块需求…

Ubuntu学习笔记-Ubuntu搭建禅道开源版及基本使用

文章目录 概述一、Ubuntu中安装1.1 复制下载安装包路径1.2 将安装包解压到ubuntu中1.3 启动服务1.4 设置开机自启动 二、禅道服务基本操作2.1 启动&#xff0c;停止&#xff0c;重启&#xff0c;查看服务状态2.2 开放端口2.3 访问和登录禅道 卜相机关 卜三命、相万生&#xff0…

天锐绿盾|防泄密系统|计算机文件数据\资料安全管理软件

“天锐绿盾”似乎是一款专注于防泄密和计算机文件数据/资料安全管理的软件。在信息安全日益受到重视的今天&#xff0c;这样的软件对于保护企业的核心数据资产和防止敏感信息泄露至关重要。 通用地址&#xff1a;www.drhchina.com 防泄密系统的主要功能通常包括&#xff1a; 文…

Android 12.0 MTK Camera2 设置默认拍照尺寸功能实现

1.前言 在12.0的系统rom定制化开发中,在mtk平台的camera2关于拍照的一些功能修改中,在一些平台默认需要设置最大的分辨率 来作为拍照的分辨率,所以就需要了解拍照尺寸设置流程,然后来实现相关的功能 如图: 2.MTK Camera2 设置默认拍照尺寸功能实现的核心类 \vendor\me…

七、ActiveMQ的传输协议

ActiveMQ的传输协议 一、是什么二、协议1.TCP(默认)2.NIO3.AMQP4.STOMP5.SSL6.MQTT7 WS 三、NIO配置案例1.修改activemq.xml2.重启3.生产者/消费者4.性能提升4.1 配置4.2 生产者/消费者 一、是什么 官网地址&#xff1a;http://activemq.apache.org/configuring-version-5-tra…

印度基金低风险套利回顾

2024年1月19日当天&#xff0c;印度基金(164824)开放申购&#xff0c;限额申购100元&#xff0c;当天溢价率13%左右&#xff0c;这个溢价率已经非常可观了&#xff0c;当然要祭出一拖七大法搞它一把&#xff01; 一拖七套利原理简介 详细的原理和方法可自行在雪球搜索&#…

MCU中断控制

目录 一、中断相关基础知识 1、NVIC&#xff1a;嵌套向量中断控制器 2、可屏蔽中断和不可屏蔽中断的区别 3、中断优先级 4、常见特殊中断 二、中断相关寄存器 三、中断使用步骤&#xff1a; 一、中断相关基础知识 1、NVIC&#xff1a;嵌套向量中断控制器 (1) 它是内核的…

探索MacOS:苹果电脑的操作系统的魅力

引言&#xff1a; 当我们谈论优雅、简洁和高效的操作系统时&#xff0c;MacOS无疑是众多选择中的佼佼者。作为苹果电脑的专有操作系统&#xff0c;MacOS以其独特的用户界面、强大的性能和丰富的生态系统赢得了全球用户的喜爱。本文将带您深入了解MacOS的魅力所在&#xff0c;以…