软件缺陷简介

缺陷种类

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

缺陷等级划分

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

缺陷报告

  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.mzph.cn/pingmian/44092.shtml

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

相关文章

LeetCode刷题之HOT100之最长递增子序列

2024/7/10 晴,睡眠质量良好,到实验室时间9.18。知了在窗外聒噪,似乎让我安心,静下来。做题吧 1、题目描述 2、算法分析 给一个整数数组,要求出里面最长严格递增子序列的长度。遇到这种问题,想到的就是DP算…

基于JavaSpringBoot+Vue+uniapp微信小程序校园宿舍管理系统设计与实现(论文7000字参考+源码+LW+部署讲解)

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

多个单元运算符合用???:::

string a "a";string b "b";string c "c";string r a "a" ? b "b" ? c"c" ? "b" : "cc" : "33":"44";string rr a "a"? b "b" ?(c …

突破AI性能瓶颈 揭秘LLaMA-MoE模型的高效分配策略

获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 本文介绍了一种名为“LLaMA-MoE”的方法,通过将现有的大型语言模型(LLMs)转化为混合专家网络(MoE),从而解决了训练MoE…

4. kvm存储虚拟化

kvm存储虚拟化 一、命令行工具管理虚拟磁盘1、查看虚拟磁盘2、添加磁盘3、删除磁盘 二、qcow2格式的磁盘文件1、创建磁盘文件2、差量镜像/快速创建虚机2.1 创建差量镜像2.2 准备配置文件2.3 创建虚拟机2.4 批量部署虚拟机 三、存储池 storage pool1、类型2、在线迁移2.1 规划后…

DNF手游攻略:云手机辅助刷副本!内置辅助工具!

DNF手游是一款备受玩家喜爱的角色扮演类游戏,以其独特的地下城探险和多样化的装备系统而闻名。玩家需要通过不断的挑战和升级,逐步增强自己的角色实力,最终完成各种高难度的副本任务。游戏的核心玩法包括打怪、刷装备、升级技能等。 游戏辅助…

LeetCode热题100刷题10:46. 全排列、78. 子集、17. 电话号码的字母组合、39. 组合总和、138. 随机链表的复制

回溯问题 46. 全排列 全排列问题&#xff1a; path 递归终止条件&#xff1a;path中是否已存储所有元素&#xff1b; for循环处理节点集合&#xff1a;used0未被使用的元素 class Solution { public:vector<int> path;vector<vector<int>> res;void backt…

【MPPT太阳能升压控制器方案】远翔升压恒流驱动芯片FP7209单节电池升压24V,30V,36V,42V,48V全系列方案,高转换效率,输出带短路保护功能

高转换效率&#xff0c;太阳能控制器方案——详解太阳能控制器PWM / MPPT极简方案其设计要点&#xff0c;升压30V&#xff0c;36V&#xff0c;42V&#xff0c;48V 使用单颗芯片FP7209即实现两级升压到30V&#xff0c;36V&#xff0c;42V&#xff0c;48V&#xff0c;相对于单极升…

【Python】已解决:ModuleNotFoundError: No module named ‘nltk’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ModuleNotFoundError: No module named ‘nltk’ 一、分析问题背景 在使用Python进行自然语言处理或文本分析时&#xff0c;我们经常会用到各种库来辅助我们的工…

【转】-java多线程读写锁ReadWriteLock

Java多线程中读写锁ReadWriteLock的使用 该博客转载自​**lavimer​的​Java多线程中读写锁ReadWriteLock的使用** 1. 概念 读写锁分为读锁和写锁&#xff0c;多个读锁之间是不需要互斥的(读操作不会改变数据&#xff0c;如果上了锁&#xff0c;反而会影响效率)&#xff0c;…

【OpenCV】BGR三色通道的提取与合并--超详细解读

在OpenCV中&#xff0c;处理图像时经常需要提取或合并图像的RGB&#xff08;红、绿、蓝&#xff09;三色通道。OpenCV默认使用BGR&#xff08;蓝、绿、红&#xff09;顺序来存储图像的颜色通道&#xff0c;这一点与很多图像处理库&#xff08;如PIL/Pillow&#xff09;不同&…

Android Constant expression required (case R.id.xxx)

gradle更新到8.0后&#xff0c;遇到了这个报错 有两种解决方式&#xff1a; 1、在gradle.properties中添加下面代码 android.nonFinalResIdsfalse 2、使用if-else来判断 int id view.getId(); if (id R.id.setting_iv_back) {} else if (id R.id.setting_tv_clear) {}

Web知识库应用程序LibreKB

什么是 LibreKB &#xff1f; LibreKB 是一款知识库 Web 应用程序。免费、开源、自托管&#xff0c;基于 PHP/MySQL。 官方并没有 Docker 镜像&#xff0c;老苏这次图省事&#xff0c;并没有像往常一样构建一个镜像&#xff0c;而是基于 Docker 搭建了一个 LAMP 环境&#xff0…

蹭一个围棋亚军!不要和低维的人说话——早读(逆天打工人爬取热门微信文章解读)

熬夜后需要补什么呢&#xff1f; 引言Python 代码第一篇 洞见 不要和低维的人说话&#xff08;深度好文&#xff09;第二篇 冲冲冲结尾 引言 昨晚真的是熬夜又想不出东西 真的头大 最近下围棋 这个棋感很好呀 我是K级选手 目前是8级 套几个buff 纯自学 为什么决定学围棋呢? 是…

谷粒商城配置中心错误记录

文章目录 一&#xff0c;com.alibaba.nacos.api.exception.NacosException: endpoint is blank1&#xff0c;分析定位2&#xff0c;关于配置文件application和bootstrap的区别与练习加载顺序使用说明 参考文献 一&#xff0c;com.alibaba.nacos.api.exception.NacosException: …

Navicat Premium 15 for Mac/Win 中文安装包下载

Navicat Premium 15 是一款数据库管理工具&#xff0c;它支持多种类型的数据库&#xff0c;包括 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite。该软件提供了一个用户友好的图形界面&#xff0c;使得数据库的管理变得更加简单和高效。Navicat Premium 1…

网页视频提取在线工具

在互联网的海洋中&#xff0c;我们时常会遇到一些令人心动的视频&#xff0c;想要将其下载到本地&#xff0c;以便随时观看。然而&#xff0c;网页视频下载对于很多人来说&#xff0c;似乎是个复杂的过程。别担心&#xff0c;今天我就为大家带来一份详尽的网页视频下载教程&…

24小时悬停系留照明无人机技术详解

24小时悬停系留照明无人机是一款专门设计用于提供长时间、高效能照明服务的无人机系统。该系统结合了无人机技术与先进的照明设备&#xff0c;通过系留技术实现无人机的稳定悬停&#xff0c;从而提供连续不断的照明服务。该无人机能够在各种环境条件下进行24小时不间断工作&…

Zkeys三方登录模块支持QQ、支付宝登录

1&#xff0c;覆盖到根目录&#xff0c;并导入update.sql数据库文件到Zkeys数据库里 2. 后台系统权限管理&#xff0c;配置管理员权限-系统类别-找到云外科技&#xff0c;全部打勾 3&#xff0c;后台系统设置找到云外快捷登录模块填写相应的插件授权配置和登录权限配置&#x…

docker 安装教程

机缘 最近在开发用用到了docker,主要是将开发的项目发版到平台上&#xff0c;运用到docker发版&#xff0c;所以才会写这篇文章。 教程 1、安装Hype-v。 在安装之前&#xff0c;首先要检查下电脑系统是否安装Hyper-v功能。 注意&#xff1a;一定要检查电脑系统&#xff0c;…