软件测试期末复习

软件测试期末复习

@Author 雨

2024年6月18日

在这里插入图片描述

1. 什么是软件测试

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

2. 软件测试的目的

尽早地发现软件的缺陷

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

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

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

软件危机:

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

4. 软件测试的分类

① 静态测试和动态测试

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

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

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

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

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

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

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

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

② 主动测试和被动测试

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

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

③ 黑盒测试和白盒测试

黑盒测试

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

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

等价类划分

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

边界值分析

因果图

判定表

判定树

白盒测试

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

目标:源代码

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

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

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

逻辑覆盖:

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

路径覆盖:

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

​ 判定数 + 1

​ 边 - 节点 + 2

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

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

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

7. 什么是自动化测试

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

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

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

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

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


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

9.系统测试

  • 功能测试

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

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

    • 界面清晰美观、

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

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

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

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

    常用测试方法有:

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

    为了发现回归缺陷的测试

  • 性能测试

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

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

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

一次性集成:

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

渐增式集成:

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

渐增式集成分类:

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

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

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

性能测试目标?

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

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

系统的性能包括两方面:

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

系统行为表现:

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

如何体现性能?

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

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

12. 如何做功能测试

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

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

  • 界面清晰美观、

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

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

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

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

常用测试方法有:

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

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

  • 更加专业的测试:

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

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

常用测试方法有:

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

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

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

相关文章

SpringCloudStream原理和深入使用

简单概述 Spring Cloud Stream是一个用于构建与共享消息传递系统连接的高度可扩展的事件驱动型微服务的框架。 应用程序通过inputs或outputs来与Spring Cloud Stream中binder对象交互,binder对象负责与消息中间件交互。也就是说:Spring Cloud Stream能…

探索Web Components

title: 探索Web Components date: 2024/6/16 updated: 2024/6/16 author: cmdragon excerpt: 这篇文章介绍了Web Components技术,它允许开发者创建可复用、封装良好的自定义HTML元素,并直接在浏览器中运行,无需依赖外部库。通过组合HTML模…

多尺度特征提取:原理、应用与挑战

多尺度 多尺度特征提取:原理、应用与挑战**原理****应用****挑战****总结** 多尺度特征提取:原理、应用与挑战 在计算机视觉、自然语言处理和信号处理等领域,有效地捕捉和解析数据的多种尺度特性是至关重要的。多尺度特征提取是一种技术&…

【机器学习】智能创意工厂:机器学习驱动的AIGC,打造未来内容新生态

🚀时空传送门 🔍机器学习在AIGC中的核心技术📕深度学习🎈生成对抗网络(GANs) 🚀机器学习在AIGC中的具体应用🍀图像生成与编辑⭐文本生成与对话系统🌠音频生成与语音合成 …

SpringMVC01-初始SpringMVC

SpringMVC 回顾MVC 什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模…

高通Android 12 右边导航栏改成底部显示

最近同事说需要修改右边导航栏到底部,问怎么搞?然后看下源码尝试下。 1、Android 12修改代码路径 frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java a/frameworks/base/services/core/java/com/android/server/wm/Display…

【LeetCode:2786. 访问数组中的位置使分数最大 + 递归 + 记忆化缓存 + dp】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

电感的本质是什么

什么是电感? 电感器件一般是指螺线圈,由导线圈一圈靠一圈地绕在绝缘管上,绝缘管可以是空心的,也可以包含铁芯或磁粉芯。 为什么把’线’绕成’圈’就是电感? 电感的工作原理非常抽象,为了解释什么是电感…

IntelliJ IDEA 使用 Maven 时不加载本地私服的最新版本快照(snapshot)JAR 包

IntelliJ IDEA 使用 Maven 时不加载本地私服的最新版本快照(snapshot)JAR 包 目录 IntelliJ IDEA 使用 Maven 时不加载本地私服的最新版本快照(snapshot)JAR 包1. 检查 settings.xml2. IDEA Maven 配置3. 强制更新 Snapshot4. 使用…

使用 C# 学习面向对象编程:第 8 部分

抽象方法 亲爱的读者,本文是 OOP 的第四大支柱,也是最后一大支柱。对于 OOP 初学者来说,这很容易让人困惑。因此,我们用非常简单的语言提供了一个示例。 “抽象用于管理复杂性。无法创建抽象类的对象。抽象类用于继承。” 例如…

端口映射工具下载?

天联是一款强大的端口映射工具,它能够帮助用户实现远程数据采集管理、异地统一管理、随时随地协同办公等多种场景的应用。无论您是医药、餐饮、商超等零售行业的企业,还是需要使用OA、CRM、ERP、财务进销存等系统的企业,甚至是使用视频监控设…

Python自动化测试面试题精选(一)

今天大家介绍一些Python自动化测试中常见的面试题,涵盖了Python基础、测试框架、测试工具、测试方法等方面的内容,希望能够帮助你提升自己的水平和信心。 项目相关 什么项目适合做自动化测试? 答:一般来说,适合做自…

前端菜鸡流水账日记 -- git管理工具(多版本)

哈喽哇,我又又又来了,其实之前就挺想进行一篇关于git管理工具的分享的,但是一直都没有来的及,直到今天,在学习的时候,,一个朋友新发现了一个vscode中的小插件,所以我就决定一起来分享…

Github入门教程,适合新手学习(非常详细)

前言:本篇博客为手把手教学的 Github 代码管理教程,属于新手入门级别的难度。教程简单易操作,能够基本满足读者朋友日常项目寄托于 Github 平台上进行代码管理的需求。Git 与 Github 是一名合格程序员 coder 必定会接触到的工具与平台&#x…

React+TS前台项目实战(十)-- 全局常用组件CopyText封装

文章目录 前言CopyText组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲项目常用复制文本组件封装,这个组件是一个用于拷贝文本的 React 组件,它提供了拷贝,国际化和消息提示的功能 CopyText组件 1. 功能分…

linux远程访问及控制

补充: 终端:接收用户的指令 TTY终端 虚拟终端 ssh:22端口号,加密。 telnet:23端口号,不加密。 解释器:shell SSH 远程管理 SSH(Secure Shell)是一种安全通道协议&#xff0c…

012.指纹浏览器编译-修改canvas指纹(高级)

指纹浏览器编译-修改canvas指纹(高级) 一、canvas指纹是什么 之前介绍过canvas指纹和常见网站绕过canvas指纹,插眼: https://blog.csdn.net/w1101662433/article/details/137959179 二、为啥有更高级的canvas指纹 众所周知,creepjs和brow…

利用CUDA加速卷积计算:原理、实践与示例代码

利用CUDA加速卷积计算:原理、实践与示例代码 在深度学习领域,卷积神经网络(Convolutional Neural Networks,CNN)是目前最流行和有效的模型之一。然而,随着模型复杂度的增加,卷积计算的计算量也随之增加,这使得在CPU上进行卷积计算变得非常耗时。因此,利用CUDA加速卷积…

我在高职教STM32——GPIO入门之蜂鸣器

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就…

6.17 作业

使用qt实现优化自己的登录界面 要求: 1. qss实现 2. 需要有图层的叠加 (QFrame) 3. 设置纯净窗口后,有关闭等窗口功能。 4. 如果账号密码正确,则实现登录界面关闭,另一个应用界面显示。 第一个源文件 …