软件测试基础教程学习2

news2024/11/25 18:40:19

文章目录

  • 软件测试基础
    • 2.1 软件测试模型
    • 2.2 确认和验证
    • 2.3 软件测试分类
    • 2.4软件测试流程概述

软件测试基础

2.1 软件测试模型

2.2 确认和验证

软件确认(Validation)和验证(Verification),简称V&V或V2。
确认是指在软件开发过程结束时对软件进行评价,以确定它是否和软件需求一致的过程。在软件产品开发完成以后,为了对它在功能、性能、接口以及限制条件等方面是否满足需求做出切实的评价,需要在开发的初期,在软件需求规格说明书中明确地规定确认的标准。
验证是指确定软件开发周期中的一个给定的产品是否满足了在上一阶段确立的需求的过程。也就是说,验证是要决定软件开发的每个阶段、每个步骤的产品是否正确无误,并于前面的开发阶段和开发步骤的产品相一致。验证工作意味着在软件开发过程中开展的一系列活动,旨在确保能够正确无误地实现软件的需求。

确认和验证既有联系,也有区别。确认要回答的是:正在开发一个正确、无误的软件产品吗?而验证要回答的是:正开发的软件产品时正确、无误的吗?
区别:
确认表明要与规定的需求进行比较,判断是否满足要求,所关心的是该软件产品的价值;
而验证关心的是确保软件模块或功能内在的正确性和一致性。

验证+确认=测试。

2.3 软件测试分类

  1. 按是否需要执行被测软件的角度分类
  • 静态测试:不利用计算机运行待测程序而应用其他手段实现测试目的,如代码审查;
  • 动态测试:通过运行被测试软件来达到目的。
  1. 按开发阶段分类
  • 单元测试。单元测试又称模块测试,是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等。
  • 集成测试。集成测试也称为组装测试,是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
  • 确认测试。确认测试又称为有效性测试。确认测试的目的是检查已实现的软件系统是否满足需求规格说明书中规定的各种需求,以及软件配置是否完全、正确。
  • 系统测试。系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
  • 验收测试。验收测试旨在向软件的购买者展示该软件能够满足其用户的需求,它的测试数据通常是系统测试的测试数据的子集。
  1. 按测试实施组织分类
  • Alpha测试。一般由最终用户或其他人员完成,不能由程序员或测试人员完成。
  • Beta测试。一般由最终用户或其他人员完成,不能由程序员或测试人员完成。
  • 第三方测试。第三方测试是指不同于开发方和用户方的组织进行的测试。通常模拟用户的真实操作环境,对软件进行确认测试。第三方测试有利于客观、公正地测试和评价软件。
  1. 按测试方法分类
  • 白盒测试。白盒测试也称为结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试。白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
  • 黑盒测试。黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试。黑盒测试的方法主要有等价类划分、边界值分析、因果图、错误推荐等,主要用于软件确认测试。
  • 灰盒测试。它关注输出相对于输入的正确性,同时也关注内部表现,通过一些表征性的现象、事件、标志来判断内部的运行状态。当进行灰盒测试时,要考虑用户端、特定的系统知识和操作环境,要在系统组件的协同环境中评价应用软件的设计。

2.4软件测试流程概述

  1. 软件开发流程
    以V模型为例,介绍软件开发生命周期
    (1)需求分析阶段。需求分析人员进行需求获取和分析,这个阶段的输出是需求规格说明书。在这个阶段,测试工程师就可以开始制定系统测试计划,并且根据需求规格说明书着手进行系统测试说明的编写。
    (2)概要设计阶段。设计人员根据需求规格说明书进行概要设计,这个阶段的输出是概要设计说明书,测试工程师开始制定集成测试计划,并且根据概要设计说明书编写集成测试说明。
    (3)详细设计阶段。在概要设计的基础上进行详细设计,输出是详细设计说明书,测试人员要制定单元测试计划,并根据详细设计说明书编写单元测试说明。
    (4)编码阶段。开发人员根据详细设计说明书进行编码。
    (5)单元测试阶段。测试工程师根据单元测试说明对编码人员编写的代码进行单元测试。
    (6)集成测试阶段。测试工程师根据集成测试说明对通过单元测试的单元进行集成测试。
    (7)确认和系统测试阶段。在集成测试完成后,测试工程师根据测试说明对集成的软件进行确认和系统测试。
  2. 软件测试流程
    科学的软件测试过程是软件测试人员在项目开发初始融入到项目中,了解用户需求和设计开发工作。在测试阶段开始前,拟定软件测试计划,编制软件测试大纲,设计和生成测试用例,在测试过程中,有效地进行缺陷和问题跟踪,在测试结束后,生成软件测试报告和测试评估报告。
    科学的软件测试流程主要包括:
    (1)测试阶段的划分;
    (2)测试周期的制定;
    (3)测试工作的质量。
    一个好的测试过程的属性包括:
    (1)整个测试过程被书面化;
    (2)测试过程是灵活的、可变的;
    (3)每个人都同意遵循这个测试过程;
    (4)测试过程包含度量,该度量用于测量测试过程的有效性,也是修改测试过程和测试改进的基础。
    (5)测试过程要被主动管理。
    测试阶段的划分:
    在这里插入图片描述
    测试周期细分:
    在这里插入图片描述

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

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

相关文章

python基于yolov7开发构建手写甲骨文检测识别系统

在我之前的文章中,关于手写文字、手写数字、手写字母的检测识别相关的项目都有了不少的实践了,这里就不在赘述了,感兴趣的话可以自行移步阅读即可。 《基于轻量级目标检测模型实现手写汉字检测识别计数》 《python开发构建基于机器学习模型…

Nginx+Tomcat(多实例)实现动静分离和负载均衡四层、七层(总有些惊奇的际遇,比方说当我遇见你)

文章目录 一、Tomcat 多实例部署二、反向代理的两种类型三、NginxTomcat实现负载均衡和动静分离(七层代理)1.动静分离和负载均衡原理2.实现方法3.部署实例(1)部署Nginx负载均衡服务器(2)配置Tomcat多实例服…

【SpringCloud——Sentinel】

一、什么是雪崩? 微服务调用链路中的某个服务发生故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 二、解决雪崩问题的常见措施 1、超时处理 设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休…

vue 3 第三十三章:自定义 hooks

文章目录 1. vue 2 中mixins1.1. mixins 的缺点: 2. 自定义 hooks2.1. 创建自定义Hook2.2. 在组件中使用自定义Hook 2. 总结 1. vue 2 中mixins 在Vue.js 2.x版本中, mixin 被广泛用于将组件的逻辑、计算属性和方法复用到其他组件中。然而,使…

华为OD机试真题 Java 实现【明明的随机数】【2023Q1 100分】,附详细解题思路

一、题目描述 明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。 数据范围: 1≤n≤1000 ,输入…

springboot+vue游戏项目销售发行系统设计与实现

本游戏销售平台管理员功能有个人中心,用户管理,厂商管理,游戏类型管理,游戏信息管理,众筹项目管理,项目投资管理,论坛管理,管理员管理,系统管理等。厂商发布游戏&#xf…

我在公司彻夜加班,老板居然做出这种事.....

讲道理,我的学历远达不到BAT等名企大厂的要求,去不了好公司我认了,大专毕业的我在找工作的时候发现留给自己的机会并不多,最后去了一家不知名的小公司。入职后才发现这家公司其实就是个外包公司,里面的业务部门和制度相…

使用Mybatis接口开发

文章目录 目录 前言 公司项目用到了mybatis开发接口,虽然很简单,但是mybatis不是特别熟悉,这里学习一下 一、Mybatis接口绑定的两种方式 1.接口绑定实现方式 就是在接口的方法上加上Select,updateInsertDelete等注解 select注解介绍: 简便,能快速去操作sql,它只需要在mapper…

AIGC浪潮来袭,奇点云“数智科技大会”洞见AI加速的数智未来

“进化,发生在每一个数字化场景。” 5月25日,以“数据进化论”为主题,由StartDT(奇点云、GrowingIO)主办的2023 StartDT Day数智科技大会在杭召开。企业客户、行业专家、技术专家与数万位参会伙伴相聚云上,…

【Linux】shell脚本教程

目录 一、shell历史 二、执行脚本 三、基本语法 3.1变量 3.1.1变量的分类 3.1.2删除变量 3.2文件名代换(Globbing) 3.3命令代换 3.4算术代换 3.5转义字符 3.6单引号 3.7双引号 四、Shell脚本语法 4.1条件测试 4.2分支 4.2.1if/then/elif…

【SLAM】Kimera-Multi (IEEE-TRO2022 年最佳论文傅京孙)

Kimera-Multi: Robust, Distributed, Dense Metric-Semantic SLAM for Multi-Robot Systems 0 摘要1. 引言2. RELATED WORK3. SYSTEM OVERVIEW4. DISTRIBUTED LOOP CLOSURE DETECTION[4.X Kimera-Multi相关补充](https://github.com/DEARsunshine/Kimera)5. EXPERIMENTS6. CONC…

推箱子-第14届蓝桥杯国赛Scratch真题初中级组第3题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第145讲。 推箱子,本题是2023年5月28日上午举行的第14届蓝桥杯国赛Scratch图形化编程初中级组真题第3题&am…

苹果iOS证书制作教程

众所周知,如果你需要上架苹果APP就必须要苹果iOS证书进行APP签名,否则苹果手机将无法安装你开发的APP,废话不多说,直接上教程。 第一步,注册账号 准备appleid必须开通双重认证,如果注册个人开发者直接下载d…

深度学习基础知识-tf.keras实例: 加州房价预测

参考书籍:《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition (Aurelien Geron [Gron, Aurlien])》 代码有修改,已测通。 简单顺序结构 这次得数据集比之前得简单,只包含数字型特征,没有ocean…

leetcode98. 验证二叉搜索树(java)

验证二叉搜索树 leetcode98. 验证二叉搜索树题目描述 递归法解题思路代码演示 中序遍历解法解题思路代码演示 二叉树专题 leetcode98. 验证二叉搜索树 leetcode 98.验证二叉搜索树 来源:力扣(LeetCode) 链接:https://leetcode.cn/…

Linux开发中的辅助工具

文章目录 前言一、add2line二、strip三、ar四、nm五、objdump六、size七、strings总结 前言 本篇文章我们来介绍一些Linux开发中的辅助工具,有了这些辅助工具将会让我们的开发变的更加轻松。 一、add2line addr2line是一个GNU调试工具,用于将程序计数…

priority_queue的模拟实现和仿函数

priority_queue模拟 首先查看源代码,源代码就在queue剩下的部分中 push_heap是STL库中的堆算法,STL库中包装有支持堆的算法,在algorithm.h中: 只要不断用堆的形式插入数据,就会形成堆。 priority_queue模拟——初版 pr…

自定义组件中,使用onLoad,onShow生命周期失效问题

的解决方法 自定义组件中,使用onLoad,onShow生命周期失效问题 自定义组件中,使用onLoad,onShow生命周期失效问题 官方文档可查阅到: 页面生命周期仅在page中的vue页面有效,而单独封装的组件中【页面周期无效】,但是Vu…

Pytorch入门(四)使用VGG16网络训练CIFAR10数据集

本文使用PytorchVGG16官方CIFAR10数据集完成图像分类。识别效果如下: 文章目录 一、VGG16 神经网络结构二、VGG16 模型训练三、预测CIFAR10中的是个类别 一、VGG16 神经网络结构 VGG,又叫VGG-16,顾名思义就是有16层,包括13个卷…

地震勘探基础(十)之地震速度关系

地震速度 地震勘探中引入了多种速度的概念,如下图所示。 层速度、平均速度和均方根速度之间的关系 层速度指的是某一套地层垂向上,由于地质条件相对稳定,地层顶底厚度比上地震波的传播时间为层速度,用 v n v_n vn​ 表示。 如下…