软件测试的基础知识

目录

前言

软件测试的生命周期

如何描述一个bug

如何定位bug的级别

bug的生命周期

和开发人员产生争执怎么办

设计一个测试用例


前言

上篇文章主要写了软件测试的一些基本概念以及软件测试的前置知识,这篇文章主要带大家了解在进行软件测试之前要准备的工作.

软件测试的生命周期

在上篇文章中我们提到了软件开发的生命周期,软件的生命周期是:

需求阶段->计划阶段->设计阶段->编码阶段->测试阶段->运行维护

可以看出测试阶段是在整个软件的生命周期的后面才开始进行介入的.

在测试介入之后,软件测试的生命周期:

需求分析->测试计划->测试设计->测试开发->测试执行->测试评估

  1. 需求分析:主要是分析需求是否正确,是否完整
  2. 测试计划:主要是谁测试,怎样进行测试,什么时候开始测试.
  3. 测试设计:设计测试用例.
  4. 测试开发:开发测试工具,开发自动化测试用例.
  5. 测试执行:提高bug,验收.
  6. 测试评估:产出测试报告.

如何描述一个bug

当我们在测试的过程中,如果发现了bug,那么我们应该正确的描述一个bug呢?

首先一个完整的bug有以下及部分组成:

  • 发现问题的版本
  • 问题出现的环境
  • 错误出现的步骤
  • 预期行为的描述
  • 错误行为的描述
  • 其他

出现问题的版本:开发人员需要知道出现问题的版本,才会获取到对应版本的代码来复现bug,并且版本的标识也有利于统计和分析每个版本的质量。

问题出现的环境:环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器的版本,客户机操作系统版本等,如果是App项目,需要描述机型,分辨率,操作系统版本等。

错误出现的步骤:描述问题出现的最短步骤.

预期行为的描述:要让开发人员指导怎么样才是正确的,尤其是以用户的角度来描述程序的行为是咋样的.

错误行为的描述:描述错误出现的现象。

如何定位bug的级别

当我们找到了一个bug,并且成功的将这个bug进行描述之后,那么这个bug对应的级别应该如何设置呢?

bug的级别主要有以下几种:

  • 崩溃
  • 严重
  • 一般
  • 次要

1、Blocker(崩溃): 阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单 功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。

2、Critical(严重):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序 接口错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测 试)。

3、Major(一般): 功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询 时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最 多).

4、Minor(次要): 界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置 不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;在测 试后期出现较少,应及时处理).

bug的生命周期

当我们发现了bug并且定位了bug的级别之后,需要注意的是,bug也是有生命周期的,也就是bug从发现开始到彻底的修复的过程.

以下就是一个bug的生命周期流程图:

Start 开始

New 发现了一个bug

Open 指定了开发,打开这个bug

Fixed 修复完成

Closed 关闭

Reopen 重新打开

Rejected 拒绝

Delay bug延期修复(在未来的某一刻要修复)

 可以通过上述图片来完整的理解一个bug从发现到修复的整个过程,

和开发人员产生争执怎么办

排除自身的原因:排除自己的误操作,对需求了解有误

排除自己的工作方式问题:提交的bug不详细

提供给开发解决方案和思路

站在用户的角度去考虑问题

如果上述策略都不能完全的解决问题,可以采用下面这个方案:

第三方会议:一定要描述清楚bug,bug如何解决要有自己的思路,拿到一个结果:bug到底要不要修复。

设计一个测试用例

以微信付款设计一个简单的测试用例:

基本测试点:

(1)零钱支付功能(零钱充足时)

(2)零钱不足时,支付

(3)支付的钱数为为整数,小数

(4)首次使用微信零钱功能(必须要绑定银行卡)

(5)没有钱时支付

(6)扫微信收款码付款

(7)扫非微信付款二维码支付

(8)零钱支付上限(有上限)

(9)零钱可支付的最小金额(下线)

(10)收到转账或者红包零钱金额是否正确

(11)每次消费零钱,都有消息提醒

(12)可以将零钱提取到银行卡(收手续费,到账时间)

(13)可以向微信零钱充钱(从银行卡)

兼容性:

(1)测试不同的微信版本

(2)测试不同的手机系统(iOS,Android,包括不同安卓机不同品牌的机型)

性能:

支付零钱,给零钱充值,提取零钱的速度(单条,全部,清空)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trino HTTPS 与密码认证介绍与实战操作

文章目录 一、概述二、安装 Trino三、配置 HTTPS1)生成证书2)配置 Trino3)修改 Trino docker-compose yaml 文件4)开始部署 Trino5)测试验证 四、密码认证1)开启密码认证2)创建密码认证配置文件…

编辑器的缩略图实现原理

一、背景 部分 Web 版的 IDE 编辑器未曾实现缩略图功能,探寻一下缩略图的实现逻辑。以 VSCode 为例。 VSCode 的编辑器是monaco实现的,编辑器的编辑区都是采用的虚拟渲染,即仅渲染可视区的代码,可视区之外的动态去除 DOM 节点。…

SpringBoot结合MyBatis实现多数据源配置

SpringBoot结合MyBatis实现多数据源配置 一、前提条件 1.1、环境准备 SpringBoot框架实现多数据源操作,首先需要搭建Mybatis的运行环境。 由于是多数据源,也就是要有多个数据库,所以,我们创建两个测试数据库,分别是…

6. 装饰器

UML 聚合(Aggregation)关系&#xff1a;大雁和雁群&#xff0c;上图中空心菱形箭头表示聚合关系组合(Composition)关系&#xff1a;大雁和翅膀 &#xff0c;实心菱形箭头表示组合(Composition)关系 测试代码 #include <iostream> #include <stdio.h> #include &l…

R 语言的安装教程

一、下载相关软件 1、R 下载 官网&#xff1a;R: The R Project for Statistical Computing 找到中国镜像&#xff0c;下载快 历史版本点击这里 2、Rtools 下载 进入镜像后&#xff0c;点击这里 然后选择与上面下载的R版本相对应的版本即可 3、Rstudio 下载 官网&#xff1…

Spring 篇

1、什么是 Spring&#xff1f; Spring是一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架&#xff0c;目的是用于简化企业应用程序的开发&#xff0c;它使得开发者只需要关心业务需求。常见的配置方式有三种&#xff1a;基于XML的配置、基于注解的配置…

Prometheus+Grafana可视化监控【Nginx状态】

文章目录 一、安装Docker二、安装Nginx(Docker容器方式)三、安装Prometheus四、安装Grafana五、Pronetheus和Grafana相关联六、安装nginx_exporter七、Grafana添加Nginx监控模板 一、安装Docker 注意&#xff1a;我这里使用之前写好脚本进行安装Docker&#xff0c;如果已经有D…

排查disabled问题之谷歌新版本特性

问题复现 最近我突然接手一个后台的bug&#xff0c;这个后台很久没有迭代更新了&#xff0c;我也不熟悉业务&#xff0c;所以只能看一下源码&#xff0c;问题很快就复现&#xff0c;测试的修复操作也很正确&#xff0c;就是因为渲染的input标签中存在disableddisabled’属性导…

Swing程序设计详解(一)

【今日】 “若你决定灿烂&#xff0c;山无遮&#xff0c;海无拦” 目录 初识Swing 一 Swing简述 二 Swing常用窗体 2.1 JFrame窗体 2.2 JDialog对话框 2.3JOptionPane小型对话框 (1)通知框 (2)确认框 (3)输入框 (4)自定义对话框 三 常用布局管理器 3.1 绝…

计算机组成与设计硬软件接口学习2

并行处理器&#xff1a;从客户端到云 任务级并行或进程级并行&#xff1a;通过同时运行独立的多个程序来使用多处理器 并行处理程序&#xff1a;同时在多个处理器上运行的单个程序 向量和标量 向量指令的重要属性&#xff1a; 单个向量指令指定了大量工作--相当于执行了完…

代码随想录训练营第四十八天|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系…

基于PyTorch使用LSTM实现新闻文本分类任务

本文参考 PyTorch深度学习项目实战100例 https://weibaohang.blog.csdn.net/article/details/127154284?spm1001.2014.3001.5501 文章目录 本文参考任务介绍做数据的导入 环境介绍导入必要的包介绍torchnet和keras做数据的导入给必要的参数命名加载文本数据数据前处理模型训…

Android高级开发-APK极致优化

九道工序 1. SVG(Scalable Vector Graphics)可缩放矢量图 使用矢量图代替位图可以减小 APK 的尺寸&#xff0c;因为可以针对不同屏幕密度调整同一文件的大小&#xff0c;而不会降低图像质量。 矢量图首次加载时可能消耗更多的 CPU 资源。之后&#xff0c;二者的内存使用率和…

Java集合之LinedList

LinedList类实现了List接口&#xff0c;他提供了&#xff08;双向的&#xff09;链表数据结构 在该链表中的每一个元素除了存储本身的内容之外还存储指向前一个元素的指针和指向后一个元素的指针&#xff0c;下图展示了一个包含三个元素的双向链表&#xff0c;每个链表都有一个…

jeesite实现excel导入功能(保姆级图文教程)

文章目录 前言一、准备工作1.准备一个excel模板,放入static目录2.application.yml文件中设置文件存储路径3.使用easyexcel插件解析excel数据,pom文件导入easyexcel二、使用步骤1.列表页添加下载模板按钮2.表单页添加文件上传3. 创建excel解析对应实体4.后台完成文件上传代码,…

深入探索智能问答:从检索到生成的技术之旅

目录 一、智能问答概述1. **语义理解**2. **知识库和数据库**3. **上下文感知**4. **动态学习和自适应** 二、发展历程1. **基于规则的系统**2. **统计方法的兴起**3. **深度学习和神经网络的突破**4. **预训练模型** 三、智能问答系统的主要类型四、基于知识库的问答系统五、基…

机器视觉之Basler工业相机使用和配置方法(C++)

basler工业相机做双目视觉用&#xff0c;出现很多问题记录一下&#xff1a; 首先是多看手册&#xff1a;https://zh.docs.baslerweb.com/software 手册内有所有的源码和参考示例&#xff0c;实际上在使用过程中&#xff0c;大部分都是这些源码&#xff0c;具体项目选择对应的…

【微信小程序】项目初始化

| var() CSS 函数可以插入一个自定义属性&#xff08;有时也被称为“CSS 变量”&#xff09;的值&#xff0c;用来代替非自定义 属性中值的任何部分。 1.初始化样式与颜色 view,text{box-sizing: border-box; } page{--themColor:#ad905c;--globalColor:#18191b;--focusColor…

【测试开发】答疑篇 · 什么是软件测试

【测试开发】答疑篇 文章目录 【测试开发】答疑篇1. 生活中的测试2. 什么是软件测试3. 为什么要有测试/没有测试行不行4. 软件测试和软件开发的区别5. 软件测试和软件调试之间的区别6. 软件测试的岗位7. 优秀测试人员具备的素质 【测试开发】答疑篇 软件不一定是桌面应用&#…

JSON和全局异常处理

目录 1️⃣JSON 一、什么是json&#xff1f; 二、与javascript的关系 三、语法格式 四、注意事项 五、总结 六&#xff0c;使用json 1导入pom.xml依赖 2.配置spring-mvc.xml 3. ResponseBody注解使用 创建一个web层控制器 编写ClazzBiz 实现接口 测试&#xff1a; …