软件测试基础篇(测试系列3)

news2024/11/26 8:54:27

目录

前言:

1.软件测试的生命周期

2.如何描述一个BUG

3.如何定义BUG的级别

4.BUG的生命周期

5.如何开始第一次测试

6.测试执行和BUG管理

结束语:


前言:

在两节中小编与大家简单的讲解了一些有关于软件测试的基础知识,带着大家一起进入了测试的大门,那么从这节开始我将正式敲开软件测试的大门,带着大家一起感受软件测试的魅力。

1.软件测试的生命周期

软件测试的生命周期:需求分析——>测试计划——>测试设计、测试开发——>测试执行——>测试评估

详解:

  • 需求分析:分析需求是否完整,需求是否正确。
  • 测试计划:确定软件是由谁测试什么时候开始测试,测试哪些模块。
  • 测试设计、测试开发:写测试用例(手动测试用例、自动化测试用例),编写测试工具。
  • 测试执行:执行测试用例。
  • 测试评估:由测试人员产生一份测试报告。

那么软件测试&软件开发生命周期如下所示:

  • 需求阶段:测试人员了解需求,对需求进行分解,得出测试需求。
  • 计划阶段:根据需求编写测试计划/测试方案。
  • 设计阶段:测试人员适当的了解设计,对于设计测试用例 是很有帮助的,测试人员搭建测试用例框架,根据需求和设计编写一部分测试用例。
  • 编码阶段:测试人员一般是不需要编码的,但已经编码的模块,专业的白盒测试人员可以计划执行单元测试、完善、细化测试用例以及调整测试计划和方案。
  • 测试阶段:测试阶段是软件测试人员最为重要的工作阶段,根据测试用例和计划执行测试,在执行的过程中记录、管理缺陷、测试完成后编写测试报告。
  • 运行维护:测试人员需要参与项目的实施工作,测试人员对项目产品的业务操作要非常了解,加上测试人员的沟通表达能力一般比较强,所以测试人员可以参与用户使用软件的培训,在试运行项目时收集问题并及时反馈给相关的负责人。

2.如何描述一个BUG

那么在测试中我们最重要的就是要会进行一个BUG的一个描述,那么一个合格的BUG描述应该包含以下几个部分:

  • 发现问题的版本:开发人员需要知道问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于统计和分析每个版本的质量。
  • 问题出现的环境:环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是APP项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
  • 错误重现的步骤:描述问题重现的最短步骤。
  • 预期行为的描述:要让开发人员知道咋样才是正确的,尤其要以用户的角度来描述程序的行为是怎么样的,如果是依据需求提出的故障,能写明需求来源是最好的。要相信测试人员是最懂需求的。
  • 错误行为的描述:描述错误的现象,crash等可以上传log,UI问题可以有截图。
  • 其他:某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。
  • 不要把多个BUG放在一起:在无法确认是同一段代码造成故障时,不要将bug放在一起提交。

3.如何定义BUG的级别

bug的级别定义每个公司都是不一致的,在定义级别之前需要查看公司规范。

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

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

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

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

4.BUG的生命周期

每个公司、每一个工具对bug生命周期的定义都是不一致的,下面仅是一个常见的例子。

测试人员应该跟踪一个bug的整个生命周期,从Open到Closed的所有状态。

下面是一个bug状态转换图

解释:

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

无效的bug:open——>closed      有效的:open——>rejected——>closed

bug的跟踪以及状态变更应该遵循的一些基本原则

  • 测试人员对每一个缺陷的修改必须重新取一个包含更改后的代码的新版本进行回归测试,确保相同的问题不再出现,才能关闭缺陷。
  • 对于拒绝修改和延迟修改的bug,需要经过包含测试人员代表和开发人员代表、用户方面的代表(或代表用户角度的人)的评审。

5.如何开始第一次测试

作为一个菜鸟进入到测试团队开始第一次测试的时候,我们需要做很多准备:

  • 充分的理解需求:包含文档(产品文档 + 技术文档),项目功能问题产品问题,问开发模块底层如何实现。
  • 确定测试计划。
  • 执行测试:记住bug开发修复之后一定要验收。
  • 项目上线+维护。

6.测试执行和BUG管理

现在我们就开始测试了:

  1. 打开待测试的系统。
  2. 打开测试管理工具用例模块,开始执行用例。
  3. 发现bug!进行复现并确认bug的复现步骤。
  4. 记录bug。
  5. 沟通bug。
  6. 验证以前提前提交的bug。
  7. 确认本次测试完成。
  8. 编写测试报告。

执行测试是处理要做到测试用例和需求的覆盖外,还要有临时发挥的能力,根据自己的经验,对测试的感悟以及随机测试可以发现很多根据测试用例无法发现的缺陷。

那么我们要如何发现更多的bug呢?下面给大家提几点小意见。

  1. 软件测试同样存在二八原则,80%的故障集中于20%的模块,如果某个部分问题比较多,那就加强测试的深度。
  2. 开发人员也存在二八原则,80%的故障集中于20%的开发人员,如果某些开发人员的bug较多,加强它开发模块的测试广度和深度。
  3. 多进行逆向思维和发散性思维。
  4. 不要局限于用例和需求文档。
  5. 尽早的介入项目,不要等到开发的差不多了再介入项目。

结束语:

好了,这节小编就与大家分享到这里啦!后期中小编还会继续细细给大家讲解的,大家记得点赞+收藏哦!大家继续跟紧小编的步伐,一起往前冲!!!希望这节对大家认识测试有一定的帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)

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

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

相关文章

Ubuntu开机自启动设置

一、创建执行脚本 这里有两个程序所以编写了两个脚本,第一脚本(master.sh): gnome-terminal -- bash -c "source /home/zyy/anaconda3/bin/activate wood2;cd /home/zyy/pycharmProject/master_program;python main.py > /home/zyy/pycharmProj…

MYSQL常见面试题汇总

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 1、三大范式 2、DML 语句和 DDL 语句区别 3、主键和外键的区别 4、drop、delete、truncate 区别 5、基础架构 6、MyISAM 和 InnoDB 有什么区别? 7、推荐自增id作…

HCIP第十天

题目 拓扑图 配置IP地址和环回 启动OSPF,使得AS2内部互相学习到路由 BGP建立对等体关系,R1和R2为EBGP对等体,R234为AS64512的联邦,R567为AS64513的联邦,R7和R8为EBGP对等体,R2-R5和R4-R7为不同联邦的EBGP对…

UML类图的使用

相关概念 1. uml例图使用场景: 类图 类图的使用 1. 在UML类图中表示具体类 具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示&#xff1…

文档加密软件有哪些(好用的文档加密软件排名)

在现代社会中,随着信息技术的快速发展,文档的保密性变得越来越重要。为了保护敏感信息不被未经授权的人访问,使用文档加密软件是一种常见的做法。本文将介绍文档加密软件的重要性,并列举一些常见的文档加密软件供读者参考。 文档加…

Git及Tortoisegit使用教程,设置中文

一、到git官网下载GIT 官网 二、下载安装Tortoisegit及中文语言包,Tortoisegit及语言包 语言包下载地址 三、在电脑某个盘的文件里右键 提示未设置git.exe 路径不能继续, 于是去下载git GIT下载 安装Git时, 一直点击 Next > 不要停, 直到结束 此时再跳到TortoiseGit…

[QT编程系列-21]:基本框架 - QT常见数据结构:QString、QList、QVector、QMap、QHash、QSet、QPair详解

目录 1 QString 2 QList 3 QVector 4 QMap 5 QHash 6 QSet 7 QPair 1 QString QString是Qt中用于存储和操作字符串的类。它提供了丰富的字符串处理方法和功能。 以下是QString的一些主要特点和常用操作: 创建QString对象: QString str "H…

远程在Ubuntu20.04安装nvidia显卡驱动

第零步,找人装一个todesk。 在终端运行: ifconfig 记住ip地址,后面要用。 第一步,安装软件: sudo apt-get update sudo apt-get install g gcc make 第二步,下载显卡驱动: 官方驱动 | NVI…

mac批量提取图片文件名到excel?

mac批量提取图片文件名到excel?最近有个小伙伴向我求助一个电脑操作上的问题,问我在Mac电脑上用什么方法可以快速批量的将大量图片的名称一次性提取出来,并且保存到excel表格里。记得小编曾经给大家分享过windows电脑上批量提取文件名称的方法…

关键点检测SIFT算法笔记

SIFT算法 SIFT(Scale Invariant Feature Transform),尺度不变特征变换。具有旋转不变性、尺度不变性、亮度变化保持不变性,是一种非常稳定的局部特征。在目标检测和特征提取方向占据着重要的地位。 SIFT算法所查找到的关键点是一些…

LabVIEW实现基于DCT的野生动物监测无线图像传输

LabVIEW实现基于DCT的野生动物监测无线图像传输 针对野生动物物种数量不断下降的情况,需改进以增强当前野生动物监测系统的能力。目前的系统要求工人进入森林以收集存储在存储卡中的图像数据。这项任务风险很大,而且耗费大量时间。系统也无法提供实时报…

APP加固:助力移动应用安全合规

近日,工业和信息化部发布了2023年第2批侵害用户权益行为的App(SDK)名单,55款App因涉及强制、频繁、过度索取权限等问题而被通报。这一举措进一步凸显了合规对于APP发展的重要性。 根据工业和信息化部的通报,被通报的这…

redolog 、undolog 和binlog

redolog(可以恢复数据,保证数据不丢失) 、undolog(事务回滚) 和binlog(主从同步数据) 脏页 在mysql中,当内存数据页和磁盘数据页上的内容不一致时,则称这个内存页为脏页 脏页什么时候会刷入磁盘? ● redo…

MySQL-DQL-小结

基本查询 条件查询 分组查询 排序查询 分页查询

TX Barcode .NET for WPF Crack

TX Barcode .NET for WPF Crack 用于WPF软件的TX Barcode.NET包括一天完成的功能以及用于WPF的软件的2D条形码控制。 用于WPF的TX Barcode.NET的功能和属性: 它具有以下特性和属性,如: 常见的文字处理功能:它可以为用户和开发人员…

网络安全问题严重?Web3和IP代理能否提供解决方案?

在数字世界中,网络安全问题越来越严重。黑客和网络犯罪分子利用各种手段来窃取个人信息、盗取数字资产或破坏网络服务。为了应对这些威胁,Web3和IP代理成为了有力的工具,可以帮助改善网络安全性,提高网络防御水平。 首先&#xff…

Java 9 - JShell

JShell 的主要特点包括: 交互式输入:可以直接在 JShell 中逐行输入 Java 代码,无需编写完整的类或方法结构。即时执行:JShell 会即时执行输入的代码,并返回结果,让我们能够立即查看输出或执行效果。自动补…

Vue Router相关理解

vue-router是vue的一个插件库,专门用来实现SPA应用 SPA应用的理解 单页Web应用(single page web application,SPA) 整个应用只有一个完整的页面 点击页面中的导航链接不会刷新页面,只会做页面的局部刷新 数据需要通过ajax请求…

QT中QTimer的循环时间小于槽函数执行时间时的状况分析

目录 QTimer运行程序在控制台中实现: 当循环间隔时间大于槽函数时间时: 当存在两个定时器器,其中一个还是间隔100ms,另一个间隔1000ms: 当两个定时器的循环周期大于槽函数执行时间时 QTimer运行程序在控制台中实…

工作笔记20230717

1、C#中winform页面增加切换页面 2、单独定义struct的时候要用变量赋值 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Text; usi…