软件测试基础教程学习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体系结构…...
Flink的反压机制
目录 1. 什么是反压? 2. Flink 反压机制的演变 第一代:基于 TCP 的传播(Flink 1.5 之前) 第二代:基于信用制的反压(Flink 1.5+,当前版本) 3. 基于信用制的反压详解 核心组件 工作流程(对应上图) 优势 4. 如何识别和处理反压? 识别(通过 Flink Web UI) …...
从LVGL菜单组件反推:手搓一个轻量级C语言菜单框架(适合RTOS/单片机)
从LVGL菜单组件反推:手搓一个轻量级C语言菜单框架(适合RTOS/单片机) 在嵌入式开发中,菜单系统是人机交互的重要组成部分。虽然LVGL等GUI库提供了现成的菜单组件,但理解其底层实现原理对于开发资源受限的MCU应用至关重要…...
Claude Code 常用命令
先记住一个最重要的动作 在 Claude Code 里,直接输入 /,就能看到当前可用的全部命令。 继续输入 / 加上字母,还可以快速筛选命令。 官方文档也特别说明了一点:并不是所有命令对每个用户都可见。 有些命令会受到平台、套餐、环境或终端能力的影响。一张图先建立命令体系 新…...
5分钟掌握LibreHardwareMonitor:完全免费的硬件监控终极方案
5分钟掌握LibreHardwareMonitor:完全免费的硬件监控终极方案 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer. 项目地…...
iarduino MB-Socket嵌入式Modbus控制库详解
1. 项目概述iarduino_MB_Socket是一款专为 iarduino 系列智能插座硬件设计的嵌入式 Modbus 通信库,面向基于 Arduino 架构的 MCU(如 ATmega328P、ATmega2560、ESP32 等)平台。该库不依赖特定操作系统,可在裸机环境或 FreeRTOS/Ard…...
OpenClaw配置备份:Kimi-VL-A3B-Thinking模型参数迁移技巧
OpenClaw配置备份:Kimi-VL-A3B-Thinking模型参数迁移技巧 1. 为什么需要备份OpenClaw配置? 上周我的主力开发机突然硬盘故障,导致所有数据丢失。最让我痛心的不是代码——它们都有Git托管,而是花了两周精心调校的OpenClaw工作环…...
2025届学术党必备的降重复率网站横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 研究人工智能开题报告的工具,借助自然语言处理技术,靠着学术大数据分…...
LangChain实战:如何用ConversationalRetrievalQA构建带记忆的智能问答系统(附完整代码)
LangChain实战:构建带记忆的智能问答系统全流程解析 在当今AI应用开发领域,对话系统的"记忆力"已成为衡量其智能水平的关键指标。想象一下,当用户第三次询问"刚才提到的方案有哪些优势"时,如果AI回答"您…...
3种简单方法实现Windows与Linux双系统文件无缝共享的终极方案
3种简单方法实现Windows与Linux双系统文件无缝共享的终极方案 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 跨平台文件共享一直是Windows与Linux双系统用户面临的核心痛点。你是否曾…...
新手福音:用快马平台零代码基础生成产区标准对比网页
新手福音:用快马平台零代码基础生成产区标准对比网页 作为一个刚接触编程的新手,我一直想学习如何用网页展示地理数据的差异。最近在研究农产品产区划分时,发现一线产区和二线产区的标准对比是个很好的学习案例。通过InsCode(快马)平台&…...
