【软件测试】基础知识第三篇

简介: 软件错误(bug)的概念

一. 软件错误(bug)的概念

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

当需求规格说明书(需求文档)没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的

功能要求时,就是软件错误。

二. 如何描述一个bug

一个合格的bug描述应该包括以下几个部分:


1、发现问题的版本

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


2、问题出现的环境

环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。


3、错误重现的步骤:描述问题重现的最短步骤。


4、预期行为的描述

要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故障,能写明需求的来源是最好的。要相信:测试人员是最懂需求的。


5、错误行为的描述:描述错误的现象。crash等可以上传log,UI问题可以有截图。


6、其他

某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。


bug描述案例


主要包括发现问题的版本、发现问题的环境、发现问题的步骤、实际的结果、预期的结果。




三. bug的级别

bug的定义每个公司都不一致,在定义级别之前需要查看公司规范。以下为样例:


1、Blocker(崩溃)

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


2、Critical(严重)

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


3、Major(一般)

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


4、Minor(次要)

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


PS:在实际工作中,一般和次要的级别是最常见到的;严重比较少见;崩溃基本见不到。


四. bug的处理流程

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


测试人员对每一个缺陷的修改必须重新取一个包含更改后的代码的新版本进行回归测试,确保相的问题不再出现,才能关闭缺陷。

对于拒绝修改和延迟修改的bug,需要经过包含测试人员代表和开发人员代表、用户方面的代表(或代表用户角度的人)的评审。

bug的具体处理流程如下:


41c08e8af218415c9497e09d447d3e68.png


名词解释


New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。

Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。

Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。

Rejected:如果认为不是Bug,则拒绝修改。

Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。

Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。

Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。

五. 和开发产生争执怎么办

反思是不是自己创建的bug描述的不清楚(具备批判性思维)

bug定级要有理有据

站在用户的角度跟开发人员耐心友好地沟通,反问:如果你是用户能接受这样吗?

能够提出bug的同时也能提出解决方案

组织bug评审,邀请相关代表参加:产品代表、开发代表、测试代表。主要解决:(1)如何修复bug,提出解决方案 (2)如何避免类似的bug


相关文章
|
1月前
|
测试技术
探索软件测试的奥秘:从基础到进阶
【10月更文挑战第4天】在软件开发的广阔天地中,测试是保证质量的重要关卡。本文将深入浅出地介绍软件测试的核心概念、类型和实践方法,旨在帮助初学者构建起完整的测试知识体系,同时为有经验的测试工程师提供一些深入探索的方向。我们将一同走进测试的世界,解锁那些隐藏在代码背后的奥秘。
|
8天前
|
自然语言处理 安全 PHP
深入浅出PHP编程:从基础到实战
【10月更文挑战第36天】本文将带你走进PHP的奇妙世界,无论你是初学者还是有一定经验的开发者,都将从中获益。文章首先介绍PHP的基础概念和语法,然后通过实际代码示例,展示如何利用PHP进行高效的Web开发。最后,我们将探讨一些高级主题,如面向对象编程、数据库操作以及安全性问题。让我们一起开启PHP的学习之旅吧!
|
6天前
|
Java 测试技术 Android开发
探索自动化测试的奥秘:从入门到精通
【10月更文挑战第37天】本文将带你进入自动化测试的世界,从基础知识到实战案例,逐步揭示自动化测试的神秘面纱。我们将一起探讨如何利用代码来简化测试过程,提高效率,并确保软件质量。无论你是初学者还是有经验的开发者,这篇文章都能为你提供有价值的见解和技巧。让我们一起踏上这段探索之旅吧!
|
1月前
|
测试技术
谈谈【软件测试的基础知识,基础模型】
谈谈【软件测试的基础知识,基础模型】
27 5
|
3月前
|
监控 Java 测试技术
探索自动化测试的奥秘:从基础到进阶之旅
【8月更文挑战第30天】在软件工程的世界里,自动化测试是保证项目质量和效率的关键工具。本文将通过浅显易懂的语言和实际示例,带领读者了解自动化测试的基本概念、常用工具和实践策略,旨在为初学者提供一条清晰的学习路径,并帮助有经验的测试人员深化理解,共同提升软件测试的艺术。
|
3月前
|
搜索推荐 程序员
代码之旅:我的编程实践与感悟
在这个数字时代,编程已经成为一种重要的技能。它不仅仅是计算机科学的一个分支,更是一种解决问题的工具。从最初的迷茫到现在的熟练,我在编程的道路上经历了许多挑战和困惑。这篇文章将分享我的编程实践经历,包括我如何从一个初学者成长为一名有经验的程序员,以及在这个过程中我所学到的一些重要经验和感悟。
|
6月前
|
敏捷开发 算法 测试技术
【软件设计师—基础精讲笔记5】第五章 软件工程基础
【软件设计师—基础精讲笔记5】第五章 软件工程基础
101 2
|
测试技术
软件测试开发的基本概念
软件测试开发的基本概念
|
SQL XML 编解码
软件测试—进阶篇(上)
软件测试—进阶篇(上)
109 0
|
编解码 测试技术 程序员
软件测试—进阶篇(下)
软件测试—进阶篇(下)