软件测试基础教程学习1
文章目录
- 软件测试概述
- 1.1 什么是软件测试
- 1.2 软件测试的目的
- 1.3 对软件测试的理解
- 1.4 软件测试的原则
- 1.5 测试人员的职责
- 1.6 测试人员的素质要求
软件测试概述
1.1 什么是软件测试
1)软件测试要发现软件的错误。
2)软件测试最终要以软件满足用户需求为目标。
1.2 软件测试的目的
软件测试最直接的目的是发现软件中的缺陷,包括需求、设计方面的缺陷和程序中包含的缺陷(bug)。
- 缺陷,它可以指软件功能的错误,也可以指性能低下、易用性差以及其他软件产品中的缺陷等。
软件测试最终的目的是检查软件是否满足用户的需求,其中包括用户的隐含需求和潜在需求。只有满足用户需求的软件才能成为“好”的软件产品,才能得到用户的认可和好评。
Glen Myers 曾提出关于测试目标的规则:
1)测试是一个为了寻找错误而运行程序的过程。
2)一个好的测试用例是指尽可能找到迄今为止尚未发现的错误的用例。
3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
以上3条规则表明了两种涵义:== 一是软件测试的直接目的,即发现软件中的错误;二是测试工作的职责就是要发现软件中的错误==。
1.3 对软件测试的理解
- 软件测试工作要贯穿于整个软件产品的生命周期。
- 软件测试本身不能确保软件质量,但它却是保证软件质量的重要而关键的技术手段,因为软件经过测试后,质量一般都有提升。
- 软件发布后出现了问题,尤其是遭到用户的抱怨或投诉,测试人员一般负有一定的责任,但是软件测试并不能100%地发现软件中存在的所有缺陷。高质量的软件是开发出来的,并不是测试出来的。
- 测试工作具有很高的开拓性和创新性。
- 软件测试对软件开发是有建设性意义的。
- 软件测试与调试的区别:
1)目的。软件测试的目的是尽可能地发现程序中的错误,而调试的目的是确定错误的原因和位置,并改正错误,调试也被称为纠错。
2)工作性质。测试是测试人员针对被测软件产品执行的检查和确认,属于测试范畴;而调试是开发人员在发现程序中的BUG后开始的发现和改正BUG的工作,属于开发范畴。
3)内容与方法。测试是按照计划执行的,需要测试计划、设计开发、测试执行和测试评估等阶段;而调试只是针对程序中出现BUG的开发工作,是“BUG驱动”类型的工作。
1.4 软件测试的原则
- 测试技术和策略方面
- 测试工作要尽可能地找出关键性的错误,因为这些错误很可能会限制用户使用此件产品完成工作的能力,从而直接影响客户对质量的评价。
- 100%测试覆盖率。
- 所有的测试都应追溯到用户需求。
- 应当尽早地、不断地进行软件测试。
- 总假定程序是由错误的。
- 彻底检查和仔细分析每一个测试结果。
- 不断提高测试策略和技巧。
- 测试管理方面
- 测试必须是有计划、有组织、有准备的,其中包括:确定测试任务、时间、人员职责及分工、资源设备、方法与工具、输入和输出准则等。
- 严格执行测试计划并及时进行修订。
- 有效的BUG跟踪和管理。
- 由独立的第三方来完成测试工作。
好的测试5个属性:
- 发现错误的可能性很高。
- 不冗余。
- 是“最佳品种”。
- 不会太简单,也不会太复杂。
- 揭示了迄今为止尚未发现的错误。
1.5 测试人员的职责
- 测试经理和测试主管的职责
1)招聘合适的测试人员。
2)建立测试技术模型和培训机制。
3)定期与测试人员进行正式交谈。
4)对员工工作的充分信任。
5)以员工期待的方式善待员工。
6)评价实事求是、以事论事。
7)规划和开展测试管理工作。 - 测试工程师的职责
1)制定测试计划。
2)设计与编写测试用例。
3)实施测试。
4)BUG跟踪。
5)测试总结与报告。
6)其他软件工程活动,包括需求、概要设计的同行评审、项目会议以及相关产品的确认和验证活动。
1.6 测试人员的素质要求
- 测试人员的技术素质要求
1)软件开发技术。
2)软件测试技术。
3)软件工程方面的能力。
4)行业知识。 - 测试人员的非技术素质要求
1)沟通能力。
2)移情能力。
3)自信心。
4)幽默感。
5)外交能力。
6)超强的记忆力。
7)足够的耐心。
8)怀疑精神。
9)自我督促。
10)洞察力。
相关文章:
软件测试基础教程学习1
文章目录 软件测试概述1.1 什么是软件测试1.2 软件测试的目的1.3 对软件测试的理解1.4 软件测试的原则1.5 测试人员的职责1.6 测试人员的素质要求 软件测试概述 1.1 什么是软件测试 1)软件测试要发现软件的错误。 2)软件测试最终要以软件满足用户需求为…...

浅谈一下@Async和SpringSecurityContext可能会遇到的问题和解决方案
Async和SpringSecurityContext 场景回溯 在执行一个用时较长的批量插入业务的时候,我尝试使用Async异步对业务进行优化,但是却给我报了空指针的错误,定位之后发现 此处我是基于SpringSecurity来获取用户的 是currentUserService获取到的当前登陆用户为空导致的,但是当前确实是…...
VUE常见面试题
1.为什么要使用Vue? 答:Vue是一款优秀的前端框架,它可以帮助我们快速构建高效、可复用、易维护的Web应用程序,并提供了丰富的API和生态系统。 2. Vue有哪些生命周期钩子函数? 答:Vue有8个生命周期钩子函…...

字符串匹配算法--KMP算法--BM算法
该算法解决的是字符串匹配问题,即查看字符串中是否含有完整的匹配字符串。如在java的string的contains方法匹配问题最简单的就是暴力破解了。在java的contains也是这么实现的,效率是低一点的。如果想要更快的速度可以自己写KMP算法。 代码实现体验 Knut…...

swagger的简单介绍
目录 swagger是什么? swagger有什么用? Swagger包含的工具集: swagger的使用步骤: swagger的相关注解: Docket的源码 了解swagger的作用和概念了解前后端分离在SpringBoot中集成Swagger swagger是什么?…...

HNU-电路与电子学-小班3
第三次讨论 1 、直接用晶体管而不是逻辑门实现异或门,并解释这个电路是如何工作的。 (6个 MOS 管构成) 2 、通信双方约定采用 7 位海明码进行数据传输。请为发送方设计海明码校验位 生成电路,采用功能块和逻辑门为接收方设计海…...

[机缘参悟-98] :层次不同、维度不同、视角不同、结论不同
目录 全局VS具备, 总体V部分 认知的六个认知层次: 认知的六个立体化维度: 0、维空间,点思维 1、一维空间,直线思维 2、二维空间,平面思维 3、三维空间:立体思维。 4、四维空间ÿ…...

chatgpt-web发布之docker打包流程
docker打包流程 1、使用docker前置准备: 电脑下载docker桌面版,以及开启虚拟机步骤:https://blog.csdn.net/qq_34905631/article/details/126573826下载docker桌面版 :https://docs.docker.com/desktop/install/windows-install…...

动态优化会议地点
前言 在现在快节奏的工作节奏下,大家的活动范围越来越广,但是出行成本也相应提高。在集体会面的时候,如何选择合适的地点成为了一个棘手的问题。本文将介绍如何通过动态优化选择会议地点,以达到平均交通成本最低的目标。 动态优化…...

Golang每日一练(leetDay0076) 第k大元素、组合总和III
目录 215. 数组中的第K个最大元素 Kth-largest-element-in-an-array 🌟🌟 216. 组合总和 III Combination Sum iii 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日…...

可节省60% MCU开发成本的NV080D-S8,单片机语音芯片在恒温碗上的应用
社会在不断进步,科技在不断发展,如今的恒温碗不仅带有温度显示功能,更附带有语音播报,能更好地知晓当前饭菜,变凉或过烫的情况,有效避免伤害宝宝脆弱的肠胃; 广州九芯电子推出了一款,…...
Java并发常见面试题
参考:javauide、程序员大斌、面试宝典 1.并发与并行的区别 并发:两个及两个以上的作业在同一 时间段 内执行。并行:两个及两个以上的作业在同一 时刻 执行。2.同步和异步的区别 同步:发出一个调用之后,在没有得到结果之前, 该调用就不可以返回,一直等待。异步:调用在发…...

基于vue3+pinia2仿ChatGPT聊天实例|vite4.x仿chatgpt界面
使用vue3pinia2开发仿制chatgpt界面聊天实例Vue3-Chatgpt 基于Vue3.xPinia2VueRouterVue3-Markdown等技术构建仿ChatGPT网页端聊天程序。支持经典分栏界面布局、light/dark模式、全屏半屏显示、Markdown语法解析、侧边栏隐藏等功能。 技术框架 编辑工具:Cursor框架…...
JDK动态代理和CGLIB动态代理
JDK动态代理和CGLIB动态代理 JDK动态代理和CGLIB动态代理 JDK动态代理和CGLIB动态代理 ① JDK动态代理只提供接口的代理,不支持类的代理,要求被代理类实现接口。JDK动态代理的核心是InvocationHandler接口和Proxy类,在获取代理对象时&#x…...

Jetpack Hilt 框架的基本使用
什么是 Hilt? Hilt 是一个功能强大、用法简单的依赖注入框架,于 2020 年加入到 Jetpack 家族中。它是 Android 团队联系了 Dagger2 团队,一起开发出来的一个专门面向 Android 的依赖注入框架。相比于 Dagger2,Hilt 最明显的特征就…...
exec()在不同namespace执行结果的区别
记录一个很tricky的问题,下面这段code在执行func1时会出现NameError: name List is not defined,但执行func2时一切正常。 import typescontent """ from typing import Listclass GeneratedData:qna: List"""def func1…...
人工智能革命中的22个隐藏职业:推动科技行业的变革
作者 | Manas Sadangi 随着人工智能技术的不断发展,它正在创造一系列前所未有的就业机会。虽然数据科学家、机器学习工程师和人工智能研究人员等传统的人工智能角色得到了广泛认可,但在推动科技行业变革方面,还有一些鲜为人知的职业同样重要。…...
算法题3 — 求字符串中的最长子串
文章目录 题目示例示例1示例2示例3 解题解法1解法2 leetcode 题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例1 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例…...

【FreeRTOS】——中断优先级设置中断相关寄存器临界段代码保护调度器挂起与恢复
目录 前言: 一、中断优先级设置 二、中断相关寄存器(STM32-Cortex M3) 三、临界段代码保护 四、任务调度器的挂起和恢复 总结: 前言: 博客笔记根据正点原子视频教程编辑,仅供学习交流使用࿰…...
1.2 什么是eBPF?(下)
四,eBPF的优势 4.1 eBPF程序的动态加载 eBPF程序可以动态地加载到内核中,或从内核中删除。这个要与内核模块的加载与卸载区分开来。这里顺便讨论下eBPF程序与内核模块的区别,如下: 而Linux内核模块是面向内核API编程的,可以直接运行在内核当中。eBPF程序是面向BPF体系结构…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...