当前位置: 首页 > news >正文

软件测试生命周期、BUG描述与处理策略

软件测试的生命周期

· 需求分析:需求是否完整、是否正确

· 测试计划:确定由谁测试、测试的起止时间、设计哪些模块

· 测试设计、测试开发:写测试用例(手工、自动化测试用例)、编写测试工具

· 执行测试用例

· 测试评估:测试人员产生测试报告

描述一个 BUG

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

bug的级别

以下为样例:
1 Blocker (崩溃):
        阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。
2 Critical (严重):
        系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。
3 Major (一般):
        功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多)
4 Minor (次要):
        界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理)

BUG 的生命周期

如何开始第一次测试

1、充分理解需求。阅读所有项目有关的文档,包括:需求文档、设计文档、用户手册。

2、确定测试计划。

3、执行测试。开发修复了 BUG 之后一定要验收

4、项目上线 + 维护

如何发现更多的 BUG

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

产生争执怎么办(处理人际关系)

前提:不能吵架

① 确保操作没有问题,确保自己对需求的理解没有问题

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

③ 不光要发现问题,最好也能提出解决方案

④ 开第三方会议:开会前明确问题产生原因,问题是什么,解决方案是什么。开会后问题要不要解决,什么时候解决,谁解决

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • leetcode面试算法题
  • Java程序员接单分享
  • Redis远程字典服务器(1)—— 初识Redis
  • SSH协议管理多主机(SSH协议的两种用法、生产环境用户初始化、结果返回值处理)
  • 人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意力与代码详解
  • 【数据结构】链表篇
  • 深入解析:Amazon Bedrock 上 Claude 3 Haiku 的微调测试报告
  • 基于STM32的智能宠物喂食器
  • MySQL的索引事务和JDBC编程
  • QT(2.0)
  • Datawhale AI 夏令营(2024第三期)AI+逻辑推理方向 模型微调学习笔记
  • MySQL——数据表的基本操作(四)删除数据表
  • 避免死锁的资源分配算法——银行家算法
  • C语言——扫雷游戏
  • Python基础—any(),all()函数你会用吗?
  • @jsonView过滤属性
  • “大数据应用场景”之隔壁老王(连载四)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CSS实用技巧
  • ES6 ...操作符
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java 内存分配及垃圾回收机制初探
  • oldjun 检测网站的经验
  • Python 基础起步 (十) 什么叫函数?
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • TypeScript实现数据结构(一)栈,队列,链表
  • VuePress 静态网站生成
  • 爱情 北京女病人
  • 给初学者:JavaScript 中数组操作注意点
  • 马上搞懂 GeoJSON
  • 前端设计模式
  • 前端之React实战:创建跨平台的项目架构
  • 前嗅ForeSpider中数据浏览界面介绍
  • 软件开发学习的5大技巧,你知道吗?
  • 深度解析利用ES6进行Promise封装总结
  • 数据可视化之 Sankey 桑基图的实现
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我的zsh配置, 2019最新方案
  • 小程序 setData 学问多
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • nb
  • mysql面试题分组并合并列
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 回归生活:清理微信公众号
  • # Panda3d 碰撞检测系统介绍
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (7)摄像机和云台
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (已解决)什么是vue导航守卫