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

第一章概述

一、学习目的与要求

本章对软件测试作了概括性的介绍,目的是使学生对软件测试有个初步的认识。通过本章的学习,应使学生掌握软件测试的基本概念,了解软件测试的发展历程和行业现状,掌握软件测试技术的分类,理解软件测试的目的和原则,掌握软件测试工作流程,理解软件开发与软件测试的关系。

二、考核知识点与考核目标

(一)软件测试的基本概念(重点)

  1. 识记:软件测试的定义

软件测试是一个在可控环境中执行软件的过程,目的是为了验证软件是否按预期运行

  1. 理解:软件测试生命周期

需求规格说明、设计、编码是引用错误程序阶段,测试发现错误阶段,缺陷分类、缺陷分离、缺陷排出是清除错误程序阶段

  1. 理解:软件开发与测试模型

软件开发与V模型

  1. 左边下降是开发过程各阶段,右边上升的是测试过程阶段
  2. 价值:明确的标明了测试过程中存在的不同级别,清楚的描述了测试阶段和开发过程期间的对应关系
  3. 适用于所有类型的开发过程,不一定适用于开发和测试过程的所有方面
    在这里插入图片描述

软件开发与W模型

  1. 测试伴随着整个软件开发周期
  2. 测试对象包括需求、设计和程序
  3. 优点:每个软件开发活动结束后就可以执行相应的测试
    在这里插入图片描述

软件开发与H模型

  1. 软件测试不仅指测试的执行,还有其他活动
  2. 软件测试是一个独立的过程,贯穿产品的整个开发周期,与其他流程并发进行
  3. 软件测试要尽早准备,尽早执行
  4. 软件测试根据被测物的不同分层次,不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的 在这里插入图片描述

(二)软件测试技术分类(重点)

  • 理解:软件测试技术的分类

从执行被测软件角度分静态测试动态测试

  1. 静态测试:不利于计算运行被测程序,而是通过其他手段达到测试目的的方法。
  2. 静态测试方法:代码检查和走查,以及桌面检查和同行评分。

从软件测试用例设计方法的角度分为黑盒测试白盒测试

  1. 黑盒测试是从用户观点出发的测试,又称为功能测试、数据驱动测试、基于规格说明的测试。
  2. 白盒测试是基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各部分功能是否得到充分利用,又称为结构测试、逻辑驱动测试、基于程序测试。

按照软件测试的策略和过程可分为单元测试集成测试确认测试系统测试验收测试

  1. 单元测试是软件测试最小单位,使用白盒测试,用来发现内部测试。
  2. 集成测试检验与软件设计相关的程序结构问题,使用黑盒测试。
  3. 确认测试对开发工作初期制定的确认准则进行校验,使用黑盒测试。
  4. 系统测试检验被测软件与系统其他部分的协调性。
  5. 验收测试从用户角度出发。

(三)软件测试目的和原则(次重点)

  1. 理解:软件测试目的和原则

软件测试目的
①软件测试是为了发现错误而执行程序的过程。
②一个好的测试用例能够发现至今尚未发现的错误。
③一个成功的测试是发现了至今尚未发现的错误。
软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。

软件测试原则
(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。
(2)测试应当有重点。
(3)事先定义好产品的质量标准。
(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。
(5)穷举测试是不可能的。
(6)第三方进行测试会更客观,更有效。
(7)软件测试计划是做好软件测试工作的前提。
(8)测试用例是设计出来的,不是写出来的。
(9)对发现错误较多的程序段,应进行更深入的测试。
(10)重视文档,妥善保存一切测试过程文档。

(四)软件测试工作流程(重点)

  1. 理解:软件测试工作流程
  1. 需求阶段是软件测试活动的前提
  2. 设计、编码和单元测试阶段是进行概要设计,形成集成测试方案,再进行详细设计
  3. 集成测试、系统测试、和验收测试阶段
    在这里插入图片描述

(五)软件开发与软件测试的关系(一般)

  1. 理解:软件开发与软件测试的关系

软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

三、习题

  1. 软件测试的目的是______。
    A. 避免软件开发中出现的错误
    B. 发现软件中出现的错误
    C. 容忍软件中出现的错误
    D. 修改软件中出现的错误
  2. 以下关于软件测试原则的叙述中,不正确的是(  )。
    A. 测试用例不仅选用合理的输入数据,还要选择不合理的输入数据
    B. 应制定测试计划并严格执行,排除随意性
    C. 对发现错误较多的程序段,应进行更深入的测试
    D. 程序员应尽量测试自己的程序
  3. 以下关于测试时机的叙述中,正确的是______。
    A. 应该尽可能早的进行测试
    B. 若能推迟暴露软件中的错误,则修复和改正错误所花费的代价就会降低
    C. 应该在代码编写完成后开始测试
    D. 需求分析和设计阶段不需要测试人员参与
  4. 软件测试的对象包括______。 ①软件代码 ②文档 ③数据
    A.①②
    B.①③
    C.②③
    D.①②③
  5. 什么是软件测试?简述其目的及原则。
  1. 软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。
  2. 测试目的:
    (1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。
    (2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。
    (3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。
  3. 测试过程中应注意和遵循的原则:
    (1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。
    (2)测试应当有重点。
    (3)事先定义好产品的质量标准。
    (4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。
    (5)穷举测试是不可能的。
    (6)第三方进行测试会更客观,更有效。
    (7)软件测试计划是做好软件测试工作的前提。
    (8)测试用例是设计出来的,不是写出来的。
    (9)对发现错误较多的程序段,应进行更深入的测试。
    (10)重视文档,妥善保存一切测试过程文档。
  1. 软件测试阶段是如何划分的?

计划阶段:

  1. 编写测试计划;
  2. 编写进度表设计阶段:测试环境准备、设计测试用例;
  3. 执行阶段:执行测试用例、记录缺陷;
  4. 评审阶段编写测试报告
  1. 简述软件测试过程。

软件测试过程主要包括如下6个活动:
测试计划;
测试需求分析;
测试设计;
测试规程实现;
测试执行;
总结生成报告。

  1. “软件测试能够保证软件的质量”这句话对吗?软件测试和软件质量之间是什么关系?

不对。软件测试是保障软件质量的手段之一,但不是唯一手段。测试是产品高质量的必要非充分条件,软件测试不能决定软件质量。

  1. 简述软件开发进程与测试进程的关系。

软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

  1. 什么是回归测试?什么时候进行回归测试?

回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。每当软件发生变化时就应进行回归测试。

相关文章:

第一章概述

一、学习目的与要求 本章对软件测试作了概括性的介绍,目的是使学生对软件测试有个初步的认识。通过本章的学习,应使学生掌握软件测试的基本概念,了解软件测试的发展历程和行业现状,掌握软件测试技术的分类,理解软件测试…...

XCode15与iOS17/17.1 真机测试问题处理

XCode15与iOS17/17.1 真机测试问题处理,网上相关博客很多,摘录了如下实践后能起作用的地址如下:Xcode 15 报错处理 - 简书iOS17版本适配-CSDN博客 Xcode15适配-六虎 主要介绍下:Assertion failure in void _UIGraphicsBeginImag…...

使用 Rust 和 cURL 库下载程序

以下是一个使用 Rust 和 cURL 库的下载器程序,用于下载 图像。此程序使用了 https://www.duoip.cn/get_proxy 的代码。 extern crate curl; ​ use std::io::{self, Read}; use std::error::Error; ​ fn main() {let url "https://www.baidu.com";let …...

三维模型表面积计算方法

【版权声明】 本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 更多算法总结请关注我的博客:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。 本文章来自于专栏《Python三维模型处理基础》的系列文…...

unity脚本_力 c#

创建一个脚本 将代码挂载到物体上 取消物体的重力 运行即向z轴运动 加力之后 是否停止是由阻力影响 如果阻力为零 则会一直运动 如果希望就算有阻力也让物体一直动就将加力代码放在Update函数里 using UnityEngine; public class Power : MonoBehaviour{ Rigidbody rigidBo…...

LeetCode 面试题 10.05. 稀疏数组搜索

文章目录 一、题目二、C# 题解 一、题目 稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。 示例1: 输入: words [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”, “”…...

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiLSTM-…...

Sobel算子详解及例程

Sobel算子是一种经典的边缘检测算子,被广泛应用于图像处理领域。它基于图像亮度的变化率来检测边缘的位置,主要通过计算图像中像素点的梯度来实现。 Sobel算子分为水平和垂直两个方向的算子,记作Gx和Gy。它们分别对图像进行水平和垂直方向的…...

ScrapeKit 和 Swift 编写程序

以下是一个使用 ScrapeKit 和 Swift 编写的爬虫程序,用于爬取 图片。同时,我们使用了proxy 这段代码来获取代理。 import ScrapeKit ​ class PeopleImageCrawler: NSObject, ScrapeKit.Crawler {let url: URLlet proxyUrl: URL ​init(url: URL, proxy…...

Java基础面试题知识点总结(上篇)

大家好,我是栗筝i,从 2022 年 10 月份开始,我持续梳理出了全面的 Java 技术栈内容,一方面是对自己学习内容进行整合梳理,另一方面是希望对大家有所帮助,使我们一同进步。得到了很多读者的正面反馈。 而在 2…...

STM32进行LVGL裸机移植

本文的移植参考的是正点原子的课程《手把手教你学LVGL图形界面编程》 基于该课程和《LVGL开发指南_V1.3》“第二章 LVGL 无操作系统移植”,然后结合自身的实际情况进行整理。 先根据自己的习惯,创建基础的单片机工程,然后在APP业务层和DRIVE…...

python解析robot framework的output.xml并生成html

一、用pyh模块解析stat结点数据(output.py) #codingutf-8import xml.dom.minidom import xml.etree.ElementTree#打开xml文档 dom xml.dom.minidom.parse(./ui/output.xml);root2 xml.etree.ElementTree.parse(./ui/output.xml) #得到文档元素对象 ro…...

【RuoYi移动端】uni-app中的单击和双击事件

1、单击事件: click"enterpriseSelect" 2、双击事件: touchend"userinfo"...

使用 conda 在 Ubuntu 16.04 上安装 Python 3.9 的步骤:和 VSCode配置

一、使用conda在 Ubuntu 16.04 上安装 Python 3.9 的步骤: 当然可以,conda 是一个非常强大的包管理器,它可以方便地管理不同版本的 Python 和各种库包。以下是使用 conda 在 Ubuntu 16.04 上安装 Python 3.9 的步骤: 1. 安装 Miniconda Miniconda 是 Anaconda 的轻量级版…...

spring6-国际化:i18n | 数据校验:Validation

文章目录 1、国际化:i18n1.1、i18n概述1.2、Java国际化1.3、Spring6国际化1.3.1、MessageSource接口1.3.2、使用Spring6国际化 2、数据校验:Validation2.1、Spring Validation概述2.2、实验一:通过Validator接口实现2.3、实验二:B…...

【MicroSoft Edge】格式化的显示JSON格式的数据

当我们没有进行任何操作的时候,默认浏览器给我们展示的JSON的数据是这样的: 看着十分不便。 解决方案: 首先点击 MicroSoft Edge 浏览器右上角的三点,如何选择扩展 点击 获取Microsoft Edge 扩展 搜索 JSONView,第一…...

【c++】跟webrtc学std array 2:TaskExecutorMap单例用法

D:\XTRANS\m98_rtc\ndrtc-webrtc\src\base\task\task_executor.ccstd array实现的map:TaskExecutorMap // Maps TaskTraits extension IDs to registered TaskExecutors. Index |n| // corresponds to id |n - 1|. using TaskExecutorMap =std::array<TaskExecutor*, Task…...

力扣每日一题59:螺旋矩阵||

题目描述&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&am…...

codeforces (C++ In Love )

题目&#xff1a; 翻译&#xff1a; 思路&#xff1a; 1、在一个集合中有多组线段&#xff0c;如果有不相交的两组线段&#xff0c;则输出YES&#xff0c;否则输出NO。 2、每次操纵可以选择增加一组线段或者删除一组线段后&#xff0c;输出YES或者NO。 3、用flag标记该线段是否…...

【python】py文件全自动打包成spec文件

说明&#xff1a; 自动获取当前根目录下所有py文件生成spec文件&#xff0c;直接运行pyinstaller进行打包即可。直接打包成单执行文件。 直接上代码 import ospathex []def recursion(path, main):if path[:1] ! /:path /listpath os.listdir(path)for item in listpath:if…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...