第一章概述

news2024/11/15 14:02:48

一、学习目的与要求

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

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

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

  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. 什么是回归测试?什么时候进行回归测试?

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

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

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

相关文章

【JAVA-Day49】Java LinkedList集合详解

Java LinkedList集合详解 摘要引言Java LinkedList集合详解一、什么是LinkedList集合1.1 链表数据结构1.2 双向链表1.3 动态大小1.4 插入和删除元素1.5 适用场景 二、LinkedList集合的使用2.1 创建 LinkedList 集合、添加元素、遍历元素2.2 在指定位置插入元素2.3 获取指定位置…

模拟 Junit 框架

需求 定义若干个方法,只要加了MyTest注解,就可以在启动时被触发执行 分析 定义一个自定义注解MyTest,只能注解方法,存活范围是一直都在定义若干个方法,只要有MyTest注解的方法就能在启动时被触发执行,没有这…

开源博客项目Blog .NET Core源码学习(5:mapster使用浅析)

开源博客项目Blog使用mapster框架映射对象,主要是在数据库表对象及前端数据对象之间进行映射,本文学习并记录项目中mapster的使用方式。   App.Hosting项目的program文件中调用builder.Services.AddMapper函数进行对象模型自动映射,而该函数…

numpy矩阵画框框

在n>5(n是奇数)的nn数组中,用*画外方框和内接菱形。 (本笔记适合熟悉numpy的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那…

二维码智慧门牌管理系统升级解决方案:突破传统,实现质检与抽检的个性化配置

文章目录 前言一、引入“独立质检”二、个性化抽检类别设定三、触发重采要素的功能升级四、升级优势与展望 前言 在数字化时代,智慧门牌管理系统已经成为社会管理的重要工具。为了满足各种复杂需求,系统升级是必然趋势。本次升级主要针对质检和抽检两大…

Python+requests+exce接口自动化测试框架

一、接口自动化测试框架 二、工程目录 三、Excel测试用例设计 四、基础数据base 封装post/get:runmethod.py #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunterimport requests import jsonclass RunMain:def send_get(self, url, data):res req…

Ragnar Locker勒索软件开发者在法国被逮捕

导语:在一次跨国行动中,执法机构逮捕了与Ragnar Locker勒索软件团伙有关的一名恶意软件开发者,并查封了该团伙的暗网网站。Ragnar Locker勒索软件团伙自2020年以来在全球范围内对168家国际公司进行了攻击。此次行动是法国、捷克、德国、意大利…

搭建网站七牛云CDN加速配置

打开七牛云后台;添加域名; 添加需要加速的域名,比如我添加的是motoshare.cn 源站配置,这里要用IP地址,访问的目录下面要有能访问测试的文件,尽量不要用源站域名,这个只能用加速二级域名&#x…

git版本升级

2.17.1之前执行指令:git update(现在大部分应该都不用这个指令,都高于这个版本) 2.17.1之后执行指令:git update-git-for-windows 可通过git --version查看版本 如图所示 等待安装成功即可

蓝桥杯每日一题2023.10.22

题目描述 灵能传输 - 蓝桥云课 (lanqiao.cn) 题目分析 发现每一次的灵能传输都是对前缀和s[i - 1]和s[i]的一次交换 故为求max(s[i], s[i - 1])的最小值(发现当s单调时可以成立) 由于s[0]和s[n]的位置不变,但是s[0]和s[n]不一定是最大值或…

使用CMake构建一个简单的C++项目

文章目录 一. 构建一个简单的项目二. 构建过程1. 创建程序源文件2. 编写CMakeList.txt文件3. 构建项目并编译源代码 附件 一. 构建一个简单的项目 最基本的CMake项目是从单个源代码文件构建的可执行文件。对于像这样的简单项目,只需要一个包含三个命令的CMakeLists…

Egg.js项目EJS模块引擎

1.介绍 灵活的视图渲染:使用 egg-view-ejs 插件,你可以轻松地在 Egg.js 项目中使用 EJS 模板引擎进行视图渲染。EJS 是一种简洁、灵活的模板语言,可以帮助你构建动态的 HTML 页面。 内置模板缓存:egg-view-ejs 插件内置了模板缓存…

react 学习 —— 16、使用 ref 操作 DOM

什么时候使用 ref 操作 DOM? 有时你可能需要访问由 React 管理的 DOM 元素 —— 例如,让一个节点获得焦点、滚动到它或测量它的尺寸和位置。在 React 中没有内置的方法来做这些事情,所以你需要一个指向 DOM 节点的 ref 来实现。 怎么使用 r…

蓝桥杯中级题目之组合(c++)

系列文章目录 数位递增数_睡觉觉觉得的博客-CSDN博客拉线开关。_睡觉觉觉得的博客-CSDN博客蓝桥杯中级题目之数字组合(c)_睡觉觉觉得的博客-CSDN博客 文章目录 系列文章目录前言一、个人名片二、描述三、输入输出以及代码示例1.输入2.输出3.代码示例 总…

系统架构师考试科目一:综合知识

某软件公司欲开发一个 Windows 平台上的公告板系统。在明确用户需求后,该公司的 架构师决定采用 Command 模式实现该系统的界面显示部分,并设计 UML 类图如下 图所示。图中与 Command 模式中的 Invoker 角色相对应的类是( ) ,与 ConcreteComm…

UE4/5 批量进行贴图Texture压缩、修改饱和度

该插件下载地址: 🍞正在为您运送作品详情https://mbd.pub/o/bread/ZZWYmpxw 适用于 UE4 4.25/4.26/4.27 UE5 以上版本 在Edit - Plugins中分别开启 插件 Python Editor Script Plugin 插件 Editor Scripting Utilites 如果会python代码,…

KEGG通路图绘制 | ggpathway包

「一边学习,一边总结,一边分享!」 写在前面 今天在GitHub中看到一个ggpathway的包,主要可以制作通路网络图,或是进一步优化的话,可以进行个性话制作。 操作步骤在GitHub中已经很详细。自己也照葫芦画瓢进行…

ENVI IDL:如何基于面向对象思想进行编程?

最近打算使用markdown语法进行博客的编写,所以风格和格式方面会有区别,见谅。 01 为什么会有这方面的想法? 我惯用python,因此对于IDL进行编程也会有先入为主的想法,它也体现在我的IDL编程中。 02 如何正常编写函数…

codeforces (C++ Morning)

题目: 翻译: 思路: 1、要将四位数显示,每次操作可以选择移动光标(移动到相邻的位置)或者显示数字,计算最少需要多少次操作。 2、用flag表示当前光标位置,sum为记录操作次数&#…

【试题039】 多个逻辑或例题

题目:设int n;,执行表达式(n0)||(n1)||(n2)||(n3)后,n的值是?代码分析: //设int n; , 执行表达式(n 0) || (n 1) ||(n 2) ||(n 3)后, n的值是?int n;printf("n%d\n", (n 0) || (n 1) || (n 2) || (n 3));//分析&#xff1…