软件测试期末复习

news2024/10/7 11:51:42

软件测试期末复习

@Author 雨

2024年6月18日

在这里插入图片描述

1. 什么是软件测试

从一个通常为无限的执行域中选取合适的有限的测试用例,对程序所期望的行为进行动态验证的活动过程。

2. 软件测试的目的

尽早地发现软件的缺陷

3.什么是测试什么是缺陷

从软件内部看:软件开发或维护过程中存在的错误等问题

从软件外部看:软件所需要实现的某种功能失效

软件危机:

  • 软件无法按预期时间内完成
  • 软件的质量难以控制
  • 软件的维护更加看困难
  • 软件成本超出预算

4. 软件测试的分类

① 静态测试和动态测试

静态(白盒)测试:不运行程序,检查代码(走查、复审、评审)

动态(白盒)测试:运行程序,分析程序代码,设计测试用例,通过驱动程序和桩程序调用被测程序运行

静态(黑盒)测试:需求文档、规格说明书的审查

动态(黑盒)测试:数据驱动,从用户角度验证系统的功能

动态测试的步骤:分析代码—>设计测试用例---->写驱动程序、桩程序、被测对象

测试用例:输入(被测对象 + 驱动程序 + 桩程序)==》结果

驱动程序:调用被测对象的程序

桩程序:被测对象调用的程序

② 主动测试和被动测试

主动测试:测试人员主动向被测对象发送请求、数据等驱动被测对象执行某一行为,从而验证被测对象的反应或输出结果。(需要测试人员设计测试用例,尽力输入各种数据)

被动测试:测试人员不干预被测对象运行,被动的监控产品在实际环境中运行,通过一定的被动机制获取系统的运行数据。(测试人员不需要设计测试用例,只要设法获取系统运行数据,但获得的数据完整性得不到保障)

③ 黑盒测试和白盒测试

黑盒测试

特征:只验证输入和输出之间的关系是否正确,不考虑程序内部结构和特征

目标:测试程序的功能或接口

等价类划分

  • 有效等价类
  • 无效等价类

边界值分析

因果图

判定表

判定树

白盒测试

特征:清楚内部结构,内部特征,内部工作过程

目标:源代码

基本思想:内部结构、覆盖要求

测试方法:逻辑覆盖/路径覆盖

覆盖:分为逻辑覆盖和路径覆盖

逻辑覆盖:

  • 语句覆盖:每个语句至少执行一次
  • 判定覆盖:每个判定的真和假都至少执行一次(每个菱形框的真和假都会发生)
  • 条件覆盖:每个菱形框里面的真假都至少出现一次
  • 判定/条件覆盖:每个菱形框里地真假都至少出现一次,且每个判定的真假也至少出现一次
  • 条件组合覆盖:每个菱形框内每个条件每种组合都至少出现一次

路径覆盖:

​ 环路复杂度计算: 围成区域数量

​ 判定数 + 1

​ 边 - 节点 + 2

​ 基本路径组:从起点到终点,路径数等于环路复杂度

5.基于场景设计测试用例

6. 基本测试,过程、方法、描述、比较

7. 什么是自动化测试

由测试工具自动地逐个运行测试用例

8. 单元测试、集成测试、系统测试、验收测试(什么是,整个流程)

  • 单元测试:编码阶段对每个程序单元进行测试(类、方法、接口),测试方法:白盒测试方法
  • 集成测试:在单元测试基础之上,对不同模块按要求组装,主要用于发现模块间的接口问题。
    • 分为一次性集成和渐增性集成
    • 一次性集成:用例少,测试快,定位难,调试难
  • 系统功能测试:集成测试完毕后,根据需求说明书,从用户角度对系统功能进行测试。
  • 验收测试:验证系统的功能和性能满足用户期待
    • α测试:公司内人员使用
    • β测试:公司外部人员使用,将使用情况反馈给公司

软件测试过程分为:工程过程和管理过程

工程过程:需求评审、设计评审、单元测试、集成测试、系统测试、验收测试
管理过程:计划、设计、执行


测试和调试的区别:测试:发现错误。调试:已知错误,寻找引起错误的原因,并修正。

9.系统测试

  • 功能测试

    功能测试以用户需求为导向

    功能测试主要测试:界面、数据、操作、逻辑、接口等

    • 界面清晰美观、

    • 能接收正确数据输入,对于异常输入有一定容错性

    • 逻辑清晰,符合使用者习惯

    • 对外部的系统接口稳定有效

    • 菜单、按钮等各种操作正常,能处理一些异常操作

    常用测试方法有:

    • 像一般用户一样测试:模拟一般用户的使用进行测试
    • 像业务人员一样测试:按照业务流程等进行测试
    • 更加专业的测试:
      • 扮演用户做测试:
      • 基于用例的测试:从实际业务触发,分析、不同用户使用系统的范围和特点确定用户在特定业务上的操作过程
      • 基于用例/场景的测试:分析不同场景下的业务特点进行测试。
      • 基于需求的测试(按照需求说明文档进行测试)
  • 回归测试

    为了发现回归缺陷的测试

  • 性能测试

  • 其他非功能测试:安全测试、兼容性测试、可靠性测试、容错性测试。。。

10.集成测试几种模式,有什么差别

集成测试分为一次性集成和渐增式集成

一次性集成:

先使用单元测试测试所有子模块,然后一次性将所有子模块集成到系统中进行测试。
优点:可以全面验证系统的完整性和功能,效率较高
缺点:缺点是难以定位问题,风险高,可能会导致集成冲突。

渐增式集成:

渐增式集成: 每次只集成少量组件或模块,逐步扩大集成范围。
优点:优点是问题定位容易,风险分散,可以在早期发现潜在问题,有助于及早解决问题,减少后期成本。
缺点:点是集成时间长,集成测试难度高,集成过程复杂。

渐增式集成分类:

  • 自顶向下:顶层问题发现早,需要桩
  • 自底向上:底层问题发现早,需要驱动
  • 混合模式(三明治):较上层自顶向下,较下层,自底向上

11. 什么是性能测试,目的,什么是性能,如何体现性能

什么是性能测试?为了发现系统性能问题或获取系统性能指标而进行的测试。

性能测试目标?

  • 获取系统性能指标数据
  • 验证系统是否达到用户提出的性能指标
  • 发现系统瓶颈,优化系统性能

什么是性能?性能通常指系统在特定条件下的表现

系统的性能包括两方面:

系统资源使用率(CPU、内存):资源使用率越低,系统性能越好

系统行为表现:

  1. 请求响应时间:从提交一个请求,到收到响应之间的时间间隔
  2. 事务响应时间:事务由一系列请求组成,这些请求完成所需要花费的时间称为系统响应时间
  3. 数据吞吐量:单位时间内,客户端和服务器之间网络上传输数据的吞吐量

如何体现性能?

压力测试:长时间超大负荷运行,测试程序稳定性

负载测试:反常情况下的测试,找出性能瓶颈或不稳定性问题。

12. 如何做功能测试

功能测试以用户需求为导向

功能测试主要测试:界面、数据、操作、逻辑、接口等

  • 界面清晰美观、

  • 能接收正确数据输入,对于异常输入有一定容错性

  • 逻辑清晰,符合使用者习惯

  • 对外部的系统接口稳定有效

  • 菜单、按钮等各种操作正常,能处理一些异常操作

常用测试方法有:

  • 像一般用户一样测试:模拟一般用户的使用进行测试

  • 像业务人员一样测试:按照业务流程等进行测试

  • 更加专业的测试:

    • 扮演用户做测试:
    • 基于用例的测试:从实际业务触发,分析、不同用户使用系统的范围和特点确定用户在特定业务上的操作过程
    • 基于用例/场景的测试:分析不同场景下的业务特点进行测试。
    • 基于需求的测试(按照需求说明文档进行测试)
  • 对外部的系统接口稳定有效

  • 菜单、按钮等各种操作正常,能处理一些异常操作

常用测试方法有:

  • 像一般用户一样测试:模拟一般用户的使用进行测试
  • 像业务人员一样测试:按照业务流程等进行测试
  • 更加专业的测试:
    • 扮演用户做测试:
    • 基于用例的测试:从实际业务触发,分析、不同用户使用系统的范围和特点确定用户在特定业务上的操作过程
    • 基于用例/场景的测试:分析不同场景下的业务特点进行测试。
    • 基于需求的测试(按照需求说明文档进行测试)

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

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

相关文章

在 Stable Diffusion 中控制光线的三种方式

光线在摄影中扮演着至关重要的角色,并对图像的整体质量和意境产生重要影响。你可以利用光线来增强主题,创造深度和立体感,传达情感,并突出重要细节。 在本文中,你将了解通过以下方法来控制光线: 光线提示…

【推荐100个unity插件之21】unity实现多语言切换功能——Localization插件的使用

文章目录 前言优缺点优点缺点 安装创建配置选择语言选择默认语言创建多语言表数据创建key配置不同语言文本预加载绑定不同多语言文本数据,并显示语言切换自己编写按钮控制语言切换多语言图片切换在构建中使用Localization分析错误修复动态修改多语言文本内容参考推荐…

高考后的抉择:如何在心仪专业与知名学校之间做出选择?

目录 前言1. 专业选择的深度探讨1.1 专业的优势与挑战1.1.1 课程学习1.1.2 就业前景 1.2 专业选择的个人经验与思考 2. 名校对个人发展的长短期影响2.1 名校声誉的品牌效应2.1.1 职业发展2.1.2 社会认可度 2.2 教育资源与学术氛围2.2.1 教育资源2.2.2 学术氛围 2.3 就业优势 3.…

【2024最新精简版】RabbitMQ面试篇

文章目录 Kafka和RabbitMQ什么区别惰性队列(Lazy Queues)是怎么实现的?RabbitMQ工作模式有哪些 ?你们项目中哪里用到了RabbitMQ ?为什么会选择使用RabbitMQ ? 有什么好处 ?使用RabbitMQ如何保证消息不丢失 ?消息的重复消费问题如何解决的…

3.1、前端异步编程(超详细手写实现Promise;实现all、race、allSettled、any;async/await的使用)

前端异步编程规范 Promise介绍手写Promise(resolve,reject)手写Promise(then)Promise相关 API实现allraceallSettledany async/await和Promise的关系async/await的使用 Promise介绍 Promise是一个类,可以翻…

Spring技术——介绍、初识

从这篇博客正式开始学习 Spring 。 一、整个Spring技术学习的介绍 首先先对 Spring 做一个简单的认识,并从以下3个方面了解学习Spring 技术的意义: (1)为什么要学习 Spring 技术? 1、它的市场的占有率很高&#xff…

webpack 压缩图片

压缩前: 压缩后: 压缩后基本上是压缩了70-80%左右 1.依赖版本及配置 "imagemin-webpack-plugin": "^2.4.2", "imagemin-mozjpeg": "^7.0.0", "imagemin-pngquant": "^5.0.1", "webpa…

ClickHouse安装与下载22.3.2.2

ClickHouse安装与下载 目录 1. ClickHouse简介 1.1 ClickHouse优点: 1.2 ClickHouse缺点: 1.3 ClickHouse引擎: 1.3.1 数据库引擎 1.3.2 表引擎 2. ClickHouse下载安装 2.1 ClickHouse下载安装 2.2 ClickHouse使用 1. ClickHouse简…

五要素便携式气象站

TH-BQX5自然灾害,如暴雨、洪水、飓风等,对于人类生活的影响和威胁始终不可忽视。在应对自然灾害的过程中,提高应急响应和预警能力成为了一项迫切而重要的任务。近年来,五要素便携式气象站因其便捷、精准的特点,在自然灾…

大数据技术与实践学习

大数据技术与实践期末复习 生态系统 每一张图片都值得思考,理清楚到底是什么! 1.结构化数据(数据库里面的):Sqoop(效率比较慢/隔一段时间抽取一次) 2.半结构化或者非结构化数据:F…

Coursera耶鲁大学金融课程:Financial Markets 笔记Week 02

Financial Markets 本文是学习 https://www.coursera.org/learn/financial-markets-global这门课的学习笔记 这门课的老师是耶鲁大学的Robert Shiller https://en.wikipedia.org/wiki/Robert_J._Shiller Robert James Shiller (born March 29, 1946)[4] is an American econom…

细说MCU通过定时器输出PWM波形的实现方法

目录 一、硬件及工程 二、建立工程 三、代码修改 1、重定义回调函数 2、启动定时器中断 四、下载运行 一、硬件及工程 文章依赖的硬件及工程配置参考本文作者的其他文章:细说ARM MCU的串口接收数据的实现过程-CSDN博客 细说ARM MCU的串口接收数据的实现过程-C…

Matlab基础语法:变量和数据类型,基本运算,矩阵和向量,常用函数,脚本文件

目录 一、变量和数据类型 二、基本运算 三、矩阵和向量 四、常用函数 五、脚本文件 六、总结 一、变量和数据类型 Matlab 支持多种数据类型,包括数值类型、字符类型和逻辑类型。掌握这些基本的变量和数据类型,是我们进行数学建模和计算的基础。 数…

IT入门知识第三部分《软件开发》(3/10)

目录 IT入门知识大纲第三部分《软件开发》 1. 软件开发生命周期(SDLC) 1.1 需求分析 1.2 软件设计 1.3 程序编码 1.4 软件测试 1.5 项目部署 1.6 运行维护 2. 软件开发方法论 2.1 瀑布模型 2.2 敏捷开发 2.2.1 Scrum 2.2.2 Kanban 2.3 Dev…

ip地址b类和c类的区别是什么?体现在哪里

在数字化时代的浪潮中,IP地址扮演着不可或缺的角色。它们不仅是设备在网络中的唯一标识,更是网络连接和信息传输的基石。然而,对于非专业人士来说,IP地址的复杂分类可能会显得有些晦涩难懂。今天,我们就来深入探索IP地…

C#语言中的Async/await最佳实践

自从 C# 5 中引入 async/await 以来,开发人员之间一直对 async/await 关键字的最佳实践以及幕后实际发生的事情感到困惑。 让我们先从基础开始。 在 Windows 窗体的早期,UI 延迟与 I/O 操作所花费的时间成正比。这意味着,如果您尝试将数据保…

【ONE·基础算法 || 记忆化搜索】

总言 主要内容:编程题举例,熟悉理解记忆化搜索类题型(对比递归、动态规划理解运用)。             文章目录 总言1、记忆化搜索1.1、基本介绍1.2、细节理解(记忆搜索化、递归、动态规划……) 2、斐…

如何通过小猪APP分发轻松实现Web封装APP

你有没有想过将你的网站或者Web应用变成一个真正的APP?这听起来可能有点复杂,但其实在今天的技术环境下,这已经变得非常简单了。特别是有了像小猪APP分发这样的工具,你可以轻松地将你的Web应用封装成一个APP。 为什么要将Web应用封…

Java学习55-super关键字的使用

1.举例1:子类继承父类以后,对父类方法进行了重写,那么在子类中,是否还可以对父类中被重写的方法进行调用? 可以! 举例2:子类继承父类以后,发现子类和父类中定义了同名的属性&#xf…

示例:WPF中在没有MouseDoubleClick的控件中如何识别双击

一、目的&#xff1a;由于MouseDoubleClick控件是在Control中实现&#xff0c;那么在底层控件如Grid中想要类似功能如何实现&#xff0c;这里通过MouseDown的事MouseButtonEventArgs参数去实现 二、实现 定义Grid并注册Grid的MouseDown事件 <Grid Background"Transpa…