软件测试基础(2)

如何开始第一次测试

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

1.阅读所有项目有关的文档, 包括:需求文档, 设计文档, 用户手册.

2.尽可能参加各种项目会议, 了解项目的背景, 人员组成, 尽可能的了解需求和业务. 特别针对业务专业性较强的项目, 例如银行业务, 需要了解各种业务知识,如高低柜, 一二三类账户等, 存款, 贷款等.

3.熟悉项目所使用的测试管理工具, 配置管理工具, 获取对应的地址和登陆方式.

4.阅读已有的测试方案和测试案例.

5.阅读旧有的BUG库, 了解系统功能. 更重要的是和现有的测试团队保持一致的故障定级规则.

6.了解公司的规范要求, 特别是用例编写规范, 用例执行规范, bug提交规范, 测试工具使用规范等.

在进行了以上的准备工作之后, 第一次测试的工作到来了, 我们需要与测试组长确定具体工作内容:

1.测试的计划是什么?

2.测试的内容是什么? test case有多少? 安排了几天进行? 有没有自由测试的时间?

3.我们要测试的内容开发人员是谁? 需求人员是谁?

4.分配给我的测试内容是否需要特殊的测试资源? 资源是否满足需要?

在我们确认了上述内容之后, 就可以开始测试的执行了.

测试的执行和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.尽早介入项目, 不要等开发的进行的差不多了再介入项目. 

发散一下: 以注册需求来进行一次测试?

功能: 需求所描述的功能.

功能其他: 需求未考虑到的: 邮件内容是否正确? 连续注册?

边界:最大值,最小值等

界面:美观, 整齐

校验: email格式校验, 错误校验, 已注册校验, 输出校验, 为空等.

兼容性:IE, 360, CHROME

安全性: 验证码能否起效?  http请求能否直接发送

性能:多用户并发.

其它? 

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

能让开发人员解决最多Bug的测试人员是最优秀的测试人员. 

测试工作中, 最常遇到和开发人员的PK, 作为测试经理还需要与项目经理, 产品经理PK进度,质量.

作为一个测试人员, 一般会遇到以下几种情况:

这不是bug

这个bug的级别太高了

bug影响不大, 暂不修改

遇到争执, 先不要怕, 记住批判性思维: 清楚--准确, 切题--深刻, 有意义, 有逻辑性--公正,全面.

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

如果能正确地, 高质量地录入一个Bug, 那么基本上已经成功地与开发人员沟通了一大半的关于Bug的信息. 但总有"书难达意"的时候, 这时候就需要测试人员主动和开发人员进行沟通了. 如果测试人员发现写完一个缺陷后, 好像还有很多关于Bug的信息没有表达, 或很难用书面表达, 就应该在提交bug之后, 马上找相关程序员解释录入的bug, 确保程序员了解bug的意思.

2.站在用户的角度思考问题, 应该让开发人员了解到bug对用户可能造成的困扰, 这样才能使开发人员更加积极地, 高质量地修改bug. 在争执时, 可以问一句:如果你是用户,你可以接受吗?

3.bug定级要有理有据

bug定级时, 不仅要参考bug级别, 还要考虑到bug是否会影响到流程, 往往用户的bug级别和我们的是有区别的, 需站在用户的角度考虑定位级别.

4.提高自身的技术和业务水平. 不光要提出问题, 最好也要提出解决方案.

在工作中, 你会发现同一个bug, 资深测试工程师和初级测试工程师提出, 两者的结果完全不同, 两者最大的区别是资深测试工程师往往会提出解决方案. 而长此以往, 权威性就会建立起来. 使得开发人员对你的判断信服性更高.

 eg:某网站经常隔几天访问时出现500错误, 但是之后就不会复现.

测试人员提出问题: 网站偶发性出现500错误.

开发人员回答; 不常见, 不影响使用, 暂不修改.

资深测试人员提出问题: 网站偶发性出现500错误, 查看日志, 是由于mysql数据库8小时超时问题造成. 需要修改连接池配置定期校验连接.

开发人员处理:修改xml, 增加校验配置项.

5.开发人员不接受时, 不要争吵.

可能你已经进行了多轮沟通, 但开发人员仍不接收. 此时可以发起bug评审.

bug评审要注意的问题 : 1.决定如何处理bug 2.分析缺陷产生原因, 找出预防对策.

(1)决定如何处理bug. 这一方面评审需要项目组各个方面的代表参加, 通常是测试代表, 开发代表, 产品代表.

测试代表主要从bug的具体表现, 严重程度等方面提供信息, 并提出自己对bug的处理意见.(需要注意不应一味要求对bug的修改, 因为修改可能带来回归的风险, 同时带来回归测试的工作量, 如果时间紧迫, 没有时间进行, 不修改可能更明智).

开发代表主要从修改缺陷的难度和风险出发, 考虑修改付出的代价, 影响的范围, 可能引发的风险等, 如果决定要修改, 还需要讨论修改的初步方案.

产品代表主要从产品的整体计划, 用户的要求等方面对缺陷修改的必要性, 缺陷修改的时间和版本提出意见.

(2)分析缺陷产生原因, 找出预防对策. 缺陷评审还应该包括原因分析, 找出bug出现的原因,彻底根除重复出现的bug. 找出错误产生根源, 并指定预防措施, 确保同类型的bug不再出现. 

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

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

相关文章

存储的过程

一、存储过程 1.1 概述 存储过程可以轻松而高效的去完成这个需求,有点类似shell脚本里的函数 1.2 特点 存储过程在数据库中创建并保存,它不仅仅是 SQL 语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。存储过…

6.二叉树——1.指针

指针详解 指针,即地址,是一个数字,也可以申请一片内存空间将指针值存起来指针可以定位到内存中不同的字节运算符*:*p表示取地址p上存储的值,即间接访问**int ***:基类型为int的指针变量,基类型…

从入门到精通:NTP卫星时钟服务器技术指南

从入门到精通:NTP卫星时钟服务器技术指南 从入门到精通:NTP卫星时钟服务器技术指南 一、 产品功能 卫星时钟服务器是一款采用GPS或北斗卫星提供高精度网络时间服务的产品。卫星天线安装简便(根据天线所放位置提示实时卫星颗数)&a…

实现商铺和缓存与数据库双写一致

2.4 实现商铺和缓存与数据库双写一致 核心思路如下: 修改ShopController中的业务逻辑,满足下面的需求: 根据id查询店铺时,如果缓存未命中,则查询数据库,将数据库结果写入缓存,并设置超时时间…

从头搭建GPT(Andrej Karpathy) 笔记

本文来自openAI联合创始人,曾担任特斯拉视觉部门总监的Andrej的视频Let’s build GPT。 文章目录 简单介绍数据处理部分什么是tokenize计算loss直觉上的self-attention矩阵乘法实现self-attention:self-attention和cross-attention有什么区别attention中为什么要做scaling继续…

标定系列——预备知识-OpenCV中与标定板处理相关的函数(四)

标定系列——预备知识-OpenCV中与标定板处理相关的函数(四) 说明记录棋盘格圆网格 说明 记录了OpenCV中与标定板处理相关的函数用法 记录 棋盘格 圆网格

AWS SES发送邮件时常见的错误及解决方法?

AWS SES发送邮件如何做配置?使用AWS SES发信的限制? 在使用AWS SES发送邮件时,可能会遇到一些常见的错误。AokSend将介绍一些常见的AWS SES发送邮件错误及其相应的解决方法,帮助用户更好地利用AWS SES进行邮件发送。 AWS SES发送…

阿里云ubuntu服务器搭建可视化界面

连接终端 最好初始化服务器的时候 不要以root权限创建 否则会出错 1更新软件: sudo apt-get update2安装ubuntu desktop : sudo apt-get install ubuntu-desktop3 配置ubuntu desktop并重启: sudo apt-get -f install sudo dpkg-reconfigure ubuntu-desktop sudo reboot4 su…

webpack.dev.js(webpack开发环境配置文件)

开发环境:只运行本地资源不打包dist 对于在config目录下的webpack.dev.js 1.在根目录下运行 npx webpack serve --config ./config/webpack.dev.js 2.在package.json文件中配置 "dev":"npx webpack serve --config ./config/webpack.dev.js&quo…

labelme的安装与使用以及如何将labelme标注的json格式关键点标签转为yolo格式的标签

文章目录 本文只关于将关键点json标签转为yolo标签希望得到您的指导背景及代码可用范围一、labelme的安装和使用(一)labelme的安装(二)labelme的使用 二、json2yolo 本文只关于将关键点json标签转为yolo标签 如果您的json标签格式…

Axure中后台系统原型模板,B端页面设计实例,高保真高交互54页

作品概况 页面数量:共 50 页(长期更新) 兼容版本:Axure RP 9/10,不支持低版本 应用领域:网页模板、网站后台、中台系统、B端系统 作品特色 本品为「web中后台系统页面设计实例模板」,默林原创…

(delphi11最新学习资料) Object Pascal 学习笔记---第8章第1节(继承)

第8章 继承 ​ 如果说编写类的关键原因是封装,那么在类之间使用继承的关键原因就是灵活性。将这两个概念结合起来,你就能拥有可以使用且不会改变的数据类型,并能创建这些类型的修改版本,这就是最初所谓的 “开放-封闭原则”&…

备考ICA----Istio实验10---为单个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验10—为单个主机配置 TLS Istio Ingress Gateway实验 1. 环境准备 部署httpbin kubectl apply -f istio/samples/httpbin/httpbin.yaml 2. 证书生成 2.1 生成根证书 生成根证书keyfile和crt文件 mkdir example_certs_root openssl req -x509 -sha256 …

强化基础-Java-泛型

什么是泛型? 泛型其实就参数化类型,也就是说这个类型类似一个变量是可变的。 为什么会有泛型? 在没有泛型之前,java中是通过Object来实现泛型的功能。但是这样做有下面两个缺陷: 1 获取值的时候必须进行强转 2 没有…

学透Spring Boot — 创建一个简单Web应用

从今天开始,我们将开始学习一个新的系列,那就是在项目中用得非常广泛的一个框架 —— Spring Boot,我们会循序渐进地介绍 Spring Boot 的方方面面,包括理论和实战,也会介绍和Spring Boot一些热点面试题。 概论 本文是…

C#学生信息成绩管理系统

一、系统功能描述 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩、修改成绩、修改个人密码等,而学生则可以通过系统来选择课…

观察者模式和发布-订阅模式有什么异同

观察者模式(Observer Pattern)和发布-订阅模式(Publish-Subscribe Pattern)都是用于处理对象之间的一对多依赖关系,但它们在实现方式和应用场景上有一些异同。 观察者模式: 观察者模式定义了一种一对多的依…

基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵

基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵 目录 前言 一、Givens旋转简介 二、Givens旋转解释 三、Givens旋转进行QR分解 四、Givens旋转进行QR分解数值计算例子 五、求逆矩阵 六、MATLAB仿真 七、参考资料 总结 前言 在进行QR分解时,HouseHolder变换…

YOLOv8项目实践——目标检测、实例分割、姿态估计、目标追踪算法原理及模型部署(Python实现带界面)

简介 Ultralytics YOLOv8是一种前沿的、最先进的(SOTA)模型,它在前代YOLO版本的成功基础上进行了进一步的创新,引入了全新的特性和改进,以进一步提升性能和灵活性。作为一个高速、精准且易于操作的设计,YO…

量化交易入门(二十三)什么是MTM指标,原理是什么

MTM指标全称是Momentum指标,翻译为动量指标。它用来衡量市场价格在一定时间内上涨或下跌的幅度,属于趋势型指标。其计算公式是: MTM(N) 当前收盘价 - N日前的收盘价 其中N表示统计的周期数,常用参数有6日、12日和24日。 MTM指标的应用要点如下: 判断趋势强弱:MTM数值越大,表…