软件缺陷简介

缺陷种类

  • 遗漏,指规定或预期的需求为体现在产品种
  • 错误,需求是明确的,在实现阶段未将需求的功能正确实现
  • 冗余,需求说明文档中未涉及的需求被实现了
  • 不满意,用户对产品的实现不满意也成为缺陷

缺陷等级划分

  • 致命,造成系统或应用程序死机、崩溃、非法退出等问题,会导致用户数据丢失或被破坏,功能设计与需求严重不符
  • 严重,功能和特性没有实现,导致模块功能失效或异常退出,还有程序接口错误或数据流错误等问题
  • 一般:主要功能丧失,提示信息不太正确,用户界面设计太差以及删除未提示等问题
  • 提示:对功能几乎没有影响,产品及属性仍可使用的问题
  • 建议:测试人员提出的建议、质疑等问题、

缺陷报告

  1. 编号,用数字惊醒唯一标识缺陷
  2. 状态,描述缺陷当前状态,如修复、延期等
  3. 标题,通常用一句比较简洁的话描述Bug
  4. 类型,主要为了进一步描述缺陷产生的原因
  5. 所属版本,描述当前Bug所在的测试版本
  6. 所属模块,描述Bug所在的业务模块
  7. 严重级别,指Bug验证程度
  8. 优先级,按Bug严重级别来确定处理的优先级
  9. 发现人,Bug提交者
  10. 发现日期
  11. 复现概率
  12. 指定处理人,根据Bug类型指定处理人
  13. 详细描述,详细描述缺陷引发的原因及复现步骤,需包含测试环境、前提条件、测试数据、复现步骤、预期结果、实际结果等
  14. 附件,一般为截图、录屏、Log日志等

Bug定位方法

通常Bug分为四种类型,功能、性能、安全和专项质量。

功能关注系统业务流程是否正确

性能关注系统业务员流程是否流畅

安全关注系统是否存在漏洞,是否符合安全标准与规范

专项质量关注系统的用户体验(UX)、兼容性、稳定性、可靠性

Bug表现层
  • 条件:测试数据
  • 过程:测试步骤
  • 结果:测试结果
技术架构层次

软件从技术上分为3层,视图层(View)、控制层(Controller)、模型层(Model)

视图层:网页开发(HTML、CSS等),移动应用App(Activity页面、View组件等)

控制层:网页开发工具(Chrome Devtool),移动应用使用的工具

模型层:模型的传递方式(HTTP、TCP、RPC串口),模型的形式(JSON XML binary)

MVC三层分析法

Bug的定位往往也会按照软件技术架构层次采用MVC三层分析法。

1、View层常用分析法

        View层常见的问题是用户界面(UI)和用户体验(UE)。目前常采用人工测试和自动化测试,通过人工校验为主,自动化校验为辅的方法检验界面交互的准确性以及用户的体验感受。

2、Controller层常用分析法 

        Controller层通过平台自主提供的日志以及应用程序本身提供的应用调试日志分析代码层次的逻辑问题

3、Model层常用分析方法

        Model层根据运行平台的log、App调试机制以及链路来具体分析出现的问题。

Web Bug分析方法
1、Web UI View层Bug分析方法

        界面展示主要依赖于HTML、CSS、JS,可以使用Chrome开发者工具的elements和style两个板块来分析界面。

2、Web Controller层分析方法

        底层逻辑的错误在Console板块hi展示出详细的出错信息。而Source模块可以对错误进行定位,并通过Debug分析问题存在的上下文,找到代码问题的根源所在。

3、Web Model层分析方法-分析数据传递方式与结构

        Model层分析方法是基于运行平台的log。例如Chrome的network模块分析请求方式和数据的具体情况。链路分析使用代理工具,常用的有Fiddler、Charles和Mitmproxy以及网络层的嗅探(常用工具Tcpdump和Wireshark)

App Bug分析方法
1、App View层Bug分析 

        App的UI界面交互和UX/UE用户体验目前常用的是人工校验方式,以自动化作为辅助手段,用UI Diff的方式分析,尝试发现界面中存在的问题,其中人工测试能够发现未知特征的Bug,自动化测试可以断言常用功能是否正常,通过UI Diff可以发现界面结构细节的问题。

2、App Controller层分析

通过logcat分析App runtime日志。

3、App Model层分析方法

        根据平台本身提供的log或者运行平台调试工具,利用应用的日志,通过追踪模式分析链路问题。可以使用代理工具抓包分析,也可使用Wireshark、Tcpdump分析链路,从而找到Bug相应的日志,定位问题。

4、Android Profile网络分析

        Android提供的工具对App交互发生的网络请求进行中间过程的分析。

5、使用代理工具分析

        当工具本身不可调式时,可以使用代理分析工具。

6、网络层协议分析

        通过Tcpdump对程序抓包,并导入Wireshark分析。

性能Bug分析方法
1、H5性能分析方法

        H5的性能分析方法通常对网页加载的过程进行分析,通过W3C定义的Performance API对程序每个阶段发生的问题进行统计,需要各个浏览器支持对性能方面的分析。

2、利用Chrome分析Web性能
3、分析性能瓶颈,使用Profile进行代码剖析
4、代码覆盖率分析方法

测试环境搭建

        被测系统(Application Under Test,AUT)包括需要被测试的App、网页、后端服务。大致分为两个方面--移动端测试、服务端测试。

常见的被测系统类型
  1. UI:一般有Web、App和IOT里面的用户界面交互
  2. Service:对互联网各个端提供的服务,包括RESTful、WebService和RPC
  3. code:直接以代码形式提供的被测系统,如SDK和lib
部署方法

        测试部署包括脚本部署、容器部署。脚本部署说基于自动化脚本和自动化平台,通过自动化脚本完成对软件的分发、配置和启动。容器部署基于容器镜像Docker

脚本部署
  1. 通过bash、Python脚本实现自动化的构建与部署
  2. 通过持续集成平台,如Jenkins,完成测试流程管理
容器部署
  • 自动化构建bash
  • 容器构建Docker
  • 容器编排K8S
  • 持续集成Jenkins

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【测试】软件测试报告模板(直接套用)

软件资料清单列表部分文档清单:工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书,技术解…

PGCCC|【PostgreSQL】PCA+PCP+PCM等IT类认证申报个税退税指南

小编特将PostgreSQL证书申报个税退税流程,编辑成文,供大家申报参考哦~ 1.申报专项附加扣除 第一步:打开个人所得税APP,选择“专项附加扣除填报”: 第二步:“扣除年度”选择您要申报的年度,并…

Java之封装、继承,多态

文章目录 Java 之封装、继承,多态一、封装1.封装的基本介绍2. 封装的实现3. 将构造器与 setXxx 方法结合 二、继承1. 继承的基本介绍2. 基本语法3.继承的深入理解4. 继承的本质分析(内存存在形式)5. 子类创建的内存布局6. super 关键字6.1 su…

Altium Designer软件绘制一个stm32最小系统的电路原理图

文章目录 一、安装软件二、新建工程 一、安装软件 教程: Altium Designer 24下载安装教程,免费汉化版,保姆级教程,附安装包 二、新建工程 1.新建项目 2.新建原理图 3.和上面一样的方法新建PCB文件 文件->原理图,这样文件…

产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)

敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。 通俗来说,敏捷开发是一个软件开发流程,是一个采用了迭代方法的开发流程 简单来说,迭代就是把一个大产品拆分出一些最小的实现单位。完成不同的迭代就最…

组合模式(大话设计模式)C/C++版本

组合模式 C #include <iostream> #include <list> using namespace std; // 公司类... 抽象或者接口 class Company { public:Company(string name){this->name name;}virtual void Add(Company *c) 0; // 增加virtual void Remove(Company *c) 0; // 移…

docker inspect 如何提取容器的ip和端口 网络信息?

目录 通过原生Linux命令过滤找到IP 通过jq工具找到IP 使用docker -f 的过滤&#xff08;模板&#xff09; 查找端口映射信息 查看容器内部细节 docker inspect 容器ID或容器名 通过原生Linux命令过滤找到IP 通过jq工具找到IP jq 是一个轻量级且灵活的命令行工具&#xf…

几何距离与函数距离:解锁数据空间中的奥秘

几何距离&#xff1a;直观的空间度量 几何距离&#xff0c;顾名思义&#xff0c;是我们在几何学中熟悉的距离概念&#xff0c;如欧几里得距离、曼哈顿距离和切比雪夫距离等。这些距离度量直接反映了数据点在多维空间中的位置关系。 欧几里得距离&#xff1a;最为人熟知的几何距…

基于springboot+vue+uniapp的机电公司管理信息系统

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

Coze:如何使用团队空间?

你好&#xff0c;我是三桥君 团队空间&#xff0c;是一个允许我们组建团队并共享机器人、插件等资源的功能。 好的&#xff0c;让我们开始创建一个团队。我们将这个团队命名为“三桥君AI”&#xff0c;并在描述中也填写“这里是关于“三桥君AI”团队的描述”。点击确定后&…

【代码随想录】【算法训练营】【第67天】 [卡码97]小明逛公园 [卡码127]骑士的攻击

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 67&#xff0c;周六&#xff0c;ding~ [卡码97] 小明逛公园 题目描述 卡码97 小明逛公园 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 Floyd 算法 [卡码…

css实现渐进中嵌套渐进的方法

这是我们想要的实现效果&#xff1a; 思路&#xff1a; 1.有一个底色的背景渐变 2.需要几个小的块级元素做绝对定位通过渐变filter模糊来实现 注意&#xff1a;这里的采用的定位方法&#xff0c;所以在内部的元素一律要使用绝对定位&#xff0c;否则会出现层级的问题&…

61、基于卷积神经网络的手写数字旋转角度预测(matlab)

1、卷积神经网络的手写数字旋转角度预测原理及流程 基于卷积神经网络的手写数字旋转角度预测是一个常见的计算机视觉问题。在这种情况下&#xff0c;我们可以通过构建一个卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;来实现该任务。以下…

SPI协议与读写串行 FLASH

SPI 协议简介 SPI是串行外设接口&#xff08;Serial Peripheral Interface&#xff09;的缩写&#xff0c;是美国摩托罗拉公司&#xff08;Motorola&#xff09;最先推出的一种同步串行传输规范&#xff0c;也是一种单片机外设芯片串行扩展接口&#xff0c;是一种高速、全双工、…

Vue2打包部署后动态修改后端接口地址的解决方法

文章目录 前言一、背景二、解决方法1.在public文件夹下创建config文件夹&#xff0c;并创建config.js文件2.编写config.js内容3.在index.html中加载config.js4.在封装axios工具类的js中修改配置 总结 前言 本篇文章将介绍使用Vue2开发前后端分离项目时&#xff0c;前端打包部署…

LeetCode分发糖果(贪心思路分析)

题目描述 贪心思路 思路及解法 我们可以将「相邻的孩子中&#xff0c;评分高的孩子必须获得更多的糖果」这句话拆分为两个规则&#xff0c;分别处理。 左规则&#xff1a;当 ratings[i−1]<ratings[i] 时&#xff0c;i 号学生的糖果数量将比 i−1 号孩子的糖果数量多。 …

elasticsearch集群模式部署

系统版本&#xff1a;CentOS Linux release 7.9.2009 (Core) es版本&#xff1a; elasticsearch-7.6.2 本次搭建es集群为三个节点 添加启动用户 确保elasticsearch的启动用户为普通用户&#xff0c;这里我创建了es用户用于启动elasticsearch 执行命令为es用户添加sudo权限 v…

基于AT89C51单片机超声波水位液位控制系统设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机的1616点阵LED显示器字符滚动显示设计的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 设计任务与要求 原理图 仿真图 代码 系统论文 资源下载 设计任务与要求…

【微信小程序知识点】手机号验证组件

手机验证组件&#xff0c;用于帮助开发者向用户发起手机号申请&#xff0c;必须经过用户同意后&#xff0c;才能获得由平台验证后的手机号&#xff0c;进而为用户提供相应的服务。 手机号验证组件分为两种&#xff1a;手机号快速验证组件以及手机号实时验证组件。 1.手机号快速…

内网对抗-基石框架篇单域架构域内应用控制成员组成用户策略信息收集环境搭建

知识点&#xff1a; 1、基石框架篇-单域架构-权限控制-用户和网络 2、基石框架篇-单域架构-环境搭建-准备和加入 3、基石框架篇-单域架构-信息收集-手工和工具1、工作组(局域网) 将不同的计算机按照功能分别列入不同的工作组。想要访问某个部门的资源&#xff0c;只要在“网络…