【软件测试】知识图

news2024/11/25 0:52:45

文章目录

  • 第1章 软件测试概述
    • 1.1 软件、软件危机和软件工程
      • 1.1.1 基本概念
      • 1.1.2 软件工程的目标及其一般开发过程
      • 1.1.3 软件过程模型
    • 1.2 软件缺陷与软件故障
      • 1.2.1 基本概念
      • 1.2.2 典型案例
    • 1.3 软件测试的概念
      • 1.3.1 软件测试的定义
      • 1.3.2 软件测试的目的:保证软件产品的最终质量
      • 1.3.3 软件测试的基本原则
      • 1.3.4 软件测试的局限性
    • 1.4 软件质量与质量模型
      • 1.4.1 软件质量的含义
      • 1.4.2 软件质量模型
    • 1.5 软件测试的分类
    • 1.6 软件测试过程模型
    • 1.7 测试的生命周期

第1章 软件测试概述

1.1 软件、软件危机和软件工程

1.1.1 基本概念

  • 软件 = 程序 + 数据(库) + 文档
  • 软件测试:为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程
  • 软件危机的表现:
    • 软件生产供不应求
    • 软件生产率随软件规模与复杂性提高而下降
    • 软件开发的进度与成本失控
    • 软件系统实现的功能与实际需求不符
    • 软件难以维护
    • 软件文档配置没有受到足够的重视
  • 软件危机的表现:
    • 软件生产供不应求
    • 软件生产率随软件规模与复杂性提高而下降
    • 软件开发的进度与成本失控
    • 软件系统实现的功能与实际需求不符
    • 软件难以维护
    • 软件文档配置没有受到足够的重视

1.1.2 软件工程的目标及其一般开发过程

  • 微观目标:生产出满足需求的软件(成本、时间、质量、可维护性等)
  • 宏观目标:提高软件质量和生产率,最终实现软件的工业化生产
  • 一个软件产品从形成概念开始,经过开发、测试、使用和维护,直到最后退出使用的全过程称为软件生存周期
  • 软件定义:计划和需求分析
  • 软件开发:概要设计、详细设计和实现
  • 软件测试:单元测试、集成测试、系统测试和验收测试
  • 软件使用和维护:改正性维护、适应性维护和完善性维护

1.1.3 软件过程模型

  • 瀑布过程模型
    • 1970年温斯顿•罗伊斯(Winston Royce)提出
    • 瀑布过程模型强调阶段的划分及其顺序性、各阶段工作及其文档的完备性
    • 是一种严格线性的、按阶段顺序的、逐步细化的开发模式
      在这里插入图片描述
  • 螺旋过程模型
    • 螺旋过程模型的基本思路是,依据前一个版本的结果构造新的版本
    • 这个不断重复迭代的过程形成了一个螺旋上升的路径
      在这里插入图片描述
  • 增量过程模型
    • 增量过程模型是用一种几乎连续的过程小幅度地推进项目
      在这里插入图片描述
  • 快速原型过程模型
    • 快速原型过程模型首先是快速进行系统分析,在设计人员和用户的紧密配合下,快速确定软件系统的基本要求,尽快实现一个可运行的、功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统

1.2 软件缺陷与软件故障

1.2.1 基本概念

  • 软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活
  • 软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态,此时若无适当措施(容错)加以及时处理,便产生软件失效
  • 软件缺陷(software bug)的主要类型
    • 软件未达到产品说明书中已经标明的功能;
    • 软件出现了产品说明书中指明不会出现的错误;
    • 软件未达到产品说明书中虽未指出但应当达到的目标;
    • 软件功能超出了产品说明书中指出的范围;
    • 软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

1.2.2 典型案例

1.3 软件测试的概念

1.3.1 软件测试的定义

  • 定义1 :正向逆向思维共存
    • Bill Hetzel,1973年
    • 测试就是建立一种信心,确信程序能够按预期的设想运行
  • 定义2:正向逆向思维共存
    • Glenford Myers,1979年
    • 软件测试是为发现错误而执行程序的过程
  • 定义3 :注重软件质量评价
    • Bill Hetzel,1983年
    • 测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量
  • 定义4:注重软件质量评价
    • Craig & Jaskiel ,2002年
    • 测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程
  • IEEE标准术语:突出用户重要作用
    • “使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别”
  • 软件缺陷在开发前期发现比在开发后期发现,在资金、人力上节约90%
  • 软件缺陷在推向市场前发现比在推出后发现,在资金、人力上节约90%
  • 软件测试应该从软件生命周期的第一个阶段开始,并贯穿于整个的软件生命周期
  • 检验各阶段的成果是否接近预期目标,尽可能早的发现错误并加以修正

1.3.2 软件测试的目的:保证软件产品的最终质量

  • 测试是一个程序的执行过程,其目的在于发现错误
  • 一个好的测试用例很可能会发现至今尚未察觉的错误
  • 一个成功的测试是发现至今尚未察觉的错误的测试
  • 直接目的:发现软件缺陷
  • 最终目的:验证用户需求
  • 附加目的:改进开发过程

1.3.3 软件测试的基本原则

  • 穷尽测试是不可能的,测试需要终止
    • 穷尽测试:对所有输入数据的各种可能进行排列组合试验的测试
  • 测试工作具有创造性,但很困难
    • 测试是破坏性工作?重复性的工作?
    • 测试需要有创造性和洞察力、广泛的知识、测试经验和正确的测试方法
  • 测试工作应由独立的专业的软件测试机构完成
    • 程序员应避免测试自己编写的程序
    • 编写软件组织不应测试自己编写的软件
  • Pareto原则
    • 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
    • 错误总是倾向于聚集存在
    • 寄生虫现象
    • 杀虫剂现象
  • 测试需尽早介入,且贯穿于整个生命周期
  • 设计测试用例时应考虑各种情况
    • 测试用例的编写不仅应当根据有效和预期的输入情况,而且应当根据无效和未预料到的输入情况
    • 检查程序是否“未做其应该做的”,还要检查程序是否“做了其不应该做的”
  • 计划测试工作时不应默许假定不会发生错误
    • Glenford Myers (1979): “Testing is the process of executing a program or system with the intent of finding errors.”

1.3.4 软件测试的局限性

  • 输入/状态空间的无限性
  • 故障敏感性和巧合正确性
    • 代码对测试包隐藏故障的能力称为故障敏感性
    • 错误的代码执行时,却产生了正确的结果,被称为巧合正确性
  • 系统缺陷的不确定性
    • 由于无法确切知道系统的缺陷数量及所在的位置,对修正这些缺陷而带来的新的缺陷也是不可预测的,所以系统质量是不容易把握的

1.4 软件质量与质量模型

1.4.1 软件质量的含义

  • 能满足给定需求的特性(功能、性能)
  • 具有所期望的各种属性的组合的程度,即软件结构良好,合理利用系统资源,易读、易于理解,并易于修改、维护
  • 能满足用户综合期望的程度,软件系统具有友好的用户界面,便于用户使用
  • 软件的组合特性。软件生存周期中各阶段文档齐全、规范,便于配置、管理

1.4.2 软件质量模型

  • McCall(1979年)
    在这里插入图片描述
  • ISO/IEC 9126-1991
    在这里插入图片描述
    在这里插入图片描述
  • 新的ISO/IEC 9126
    在这里插入图片描述
  • ISO/IEC 25010-2011
    在这里插入图片描述
    在这里插入图片描述

1.5 软件测试的分类

1.6 软件测试过程模型

1.7 测试的生命周期


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

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

相关文章

备忘录设计模式解读

目录 问题引进 游戏角色状态恢复问题 传统方案解决游戏角色恢复 传统的方式的问题分析 备忘录模式基本介绍 基本介绍 备忘录模式的原理类图 对原理类图的说明 游戏角色恢复状态实例 应用实例要求 思路分析和图解(类图) 代码实战 备忘录模式的注意事项和细节 问题引…

了解网络攻击:类型、策略和技术

近年来,网络攻击变得越来越普遍,个人和企业都成为各种网络威胁的受害者。了解不同类型的网络攻击,以及网络罪犯使用的策略和技术,对于保护您的个人和企业数据免受这些威胁至关重要。 有几种不同类型的网络攻击,每种都…

Linux 查看进程和线程CPU和内存占用情况

文章目录 Linux 查看进程有哪些线程Linux 查看程序内存占用情况 top和free等命令Linux 查看进程、线程数量 Linux 查看进程有哪些线程 linux 下查看进程内的线程有哪些 首先通过进程名称,假设为SensorDev 找到pid号。 ps -p {pid} -T 可以得到该进程里面运行的各…

Mapbox多边形光效晕影特效的实现

相信很多大屏需要展示行政区的发光效果,像下图这样的: 这相比普通的多边形样式,边界有了渐变发光的效果,那么这篇章交给大家如何实现这样一个效果,让你的行政区,地块之类的多边形要素展示成发光的效果。 我们不依赖底层的webgl技术,也不用涉及到什么着色器的概念,我…

【LeetCode: 1143. 最长公共子序列 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Springcloud连接nacos集群,nacos地址配置为nginx,报错:requst nacos server failed

先说下版本: Spring cloud: Hoxton.SR12 spring.cloud.alibaba: 2.2.9.RELEASE spring.boot: 2.3.12.RELEASE Linux Centos7 nacos-server:2.1.0 nginx: 1.20.2 环境说明: nacos正常搭建三个集…

Burpsuite双层代理以及抓https与app包设置

Burp Suite是一款用于Web应用程序安全测试的集成式平台。它由PortSwigger Ltd.开发,是一个功能强大的工具,用于发现Web应用程序的漏洞和安全问题,例如跨站点脚本(XSS)、SQL注入、会话劫持等。它包括多个模块&#xff0…

酒厂酒业IP网络广播系统建设方案-基于局域网的新一代交互智慧酒厂酒业IP广播设计指南

酒厂酒业IP网络广播系统建设方案-基于局域网的新一代交互智酒业酒厂IP广播系统设计指南 由北京海特伟业任洪卓发布于2023年4月25日 一、酒厂酒业IP网络广播系统建设需求 随着中国经济的快速稳步发展,中国白酒行业也迎来了黄金时期,产品规模、销售业绩等…

NLP 与 Python:构建知识图谱实战案例

概括 积累了一两周,好久没做笔记了,今天,我将展示在之前两周的实战经验:如何使用 Python 和自然语言处理构建知识图谱。 网络图是一种数学结构,用于表示点之间的关系,可通过无向/有向图结构进行可视化展示…

【2023团体程序设计天梯赛CCCC】GPLT2023,L1~L2部分(PTA,L1-089~L1-096,L2-045~L2-048)题解代码复盘

文章目录 概要L1-089 最好的文档 5L1-090 什么是机器学习 5L1-091 程序员买包子 10L1-092 进化论 10L1-093 猜帽子游戏 15L1-094 剪切粘贴 15L1-095 分寝室 20L1-096 谁管谁叫爹 20L2-045 堆宝塔 25L2-046 天梯赛的赛场安排L2-047 锦标赛 25L2-048 寻宝图 25L3-035 完美树&…

GIII EDI 需求分析

G-III成衣集团是一家美国服装公司,拥有30多个授权和自有品牌如:Calvin Klein、Tommy Hilfiger、Guess以及Levi’s等,在全球拥有众多的零售合作伙伴和销售渠道,并致力于提供时尚、高质量和价格合理的服装产品。 GIII EDI 需求 传…

版本控制工具之Git基本操作

Git 相对较新的版本控制工具,特点为分布式。 每一台客户端都具有完整的版本备份,所有的版本提交都不需要依赖中心服务器。只有在多人协同时,服务器会处理并发情况。 一、Git 环境安装 👉链接:https://blog.csdn.net/w…

「速通Shell」初次走近Shell,Shell是什么?

目录 初次走进ShellShell是什么Shell工作原理 Shell分类Shell的优势 第一个Shell脚本Hello WorldShell执行方式绝对路径执行相对路径执行脚本命令执行系统命令执行 总结 对于开发者来说,除了掌握Java、C/C等主要编程语言外,还需要掌握支撑性的工具语言和…

Vagrant 安装

系列文章目录 文章目录 系列文章目录前言一、安装地址二、安装步骤注意事项三、常用命令四、问题总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内…

机器人方向的人工智能工具是助手还是平替

本文内容严格按创作模板发布: 近日育碧开发了人工智能工具 Ghostwriter,可以一键生成游戏NPC对话。不少游戏开发者担心AI写手工具的出现会让自己“饭碗”不保,但Swanson表示这个工具只是为了提供第一稿的 barks来减少对话生成工作的繁琐度。…

Linux网络编程TCP粘包问题解析及解决方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、一次发送多个数据实验二、导致问题的原因三、解决方案之一:延时发送四、知识点补充发送缓冲区和接收缓冲区五、解决方法总结 前言 本篇文章将引…

Java-JDK动态代理(AOP)使用及实现原理分析

Java-JDK动态代理(AOP)使用及实现原理分析 第一章:代理的介绍 介绍:我们需要掌握的程度 动态代理(理解) 基于反射机制 掌握的程度: 1.什么是动态代理? 2.动态代理能够做什么? 后面我们在用Spirng和Mybatis的时候,要理解怎么使用的. 1.什么是代理? 代理…

PID循迹机器人及整定

如何对线路循迹机器人进行编程 如何对线路循迹机器人进行编程 (robotresearchlab.com)PID调谐文章:http://robotresearchlab.com/2019/02/16/pid-line-follower-tuning/ 介绍人们选择对循迹机器人进行线路编程的两种主要方式,并比较两者。将详细比较“…

绘声绘影2023简体中文版新功能介绍

会声会影是一款专业的数字音频工作站软件,它提供强大的音频编辑和制作功能,被广泛应用于音乐创作、录音棚录制以及现场演出等领域。会声会影的最新版本会声会影2023将于2022年底发布,主要功能和新功能详述如下: 会声会影2023主要功能: 1. 直观易用的界面:会声会影采用简洁而不…

C语言入门篇——数组篇

目录 1、数组 2、一维数组的创建和初始化 2.1数组的创建方式: 2.2数组的初始化 2.3一维数组的使用 ​2.4一维数组在内存中的存储 3、二维数组的创建和初始化 3.1二维数组的创建 3.2二维数组的初始化 3.3二维数组的使用 3.4二维数组在内存中的存储 4、数组…