软件测试基础知识

软件测试基础

一、软件测试质量

在这里插入图片描述
软件研发过程中,通常定义了2个软件质量相关的角色:

  • QC就是测试人员,职责是尽可能早地发现软件的缺陷,并确保缺陷得到修复
  • QA是流程的监督者,职责是创建和执行 改进软件开发过程, 并防止软件缺陷发生的标准和方法

二、软件测试概念

  • 目的:发现bug、提高质量、降低成本
  • 概念:在规定的条件下对程序进行操作, 以发现错误,对软件质量进行评估。

三、软件测试原则

  • 所有的软件测试都应追溯到用户需求
  • 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭
  • 完全测试是不可能的,测试需要终止
  • 测试无法显示软件潜在的缺陷
  • 充分注意测试中的群集现象
  • 开发工程师应避免测试自己的程序
  • 尽量避免测试的随意性
  • 测试的抗药性

四、软件测试对象(重要)

  • 软件包括程序、数据、文档,所以软件测试应该贯穿于 整个软件生命周期中
  • 在整个软件生命周期中,各阶段又有不同的测试对象, 形成了不同开发阶段的不同类型的测试

五、软件测试分类

在这里插入图片描述

1.按阶段划分

(1)单元测试
  • 单元测试又称为模块测试,是针对程序的一种测。
  • 在实际中,很多的单元测试工作都是程序员在做。
  • 实际意义:一开始并不把程序作为一个整体来测,而首先 集中测试最小单元,这样能尽早的发现问题,解决问题。
  • 实际演示一个单元测试例子。
(2)集成测试
  • 时常有这样的情况发生,每个模块都能单独工作,但是将这些 模块组装起来之后却不能正常工作。
  • A程序员写了代码,这些代码的功能提供给B程序员调用,但是 由于A和B之间在方法的命名,大小写等问题上不一致,所以根 本无法让A的数据给B用。
  • 集成测试又称为接口测试,是针对程序接口的一种测试。 接口:模块与模块之间的耦合。
  • 在实际中,很多的集成测试工作都是程序员在做。
  • 实际意义:单元测试做完后,方法已经没有问题了,局部 不出问题了,程序员之间的各个功能整合起来,集中测试, 要保证整合后的代码和代码实现的功能完全对接,没有问题。 因此集成测试就显得非常有必要。
(3)确认测试
  • 确认测试:对照软件需求规格说明,对软件产品进行评估以 确定其是否满足需求的过程。主要是对软件需求满足程度的一 种评价和评估。
  • 经过确认测试,应该得出的评价无非2种情况:
    ① 经过检验,软件功能、性能及其他方面的要求都已满足 软件需求规格说明的规定,是一个合格的软件。
    ② 经过检验,发现与软件需求规格说明书有相当的偏离, 得到了一个缺陷清单,这就需要开发部分和用户进行协 调,找出解决的办法。
  • 实际工作中,很多公司都不做确认测试,直接从集成测试跳 到系统测试,即集成完成后,马上开始系统测试。
(4)系统测试
  • 系统测试是针对整个产品系统进行的测试,目的是验证系 统是否满足了需求规格的定义,找出与需求规格不符或与之 矛盾的地方,从而提出更加完善的方案。
  • 将已经确认的软件、计算机硬件、外设、网络等其他元素 结合在一起,进行信息系统的各种组装测试和确认测试。
  • 对象不仅仅包括需测试的软件,还要包含软件所依赖的硬 件、外设甚至包括某些数据、某些支持软件及其接口等
  • 系统测试范围:功能、性能、界面、强度、容量、安全性、 配置、安装、卸载、数据库等
(5)验收测试
  • 验收测试:可以类比为建筑的使用者对建筑进行的检测。
    产品:以公司调查研为主 (一直研发下去)
    项目:以客户需求为主 (一般都是一次性投入软多)-UAT
  • 验收形式:
    ① Alpha: Alpha测试是在用户组织模拟软件系统的运行环 境下的一种验收测试,由用户或第三方测试公司进行的 测试,模拟各类用户行为对即将面市的软件产品进行测 试,试图发现并修改错误。
    ② Beta:Beta测试是用户公司组织各方面的典型终端用户在 日常工作中实际使用beta版本,并要求用户报告异常情 况,提出批评意见。
  • 实际过程中:初验、终验
    在这里插入图片描述

2.按是否运行程序划分

3.按是否查看代码划分

  • 静态测试:不运行被测试的软件,而只是静态的检查代码、界面或者文档。
  • 动态测试:实际运行被测试的软件,输入相应的测试数据,检查实际的输 出结果是否和预期结果相一致的过程。
    在这里插入图片描述

4.其他划分

  • 黑盒测试:把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明。
  • 白盒测试:又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。
  • 灰盒测试:介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部 逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的 测试技术。
  • 回归测试:
    ①测试新建bug,开发修改后将状态修改为“已修改”后通知测试进行验证,此 时测试人员所进行的测试称为回归测试。
    ②当测试回归后没有问题,但所测试的功能和其他模块或功能有一定的关系 (如数据有交叉和公式计算等),这时测试人员要针对这个部分再次测试, 保证不会因为修改了这个bug而导致新bug的产生(开发在修改代码或注释时 容易注释错),此时测试人员所进行的测试也称为回归测试。
    ③当项目(或模块和功能)快上线,测试经理会通知测试人员再把所有功能测 试一次,保证上线后不会出问题,此时测试人员所进行的测试称为回归测试。
    在这里插入图片描述
  • 冒烟测试(BVT测试(Build Verification Test ))
    ①发布一个版本时,先对该版本进行最基本功能的测试,用以确认该版本基 本功能正常后再开展进一步的测试工作;如基本功能不通过,打回给开发, 直到冒烟通过
    ②只有公司需要时才冒烟,并不是任何时候都冒烟,因为实际工作中项目往 往比较紧
    ③部分公司是让开发做冒烟,会给开发提供一个checklist
  • 随机测试(又名猴子测试-预测试)
    随机选择测试数据做测试,主要根据经验进行功能和性能等抽查
  • 敏捷测试(敏捷开发引发)
    敏捷最大特点是高度迭代,有周期性,并且能够及时、持续 地响应客户的频繁反馈。简单点理解:天下武功,唯快不破。

六、软件测试风险

1.软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件 测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、 估计和评价的过程。

2.风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等

  • 变更风险:进行评审需求是否可以修改
  • 人员风险:各项目调动人员
  • 进度风险:加班,加配人员
  • 质量风险:再次评审成本预算

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

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

相关文章

STARTRADER星迈:银和铜的未来前景,是否即将迎来历史新高?

随着全球经济的复苏和技术进步的加速,大宗商品市场特别是金属市场近年来表现出强劲的动态。2024年,包括白银和铜在内的大宗商品价格已连续创下多年和历史新高,被分析师誉为可能是大宗商品交易史上赚钱的一年。本文将STARTRADER外汇深入探讨白…

Chromium 开发指南2024 Mac篇-编译前的准备工作(一)

1.引言 Chromium 是一款开源的网页浏览器项目,作为 Google Chrome 浏览器的基础,其卓越的性能和广泛的应用使其成为众多开发者研究和学习的对象。对于希望深入了解浏览器内核,或是计划在 Chromium 基础上开发自定义浏览器的开发者来说&#…

在Tomcat中部署war包

1、准备war包 确保已经有一个有效的war包,该war包包含了web应用程序的所有内容; 2、停止tomcat服务器 在部署之前,确保tomcat服务器已经停止,进入tomcat的配置目录执行命令:[路径]/tomcat/conf; 在Linux…

EXCEL表格怎么批量删除日期后的时间?

竞价师最近有点忙了,因为百度新出来一个“线索有效性诊断”功能 一、下载电话、表单、咨询表格 二、选中整列 三、选中ctrlf 进行替换,日期输入空格,时间输入*,替换为空即可! 四、整列单元格格式“日期”拉倒底部&…

线上OOM问题排查总结

自己搭建了一个小博客,该文章与博客文章同步。 一般情况下,出现OOM主要有一下三种原因。 一次性申请对象的太多。更改申请对象数量。内存资源耗尽未释放。找到未释放的对象进行释放。本身资源不够。jmap -heap 查看堆信息。 分几种情况解决&#xff1…

css文字镂空加描边

css文字镂空加描边 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>文字镂空</title><style>/* 公用样式 */html,body{width: 100%;height: 100%;position: relative;}/* html{overflow-y: scroll;} */*{margi…

C# 中的 StreamReader 和 StreamWriter 类

在这里插入代码片StreamReader 和 StreamWriter 位于 System.IO 命名空间中。当您想要读取或写入基于字符的数据时&#xff0c;这两个类都很有用。这两个类都处理 Unicode 字符。 StreamReader 派生自抽象类“TextReader”&#xff0c;StreamWriter 派生自“TextWriter”。 下…

爆火的儿童绘本如何用AI制作?一文解锁从制作到变现的全流程!

大家好我是安琪&#xff01; AI绘图发展势头如此猛烈&#xff0c;无论是Stable Diffusion&#xff0c;Midjourney&#xff0c;还是国内百度的文心一格&#xff0c;字节的豆包等&#xff0c;AI绘图技术越来越成熟&#xff0c;风格也越来越多样化。那么问题来了&#xff0c;对于普…

Linux企业 集群批量管理-秘钥认证

集群批量管理-秘钥认证 概述 管理更加轻松&#xff1a;两个节点&#xff0c;通过秘钥认证形成进行访问&#xff0c;不需要输入密码&#xff0c;单向服务要求&#xff08;应用场景&#xff09;&#xff1a; 一些服务在使用前要求我们做秘钥认证 手动写批量管理脚本名字&#x…

MySQL锁、加锁机制(超详细)—— 锁分类、全局锁、共享锁、排他锁;表锁、元数据锁、意向锁;行锁、间隙锁、临键锁;乐观锁、悲观锁

文章目录 一、概述1.1 MySQL锁的由来1.2 锁定义1.3 锁分类 二、共享锁与排他锁2.1 共享锁&#xff08;S锁&#xff09;2.2 排他锁&#xff08;X锁&#xff09;2.3 MySQL锁的释放 三、全局锁3.1 介绍3.2 语法3.3 特点 四、表级锁4.1 介绍4.2 表锁4.3 元数据锁&#xff08;Meta D…

auto_undercoat:可编辑 PSD 自动上色工具

现有的自动上色和 AI 上色只能输出单图&#xff0c;想要优化或微调的话很不方便&#xff0c;auto_undercoat 实现了通过提示词上色后&#xff0c;可以生成一个 PSD 文件在 PhotoShop 中继续编辑&#xff0c;大大提升了 AI 上色可用性&#xff01;

【路由交换技术】Cisco Packet Tracer基础入门教程(四)

Hello各位&#xff0c;好久不见&#xff0c;第四期我准备讲一下Packet Tracer中DHCP的配置&#xff0c;使用方法。 本章实验我们将拓扑中的某个路由器作为DHCP服务器&#xff08;它仍然可作为路由器使用&#xff09;&#xff0c;通过命令配置DHCP服务。独立的服务器可通过图形化…

【2024.6.23】今日科技时事:科技前沿大事件

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

麦肯锡:量子传感究竟在何处可以发光发热

量子传感技术已经提供价值&#xff0c;潜在的应用案例可以塑造多个行业。有四种核心技术具有应用前景&#xff1a;固态自旋、中性原子、超导电路和离子阱&#xff0c;它们具有在广泛的物理属性上的传感能力&#xff0c;包括磁场、电场、旋转、温度、重力、时间和压力。选择哪种…

人脸处理——人脸换脸基础算法探索与应用测试指南

人工智能&#xff08;AI&#xff09;彻底改变了我们生活的许多方面&#xff0c;而这项技术的应用之一就是AI换脸工具。这些工具使用先进的计算机视觉技术和深度学习算法&#xff0c;例如生成对抗网络 (GAN)&#xff0c;在照片或视频中将一个人的脸与另一个人的脸交换。 1. Dee…

HarmonyOS Next开发学习手册——ExtensionAbility

概述 EmbeddedUIExtensionAbility 是EMBEDDED_UI类型的ExtensionAbility组件&#xff0c;提供了跨进程界面嵌入的能力。 EmbeddedUIExtensionAbility需要和 EmbeddedComponent 一起配合使用&#xff0c;开发者可以在UIAbility的页面中通过EmbeddedComponent嵌入本应用的Embed…

短信平台是否支持接收回复信息?详细解答与操作指南

在数字化营销的浪潮中&#xff0c;短信平台成为商家和企业与客户沟通的重要桥梁。当涉及到客户反馈或交互时&#xff0c;很多商家和企业都会关心一个问题&#xff1a;短信平台是否支持接收回复信息&#xff1f;接下来&#xff0c;我们将详细解答这一问题&#xff0c;并提供操作…

如何在linux中下载R或者更新R

一、问题阐述 package ‘Seurat’ was built under R version 4.3.3Loading required package: SeuratObject Error: This is R 4.0.4, package ‘SeuratObject’ needs > 4.1.0 当你在rstudio中出现这样的报错时&#xff0c;意味着你需要更新你的R 的版本了。 二、解决方…

langchain教程-(1)Prompt模板

LangChain 的核心组件 模型 I/O 封装 LLMs&#xff1a;大语言模型Chat Models&#xff1a;一般基于 LLMs&#xff0c;但按对话结构重新封装PromptTemple&#xff1a;提示词模板OutputParser&#xff1a;解析输出 数据连接封装 Document Loaders&#xff1a;各种格式文件的加载…

linux中的调试工具gdb

目录 1.背景知识补充 2.使用 知识补充 1.背景知识补充 1.gcc下编译默认是release方式发布的&#xff0c;无法直接进行调试 如果要以debug方式发布&#xff0c;需要携带-g 可以使用grep查询 因为携带debug信息&#xff0c;其文件体积要大一些 2.使用 1.gdb 可执行程序 …