测试——基本概念

news2024/12/23 22:17:17

概念

测试和调试有以下几点区别:

  • 测试是测试人员进行的工作,调试是开发人员
  • 调试是发现并解决问题,测试只是发现问题
  • 测试贯穿于整个项目的生命周期,而调试主要在编码阶段

测试人员一般有如下的工作:
需求分析,设计测试计划,测试用例,执行测试,撰写测试报告

需求

一般分为下面两种

  • 用户需求:也就是甲方要求需要完成的任务
  • 软件需求:必须要实现的软件功能

测试用例

测试用例是为了实施测试而向被测试的系统提供的一组集合
其中包括:

  • 测试环境(软件加硬件环境)
  • 操作步骤
  • 测试数据
  • 结果预期

例如,写一个关于登录博客系统的测试用例
在这里插入图片描述

bug

bug是当规格说明是正确的时,程序与规格说明之间不匹配
或者,程序没有实现用户合理预期的功能要求

开发流程

一个软件的开发分为下面几步:

  1. 需求分析:好比建房子前需要对工地,技术进行考量,设计软件也需要对用户的需求量和技术能否达标,投入和收益的占比进行分析
  2. 计划:好比建房子需要计划什么时候开始建房,停工,软件也需要计划好开发所需要的时间
  3. 设计:好比建房子需要设计楼间距,格局,设计软件需要将需求分解成一个个框架和接口,并且规定实现所采用的技术
  4. 编码:好比开始按照计划建房子的过程,也就是软件的开发人员开始按照技术文档和需求文档编写代码的过程
  5. 测试:好比验收房子是否达到标准,是否需要返工,也就是测试人员按照测试用例对软件进行测试
  6. 运行维护:也就是住房人需要对房子漏水等问题进行后续的处理,软件上线后也需要进行修复性维护,对功能进行完善性修复,对bug进行预防性维护

开发模型

软件的开发有多种模型,下面一一进行介绍

瀑布模型

在这里插入图片描述
即按照上面的软件开发流程进行开发,每个阶段只进行一次,如果出现了错误就返回上一个状态

使用场景:

  • 需求固定的小项目
    缺点:
  • 前面阶段的风险,可能会遗留到最后的阶段
  • 周期太长,导致需求过时
  • 测试不充分会将缺陷暴露给用户

螺旋模型

在这里插入图片描述
在每个开发流程中加上风险分析和原型
缺点:

  • 项目中的风险和风险管理人员的水平有直接关系
  • 需要投入的人力,时间,资金更多

使用场景:
规模庞大,复杂,风险大的开发场景

迭代模型

在这里插入图片描述
如果项目中有a,b,c,d,e五个功能,迭代模型会先把这些功能的基础版本开发出来,然后在对基础功能进行不断的更新完善

增量模型

在这里插入图片描述
如果项目中有a,b,c,d,e五个功能,会先开发a,b,c功能,然后再开发d,e功能,也就是一个一个功能进行开发

敏捷模型

个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者

简单来说,敏捷模型就是对流程,文档没有那么重视,而是注重产出的软件

scrum模型

三个角色:

  • 产品经理
  • 项目经理
  • 研发团队

五个重要会议:

  • 发布计划会议:确定要完成的需求
  • 迭代计划会议:确定责任人与相关任务
  • 每日会议:了解当前项目进度
  • 演示会议:产出用户需求
  • 回顾会议:总结当前迭代的经验与不足

其中,整个开发模型就是,先从整个需求池中取出需求,然后发布计划会议,迭代计划会议,每日会议,演示会议,然后再从需求池中取出需求

测试模型

与开发一样,测试也有不同的模型

V模型

在这里插入图片描述
其中单元测试对应开发中的详细设计,集成测试对应概要设计,系统设计对应需求与系统,验收测试对应用户需求

特点:

  • 含有不同类型的测试
  • 测试参考的标准和开发的阶段对应

缺点:

  • 测试后置,暴露问题时间较晚

W模型

在这里插入图片描述
也就是在开发进行时,就对每一个阶段进行测试
特点:

  • W模型重流程,无法迎接变化
  • W模型不使用敏捷模型

BUG

创建bug

对于一个bug,应当说明其出现的版本,环境,步骤,预期结果和实际结果,bug等级
例如:
在这里插入图片描述
其中,bug等级包括:次要,一般,严重,崩溃

bug的生命周期

  • New: 测试人员创建了一个bug
  • Open:开发人员确认是bug
  • Rejected:开发人员确认不是bug
  • Fixed:开发人员将bug修复完成
  • Delay:bug等级低,且开发人员不能立即修复bug
  • Closed:bug确认修改后,测试人员将状态改为Closed
  • Reopen:bug确认未修改完成,测试人员将状态改为Reopen

测试用例的创建

测试用例不仅要考虑应该实现的功能,也要考虑未实现,不应该实现的功能
通常从下面几方面进行测试用例的设计:

  • 功能测试
  • 性能测试
  • 界面测试
  • 兼容性测试
  • 易用性测试
  • 安全测试

例如:
在这里插入图片描述
在这里插入图片描述

等价类

依据需求,将不同的输入分成若干个等价类,然后从不同的类中选出一个测试用例,若这个测试通过,则代表整个类通过
其中一般分为有效等价类和无效等价类

边界值

边界值分为有效边界和无效边界
例如,大于等于60分及格,那么60是有效边界,59是无效边界

判定表

和真值表类似,将所有的输入按照不同的组合写入表中,然后根据输入和输出的关系,确定输出,画出判定表,根据判定表编写测试用例

场景设计法

根据基本时间流和备选时间流,设计不同的测试用例
例如:去肯德基买汉堡包,基本时间流就是按照菜单点餐,交钱,取汉堡,吃饭
备选时间流有:遇到疯狂星期四打折,没带钱,吃饭噎死了

正交法

正交实验法是从大量的实验中找出有代表性的点,然后依据正交表来设计测试用例

其中正交表有如下特性:

  • 每一列中不同的数字出现的次数相同
  • 任意两列中数字的排列方式齐全且均衡

测试分类

  • 可靠性测试 :系统的可靠性 = 正常运行时间 / (正常运行+非正常运行时间) * 100%
  • 容错性测试 :指软件发生的错误并从错误中恢复的能力,
  • 安装卸载测试
  • 内存泄漏测试:可借助人工或软件静态扫描代码
  • 弱网测试:网不好会造成客户端频繁的发送请求
  • 冒烟测试:评估软件是否具备可测试条件
  • 回归测试:对历史版本的功能进行测试

按照是否查看代码划分

  • 黑盒测试:功能测试(系统测试)
  • 白盒测试:关注程序的内部实现(单元测试)
  • 灰盒测试:介于黑盒测试和白盒测试之间(集成测试)

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

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

相关文章

Spring MVC 源码- ViewResolver 组件

ViewResolver 组件ViewResolver 组件,视图解析器,根据视图名和国际化,获得最终的视图 View 对象回顾先来回顾一下在 DispatcherServlet 中处理请求的过程中哪里使用到 ViewResolver 组件,可以回到《一个请求响应的旅行过程》中的 …

进程地址空间(虚拟地址空间)

目录 引入问题 测试代码 引入地址空间 故事1: 故事二: 解决问题 为什么有虚拟地址空间 扩展 扩展1(没有地址空间,OS如何工作) 扩展2 (代码只读深入了解) 扩展3(malloc本质…

0 初识Kotlin

0 基本介绍 相信很多开发者对Kotlin还是比较陌生的。 Kotlin是一种新型的编程语言,由JetBrains公司开发与设计,在2012年开源, 但没引起什么注意。 直到2017年google宣布将Kotlin作为Android开发的首选语言,Kotlin才开始大放异彩。…

基于MATLAB的MIMO预编码设计:优化迫零算法(附完整代码与分析)

目录 一.介绍 二. 对比本方案优化后的迫零算法与原始的迫零算法 三. 源代码 四. 运行结果及分析 4.1 天线数为8 4.2 天线数为128 一.介绍 图中“RF Chain” 全称为Radio Frequency Chain,代表射频链路。 此MIMO预编码包含了基带预编码W(改变幅度和…

NVIDIA GPU开源驱动编译学习架构分析

2022年5月,社区终于等到了这一天,NVIDIA开源了他们的LINUX GPU 内核驱动, Linux 内核总设计师 Linus Torvalds 十年前说过的一句话,大概意思是英伟达是LINUX开发者遇到的硬件厂商中最麻烦的一个,说完这句话之后&#x…

20230225英语学习

Is Your Phone Heavier When It’s Full of Data? We’ve Done the Math 从数学角度看,充满数据的手机会更重吗? Here’s a weird question: does your phone weigh more when it’s “full” than when it’s “empty”?It sounds almost ridiculou…

【unity游戏制作-mango的冒险】场景二的镜头和法球特效跟随

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity游戏制作 ⭐mango的冒险场景二——镜头和法球特效跟随⭐ 文章目录⭐mango的冒险场景二——镜…

C#的多线程、线程池和Task

线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。 线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的…

如何使用Python和ftplib模块连接到FTP服务器并列出远程目录中的文件?

ftp服务可以用在以下一些使用场景: 文件共享:使用Python和FTP服务器可以轻松地搭建一个文件共享服务,使得用户可以上传和下载文件,从而促进协作和信息共享。 数据备份:FTP可以用于将数据备份到另一个服务器或云存储中…

Git ---- GitHub 操作

Git ---- GitHub 操作1. 创建远程仓库2. 远程仓库操作1. 创建爱你远程仓库别名2. 推送本地分支到远程仓库3. 克隆远程仓库到本地4. 邀请加入团队5. 拉取远程库内容3. 跨团队协作4. SSH 免密登录GitHub 网址:https://github.com/ Ps:全球最大同性交友网站…

实现弹窗功能并修改其中一个系数

把鼠标放在number-info上面,会是一个delon/chart的类库,可以在NG-ALAIN上找到阅读NG ALAIN的图表,以及number-info样式,数据文本 它拥有[title] [subtitle]两个可以是TemplateRef类型的,而template可以在里面放一些东西,比如按钮,所以可以放一个修改按钮 这里刚开始把template放…

学习 Python 之 Pygame 开发魂斗罗(三)

学习 Python 之 Pygame 开发魂斗罗(三)继续编写魂斗罗1. 角色站立2. 角色移动3. 角色跳跃4. 角色下落继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(二)中,我们完成了角色的创建和更新,现…

MySQL高级第一讲

目录 一、MySQL高级01 1.1 索引 1.1.1 索引概述 1.1.2 索引特点 1.1.3 索引结构 1.1.4 BTREE结构(B树) 1.1.5 BTREE结构(B树) 1.1.6 索引分类 1.1.7 索引语法 1.1.8 索引设计原则 1.2 视图 1.2.1 视图概述 1.2.2 创建或修改视图 1.3 存储过程和函数 1.3.1 存储过…

openresty的部署、nginx高速缓存的配置、nginx日志的可视化

文章目录一、openresty1.OpenResty简介2.OpenResty的技术3.OpenResty的优势4.openresty部署实验二、nginx配置高效缓存三、nginx日志可视化一、openresty 1.OpenResty简介 OpenResty官网 http://openresty.org/cn/ OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台&#x…

shell基础学习

文章目录查看shell解释器写hello world多命令处理执行变量常用系统变量自定义变量撤销变量静态变量变量提升为全局环境变量特殊变量$n$#$* $$?运算符:条件判断比较流程控制语句ifcasefor 循环while 循环read读取控制台输入基本语法:函数系统函数basenamedirname自定义函数shel…

FL StudioV21电脑版水果编曲音乐编辑软件

这是一款功能十分丰富和强大的音乐编辑软件,能够帮助用户进行编曲、剪辑、录音、混音等操作,让用户能够全面地调整音频。FL水果最新版是一款专业级别的音乐编曲软件,集合更多的编曲功能为一身,可以进行录音、编辑、制作、混音、调…

计算机网络(六): HTTP,HTTPS,DNS,网页解析全过程

文章目录一、HTTP头部包含的信息通用头部请求头部响应头部实体头部二、Keep-Alive和非Keep-Alive的区别三、HTTP的方法四、HTTP和HTTPS建立连接的过程4.1 HTTP4.2 HTTPS五、HTTP和HTTPS的区别六、HTTPS的加密方式七、cookie和sessionsessioncookie八、HTTP状态码状态码200&…

【微信小程序】-- WXML 模板语法 - 数据绑定(九)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

DPDK系列之四DPDK整体框架分析说明

一、网络发展和DPDK 在上篇分析过网络应用对DPDK出现的影响。而具体体现在技术上,从最简单来看就是从C10K到c100K甚至更多。而相应的计算的发展也从挖掘单CPU的性能发展到了瓶颈,同样,对于网络设备也遇到了类似的问题。而目前解决问题的方法…

MySQL到Elasticsearch实时同步构建数据检索服务的选型与思考[转载]

前言 本文具体探讨 MySQL 数据实时同步到 Elasticsearch (以下简称 ES ) 技术方案和思考,同时使用一定篇幅介绍一些前置知识,从理论到实践,让读者更好的理解这块内容和相关问题。包括: 为什么我们要将数据从 MySQL 实时同步到 ES …