软件测试(黑皮书)学习一

第一部分 软件测试综述

第一章 软件测试背景

1.1软件缺陷(software bug)

软件失败的术语

  • 故障(fault)失败(failure) 缺点(defect) ------严重、危险
  • 异常(anomaly) 事件(incident) 偏差(variance) ------未按预料运行
  • 问题(problem) 错误(error) 缺陷(bug) ------常用
  • 矛盾(inconsistent) 特殊(feature)

满足下列5个条件之一才称发生了一个软件缺陷

  • 软件未实现产品说明书要求的功能
  • 软件出现了产品说明书指明不应该出现的错误
  • 软件实现了产品说明书未提到的功能
  • 产品未实现产品说明书虽未明确提及但应该实现的目标
  • 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好
    并非所有测试发现的缺陷都要修改

1.2为什么会出现软件缺陷

导致软件缺陷的最大原因是产品说明书
软件缺陷产生的原因
(理解需求、善于沟通、勤于沟通)

1.3软件测试员的目的

软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以修复
注意:“修复”缺陷并非指一定要改正软件。不要在无法达到的完美上纠结和兜圈子。

第二章 软件开发的过程

2.1产品的组成部分

2.1.1软件产品需要多少投入

  • 客户需求
  • 产品说明书
  • 进度表
  • 软件设计文档(程序员)
  • 测试文档(测试员)
测试提交清单
测试计划
测试用例
缺陷报告
测试工具和自动测试
度量、统计和总结

2.1.2软件产品由哪些部分组成

-帮助文件 -用户手册
-样本和示例 -标签和不干胶
-产品支持信息 -图标和标志
-错误信息 -广告和宣传材料
-安装 -说明文件

别忘了测试错误提示信息

2.3软件开发生命周期模式

  • 大爆炸式
  • 边写边改模式
  • 瀑布模式(无法回溯)(无法紧跟市场变化,缺乏灵活性)(测试对象非常明确)
  • 螺旋模式(通过参与最初的设计阶段,可以尽早的影响到产品)

第三章 软件测试的实质

(了解软件测试的作用、影响和责任)

3.1测试的原则

3.1.1完全测试程序是不可能的

不完全测试:
如果觉得某些测试条件是重复的,无必要的,或者为了节省空间,而将其剔除,那么采用的就是不完全测试

主要原因:

  • 输入量太大
  • 输出结果太多
  • 软件执行路径太多
  • 软件说明书是主观的

3.1.2软件测试是有风险的行为

最优测试量
软件测试员要学会的一个关键思想是,如何把数量巨大的可能测试减少到可以控制的范围,以及如何针对风险做出明智的选择,那些测试重要,那些不重要

3.1.3测试无法显示的潜伏的软件缺陷

可以进行测试,发现并报告软件软件缺陷,但是任何情况下都不能保证软件缺陷没有了。唯一的方法继续测试

3.1.4找到的软件缺陷越多,就说明软件缺陷越多

往往发现一个缺陷后,就会发现附近可能也存在一些缺陷

3.1.5杀虫剂怪事

不要总是使用同一个测试方法或测试软件进行测试,因为软件缺陷可能对这种测试方式免疫了

3.1.6并非所有的软件缺陷都要修复

进行良好的判断,搞清楚在什么情况下不能追求完美

  • 没有足够的时间
  • 不算真正的软件缺陷
  • 修复风险大
  • 不值得修复(需要谨慎判断是否值得修复)
    3.1.7什么时候才叫缺陷难以说清
    3.1.8产品说明书从没有最终版
    3.1.9软件测试员在产品小组中不受欢迎
    3.1.10软件测试是一项讲究条例的技术专业

3.2软件测试的术语和介绍

3.2.1精确和准确

在这里插入图片描述

3.2.2 确认和验证

确认是保证软件符合产品说明书的过程;验证是保证软件满足用户要求的过程。

3.2.3 质量和可靠性

可靠性仅仅是质量的一个方面。
软件使用者心目中的质量可能包括:软件功能的多少、在自己的旧PC上运行的能力、软件公司的服务电话好不好打以及软件的价格。产品的可靠性或者产品多长时间崩溃的问题也许重要,但常常不被考虑到。

3.2.4 测试和质量保证(Quality Assurance,QA)

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

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

相关文章

7. 实现 API 自动生成

目录 1. pom.xml中引用依赖 2. 引入相关的依赖 3. 编写配置类 4. application.yml 中添加配置 5. API 常用注解 6. 访问 API 列表 7. API 导入 Postman 使用 Springfox Swagger生成 API,并导入 Postman,完成API单元测试。 Swagger 简介:Swag…

【Docker】Docker安装 MySQL 8.0,简洁版-快速安装使用

今天,使用docker安装mysql数据库进行一个测试,结果网上找了一篇文章,然后。。。。坑死我… 特总结本篇安装教程,主打一个废话不多说! 坑:安装成功,客户端工具连接不上数据库》。。。 正文&…

运营商三要素 API:构建安全高效的身份验证系统

当今数字化的世界中,身份验证是各行各业中至关重要的一环。为了保护用户的隐私和数据安全,企业需要寻求一种既安全可靠又高效便捷的身份验证方式。运营商三要素 API 应运而生,为构建安全高效的身份验证系统提供了有力的解决方案。 运营商三要…

(三) 搞定SOME/IP通信之CommonAPI库

本章主要介绍在SOME/IP通信过程中的另外一个IPC通信利剑,CommonAPI库,文章将从如下几个角度让读者了解什么是CommonAPI, 以及库在实际工作中的作用 文中资源:vsomeipcommonapi指导文档与demo源码 SOME/IP通信之CommonAPI CommonAPI库是什么C…

Android Jetpack Compose 中的分页与缓存展示

Android Jetpack Compose 中的分页与缓存展示 在几乎任何类型的移动项目中,移动开发人员在某个时候都会处理分页数据。如果数据列表太大,无法一次从服务器检索完毕,这就是必需的。因此,我们的后端同事为我们提供了一个端点&#…

基于YOLOv5n/s/m不同参数量级模型开发构建茶叶嫩芽检测识别模型,使用pruning剪枝技术来对模型进行轻量化处理,探索不同剪枝水平下模型性能影响【续】

这里主要是前一篇博文的后续内容,简单回顾一下:本文选取了n/s/m三款不同量级的模型来依次构建训练模型,所有的参数保持同样的设置,之后探索在不同剪枝处理操作下的性能影响。 在上一篇博文中保持30的剪枝程度得到的效果还是比较理…

异步更新队列 - Vue2 响应式

前言 这篇文章分析了 Vue 更新过程中使用的异步更新队列的相关代码。通过对异步更新队列的研究和学习&#xff0c;加深对 Vue 更新机制的理解 什么是异步更新队列 先看看下面的例子&#xff1a; <div id"app"><div id"div" v-if"isShow&…

Vue的鼠标键盘事件

Vue的鼠标键盘事件 原生 鼠标事件(将v-on简写为) click // 点击 dblclick // 双击 mousedown // 按下 mousemove // 移动 mouseleave // 离开 mouseout // 移出 mouseenter // 进入 mouseover // 鼠标悬浮mousedown.left 键盘事件 keydown //键盘按下时触发 keypress …

C#工程建立后修改工程文件名与命名空间

使用之前的项目做二次开发&#xff0c;项目快结束的时候&#xff0c;需要把主项目的名称修改成我们想要的。 之前从来没有这么干过&#xff0c;记录一下。 步骤如下&#xff1a; 1&#xff1a;打开vs2010项目解决方案&#xff0c;重命名&#xff0c;如下图所示&#xff1a; …

微服务-Nacos(配置管理)

配置更改热更新 在Nacos中添加配置信息&#xff1a; 在弹出表单中填写配置信息&#xff1a; 配置获取的步骤如下&#xff1a; 1.引入Nacos的配置管理客户端依赖&#xff08;A、B服务&#xff09;&#xff1a; <!--nacos的配置管理依赖--><dependency><groupId&…

Git使用教程

一&#xff1a;Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。文章下面有Git常用所有命令 二&#xff1a;SVN与Git的最主要的区别&#xff1f; SVN是集中式版本控制系统&#xff0c;版本库是集中放在中央服务器的&#xff0c;而干活的时候&#xff0c;用…

SQL Developer中的Data Redaction

SQL Developer中的Data Redaction用起来比命令行方便多了。可以选定表或视图&#xff0c;右键点击“遮盖保护”菜单。 但赋权方面有需要注意的地方。 假设Redact Admin是SYS&#xff0c;Redact User是HR。虽然SYS具备所有权限&#xff0c;但还是报以下错误。其实这个错误是针…

使用 PyTorch 进行高效图像分割:第 4 部分

一、说明 在这个由 4 部分组成的系列中&#xff0c;我们将使用 PyTorch 中的深度学习技术从头开始逐步实现图像分割。本部分将重点介绍如何实现基于视觉转换器的图像分割模型。 图 1&#xff1a;使用视觉转换器模型架构运行图像分割的结果。 从上到下&#xff0c;输入图像、地面…

Linux系列讲解 —— 【debugfs】交互式文件系统调试器

手册上说debugfs可以用于检查和更改ext2、ext3或ext4文件系统的状态。似乎很牛的样子&#xff0c;但是我并没有试验出来它多么强大的功能&#xff0c;无非就是在某些文件损坏导致无法删除的时候&#xff0c;我用debugfs来删除这些文件而已&#xff0c;如果有人知道它其他的妙用…

laravel-admin之 解决上传图片不显示 $form->image(‘image‘); 及 $grid->column(‘image‘);

参考 https://blog.csdn.net/u013164285/article/details/106017464 $grid->column(‘image’)->image(‘http://wuyan.cn’, 100, 100); // //设置服务器和宽高 图片上传的域名 上传的图片不显示 在 这里设置了图片的上传路径 在这里设置 域名 就可以回显图片

地理测绘基础知识(3)-观测与遮挡

在上一篇文章中&#xff0c;我们介绍了椭球模型下的一系列基础的坐标操作。本节&#xff0c;介绍观测与遮挡问题。 观测主要用于从观察点A观测大地标准点B&#xff0c;用来解决观测的仰角、方位角与大地坐标系之间的关系。 在没有GPS卫星的时代&#xff0c;为了测量一个位置的…

Unity小项目__小球吃零食

// Player脚本文件源代码 public class Player : MonoBehaviour {public Rigidbody rd; // 定义了一个刚体组件public int score 0; // 定义了一个计分器public Text scoreText; // 定义了一个文本组件public GameObject winText; // 定义了一个游戏物体用于检验游戏结束// S…

WPF显示初始界面--SplashScreen

WPF显示初始界面–SplashScreen 前言 WPF应用程序的运行速度快&#xff0c;但并不能在瞬间启动。当第一次启动应用程序时&#xff0c;会有一些延迟&#xff0c;因为公共语言运行时&#xff08;CLR&#xff09;首先需要初始化.NET环境&#xff0c;然后启动应用程序。 对于WPF中…

【数据结构与算法】队列

文章目录 一&#xff1a;队列1.1 队列的概念1.2 队列的介绍1.3 队列示意图 二&#xff1a;数组模拟队列2.1 介绍2.2 思路2.3 代码实现2.3.1 定义队列基本信息2.3.2 初始化队列2.3.3 判断队列是否满&#xff0c;是否为空2.3.4 添加数据到队列2.3.5 获取队列数据&#xff0c;出队…

Shell学习笔记之基础部分

Shell基础&#xff1a; 查看操作系统支持的shell&#xff1a; [rootrhel9 ansible]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bashShell的基本元素&#xff1a; 声明&#xff1a;声明用哪个命令解释器来解释并执行当前脚本文件中的语句&#xff0c;一般写的…