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

软件测试基础1--功能测试

1、什么是软件测试?

        软件是控制计算机硬件运行的工具。

        软件测试:使用技术手段验证软件是否满足使用需求,为了发现软件功能和需求不相符合的地方,或者寻找实际输出和预期输出之间的差异。

        软件测试的目的:减少软件缺陷,保证软件质量。

1.1、测试的主流技能

        接口测试:使用代码,工具对服务端提供的接口进行测试

        功能测试:验证程序的功能是否满足需求文档上的

        自动化测试:使用代码或工具代替人工测试

        性能测试:模拟多人使用软件情景,查找服务器缺陷(bug)

1.2、测试的分类

        按测试的阶段划分:

                单元测试:针对程序源代码测试,比如JUnit

                集成测试:即接口测试,针对每一个模块提供的访问地址进行测试。

                系统测试:对整个系统进行测试,包括功能,兼容性,文档等等测试    

                验收测试:即内侧,公测,使用不同人群发掘系统缺陷

        按代码可见度划分:

                黑盒测试:源代码不可见,根据已实现的功能进行测试,对测试人员的代码阅读力较低

                灰盒测试:部分代码可见,类似于接口测试。

                白盒测试:源代码透明,类似于单元测试。

2、软件的质量模型

        质量模型是衡量软件好坏的维度

功能性:功能数量是否正确(不能多不少),功能是否正确的实现,发生错误时是否能正确处理

性能:服务器每秒处理请求数够吗?硬件配置是否能满足?

兼容性:能在不同的操作系统上运行吗?能在不同内核的浏览器(谷歌,IE,火狐,苹果,欧朋)上使用吗?在不同品牌手机上运行正常吗?在不同网络环境下运行正常吗?

易用性:使用方便吗?页面美观吗?系统流畅吗?界面简洁吗?

安全:信息传输,信息存储是加密吗?

可靠性:是否无响应?是否卡顿?是否崩溃(死机)?

可维护性:后期维护服务器时是否方便?

可移植性:数据迁移,更换服务器时,是否方便?

3.测试流程

        

需求评审:确保各部门理解一致

计划编写:测什么,谁来测,怎么测

用例设计:验证项目是否符合需求文档

用例执行:项目模块开发完成后,进行测试

缺陷管理:项目存在缺陷时,从提出bug到修复bug的全过程

测试报告:实施测试结果文档

3.1、测试用例

        用例是什么:是用户使用的案例,测试用例就是为了测试项目而设计的文档

        3.1.1、设计测试用例的作用

  •                 防止漏测
  •                 实施测试的标准

        3.2.2、测试用例编写格式

                    

用例编号:项目_模块_编号

用例标题:预期结果(测试点)

项目/模块:所属项目或模块

优先级:测试用例的重要程度(P0最高)

前置条件:执行用例前要做的操作

测试步骤:描述怎么测试

测试数据:测试时需要输入的数据,没有为空

预期结果:期望达到的结果

3.2、设计测试点的方法

        3.2.1、等价类划分

        等价类划分适合需要大量输入数据的地方,但是又不能穷举输入测试

        适用于表单的输入框,下拉列表,单选复选框

                

根据需求的长度,类型,规则进行划分

在有效等价类中选一个作为代表,在无效等价类中各选一个作为总共的测试用例

        需求1:验证QQ账号的合法性,QQ账号是6-10位的自然数

        需求2:验证手机号的合法性

        需求3:给你一个花瓶,给出它的测试用例

首先,硬件还要添加一个属性

        1属性测试:花瓶大小,重量,材质,外观

        2功能性测试:插花,装水,养鱼

        3性能测试:防摔,耐高温,耐低温,耐腐蚀,抗压

        4兼容性测试:装水,装饮料,装果汁

        5易用性测试:防滑,便携,方便使用

        6安全性测试:材质健康,不发生化学反应,不易燃易爆

        3.2.2、边界值分析

                边界范围节点:选取上点,离点,内点

                边界值分析一般都要和等价类划分一起使用,先划分等价类,再分析边界值,最后编写用例。适用于有边界范围的输入,至多,至少重量,最大,最少等等。

        

                上点:正好等于边界值的点

                离点:距离上点最近的点,左右各一个

                内点,合法范围内中的点

        需求1:标题大于0,小于等于30个字符

边界值优化,将七个点优化为五个点,即优化离点,开内闭外

        开区间保留内离点,闭区间保留外离点

3.2.3、判定表

        判定表用于解决多条件的依赖问题,判定表适用于4个条件以下,较少的情况。

根据判定表设计的用例,数量是2的条件桩次方

3.2.4、场景法(流程图)

                用流程图表述用户的使用场景,流程图适用于覆盖业务测试,先测试业务,在测试单功能,单页面

        

3.3.5、错误推断法

        通过测试经验,推测系统可能出现,容易出现的问题,只适用于时间紧,任务量大的场景

4、缺陷

        缺陷就是软件使用过程中出现的问题,即BUG

        4.1、缺陷的判断标准

        软件未实现需求规格说明书要求的功能--少功能

        软件实现的功能超出需求规格说明书的要求--多功能

        软件出现了需求规格说明书中指明不应出现的错误--功能错误

        软件没有实现需求规格说明书中未指出但应当实现的要求--隐形功能错误

        软件难以理解,体验差,运行缓慢--不易使用

        4.2、缺陷产生的原因与生命周期

        4.3、发现缺陷后怎么描述

        当发现缺陷时,应该怎么办?

                首先保证该缺陷可以重现,其次确认为bug,之后才可以提交

        4.4、缺陷管理工具

        禅道:在禅道上提交,验证,关闭bug

相关文章:

软件测试基础1--功能测试

1、什么是软件测试? 软件是控制计算机硬件运行的工具。 软件测试:使用技术手段验证软件是否满足使用需求,为了发现软件功能和需求不相符合的地方,或者寻找实际输出和预期输出之间的差异。 软件测试的目的:减少软件缺陷…...

《计算机网络》(第8版)第9章 无线网络和移动网络 复习笔记

第 9 章 无线网络和移动网络 一、无线局域网 WLAN 1 无线局域网的组成 无线局域网提供移动接入的功能,可分为两大类:有固定基础设施的和无固定基础设 施的。 (1)IEEE 802.11 IEEE 802.11 是无线以太网的标准,是有固定…...

非负数、0和正整数 限制最大值且保留两位小数在elementpuls表单中正则验证

一、结构 <el-form-item label"单价&#xff1a;" prop"price"><el-inputv-model.trim"formData.price"placeholder"请输入"blur"formMethod.fixTwo"><template #append>(元)</template></el-i…...

Java多线程-----定时器(Timer)及其实现

目录 一.定时器简介&#xff1a; 二.定时器的构造方法与常见方法&#xff1a; 三.定时器的模拟实现&#xff1a; 思路分析&#xff1a; 代码实现&#xff1a; 在开发中&#xff0c;我们经常需要一些周期性的操作&#xff0c;例如每隔几分钟就进行某一项操作&#xff0c;这…...

【Linux修行路】进度条小程序

目录 ⛳️推荐 一、预备知识 1.1 回车换行 1.2 缓冲区 二、倒计时 2.1 注意事项 三、进度条 3.1 源代码 3.2 代码分析 3.2 实际使用场景 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…...

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 基…...

【探索Linux】P.44(数据链路层 —— 以太网的帧格式 | MAC地址 | MTU | ARP协议)

阅读导航 引言一、认识以太网二、以太网的帧格式三、MAC地址四、MTU五、ARP协议温馨提示 引言 在深入探讨了网络层的IP协议之后&#xff0c;本文将带领读者进一步深入网络的底层——数据链路层。我们将详细解析以太网的帧格式&#xff0c;这是数据链路层传输数据的基本单元&am…...

<数据集>航拍行人识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;7482张 标注数量(xml文件个数)&#xff1a;7482 标注数量(txt文件个数)&#xff1a;7482 标注类别数&#xff1a;1 标注类别名称&#xff1a;[people, pedestrian] 序号类别名称图片数框数1people5226385602pedes…...

在 Windows 10 系统上部署 Medusa

先决条件 在安装 Medusa 之前&#xff0c;你需要确保已经安装了以下工具&#xff1a; Node.js: Medusa 需要 Node.js v16 或更高版本。你可以从 Node.js 官网下载并安装。Git: Git 用于从 GitHub 获取 Medusa 的源代码。你可以从 Git 官网下载并安装。PostgreSQL: Medusa 使用…...

Linux进程 (冯诺依曼体结构 管理 PCB 进程状态 僵尸进程 孤儿进程 运行阻塞挂起状态 进程优先级)

文章目录 一.冯诺依曼体系结构冯诺依曼结构能干什么&#xff1f; 二.操作系统概念结构图(不完整)为什么要有操作系统&#xff1f; 尝试理解操作系统管理结构图(完整)总结&#xff1a; 三.进程进程是什么&#xff1f;PCB为什么要有PCB&#xff1f; Linux中的PCB进程的task_struc…...

《LlamaIndex 之美》-01-LLM、Prompt、Embedding基础入门

在基于数据构建任何 LLM 应用程序时&#xff0c;选择合适的大型语言模型 &#xff08;LLM&#xff09; 是您需要考虑的首要步骤之一。 LLM 是 LlamaIndex 的核心组成部分。它们可以作为独立模块使用&#xff0c;也可以插入到其他核心 LlamaIndex 模块&#xff08;索引、检索器…...

C++ 智能指针简单介绍及用法

C 智能指针简单介绍及用法 智能指针是 C11 引入的一个非常实用的特性&#xff0c;旨在自动管理动态分配的内存&#xff0c;避免内存泄漏和悬空指针问题。主要有三种类型的智能指针&#xff1a;std::unique_ptr、std::shared_ptr 和 std::weak_ptr。下面是对它们的详细介绍&…...

k8s笔记之创建Istio Gateway规则

创建Istio Gateway 背景如何创建Istio Gateway规则配置方式rewrite重写路径直接去除match&#xff0c;默认都转发到一个服务路由规则多种配置方式实践&#xff08;即开头的完整版&#xff09; 涉及的命令补充注意事项 背景 为什么需要使用到Istio Gateway&#xff1f;充当k8s服…...

NAND行业回归盈利:AI与云存储需求驱动

市场概览 根据Yole Group于2024年6月25日发布的市场报告&#xff0c;经过五个季度的亏损之后&#xff0c;NAND闪存行业在2024年第一季度&#xff08;1Q24&#xff09;实现了盈利回归。这一转变主要得益于企业级固态硬盘&#xff08;SSD&#xff09;领域的强劲需求增长&#xf…...

【限免】频控阵雷达:概念、原理与应用【附MATLAB代码】

​微信公众号&#xff1a;EW Frontier QQ交流群&#xff1a;949444104 主要内容 PDA、FDA MATLAB代码 %---------------------------------------- %功能:FDA和相控阵天线方向图 %版本:ver1.0 %时间:2017.11.1 %--------------------------------------- clear all; clc; disp…...

从0开始搭建vue + flask 旅游景点数据分析系统( 六):搭建后端flask框架

这一期开始开发header部分&#xff0c;预期实现两个目标&#xff1a; 创建 Flask 项目导入旅游数据后端实现旅游数据的查询 1 python 环境 & 开发环境 python 安装和pycharm安装需要去网上找包&#xff0c;建议python使用3.8 或者3.9版本 2 新建项目 我们新建一个文件…...

学习硬件测试04:触摸按键+PWM 驱动蜂鸣器+数码管(P62~P67、P71、P72)

一、触摸按键 1.1理论讲解 1.1.1实验现象 触摸按键 1 单击与长按&#xff0c;控制 LED1&#xff1b;触摸按键 2 单击与长按&#xff0c;控制 LED2;触摸按键 3 单击与长按&#xff0c;控制 LED3;触摸按键 4 单击与长按&#xff0c;控制继电器; 1.1.2硬件电路 是原理图上触摸…...

JS原型链

JS的原型链 文章目录 JS的原型链前言一、原型是什么&#xff1f;二、原型链总结 前言 在使用数组或对象中的方法时&#xff0c;你是不是会感觉很奇怪&#xff0c;为什么仅仅是创建了一个数组或是对象&#xff0c;就能够使用它提供的方法呢&#xff1f;JS是怎么做到的呢&#x…...

《Java初阶数据结构》----5.<二叉树的概念及使用>

前言 大家好&#xff0c;我目前在学习java。之前也学了一段时间&#xff0c;但是没有发布博客。时间过的真的很快。我会利用好这个暑假&#xff0c;来复习之前学过的内容&#xff0c;并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区…...

git查看记录详解

文章目录 git查看记录查看文件修改列表查看修改差异友好的查看修改记录结合多个选项查看记录示例输出 git查看记录 使用 git log 你不仅可以查看提交记录&#xff0c;还可以通过一些选项查看文件的修改列表、修改差异&#xff0c;并以更友好的方式查看修改记录。以下是一些常用…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...