软件测试复习

news2024/11/18 15:44:31

软件测试定义

  • 什么是软件测试
    • 使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
    • 软件测试就是“验证”和“确认”活动构成的整体。
  • 软件测试的作用
    • 验证软件需求和功能是否得到完整实现
    • 验证软件是否可以发布
    • 使用发现软件系统的缺陷、错误及不足
    • 获取软件产品的质量信息
    • 预防下一版本可能出现的问题
    • 发现开发过程中存在的问题和风险
    • 提供可以用以分析的测试结果数据

软件质量保证

  • 软件质量评价标准(从哪些方面评价)

    • 功能性
    • 性能
    • 兼容性
    • 配置性
    • 安全性
    • 健壮性
    • 界面
  • McCall 模型中产品运行(作业中的测试需求题目中列举的)

    • 给生活中任意的东西(生活用品 或软件)的功能描述,写出可以从哪些方面对软件质量进行测试
  • 测试不能保证软件质量(背)

    • 无法执行所有测试

    • 测试是有风险的工作

    • 测试这只能证明程序有错,不能证明程序正确

      软件测试只是质量保证活动中的一个重要环节,而不是唯一环节,提高软件质量不是依靠更多的测试,而是更好的开发

    考察方式:

    1. 软件测试能保证软件质量吗?
    2. xxx保证他测过的软件一定质量很高,不会有问题,这话对不对?

软件测试流程

  • 软件开发的每一阶段都要进行测试
    • 为什么要尽早地进行测试(掌握)
      • 降低项目后期发现严重甚至致命缺陷导致项目失败的风险
      • 降低由于发现缺陷的时间点推迟而导致缺陷修改所增加的项目成本
  • 软件测试有几个阶段(软件测试的流程)(背)
    • 计划阶段
    • 设计阶段
    • 开发阶段
    • 执行阶段
    • 评估阶段
  • 软件测试的级别(背)
    • 单元测试
    • 集成测试
    • 系统测试
    • 验收测试

软件测试的原则

  • 完全测试程序是不可能的

  • 软件测试是有风险的行为

    • good enough原则:权衡投入产出比
  • 软件测试无法显示潜伏的软件bug(只能证明有错,不能证明没错)

  • 并非所有bug都能修复(掌握)

    • 没有足够的时间
    • 不算真正的bug
    • 修复风险太大,可能导致其他bug
    • 不值得修复,不常用的功能,不常出现的bug。

    考察方式:

    1. 给定缺陷描述,问这个缺陷是否值得修改?(一般回答不值得)

    2. 某个企业的软件经常有很多缺陷没有修改,这种做法对不对?

      • good enough原则:满足用户需求

      • 并非所有bug都能修复

  • 什么时候停止测试(掌握)

    非技术:

    • 市场压力
    • 客户要求
    • 质量目标
    • 费用约束
    • 时间约束

    技术:

    • 执行了所有测试用例,没有发现缺陷
    • 利用缺陷发现率曲线判断

黑盒测试

  • 等价类法

    • 有效等价类
    • 无效等价类
  • 边界值法

  • 决策表法

    • 等价类和边界值分析法适合输入变量或输入条件相互独立的情况,但是当输入变量或输入条件相互依赖,相互制约的时候,采用等价类划分法和边界值分析方法是难以描述的,测试效果也很难保障

    • 例题:

      设计决策表

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a55eDLCg-1672319559793)(C:\Users\yujie\AppData\Roaming\Typora\typora-user-images\image-20221229004704376.png)]
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tNGWLH7w-1672319559794)(C:\Users\yujie\AppData\Roaming\Typora\typora-user-images\image-20221229005151572.png)]

      优化决策表

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LttR82fx-1672319559795)(C:\Users\yujie\AppData\Roaming\Typora\typora-user-images\image-20221229005127543.png)]

  • 例题:先从健壮性角度(边界值,等价类)。再从功能性角度(等价类)

白盒测试

  • 设计测试用例的依据
    • 程序内部结构
    • 一定的覆盖要求
  • 逻辑覆盖法(从弱到强)
    • 语句覆盖
    • 判定覆盖
    • 条件覆盖
    • 判定/条件覆盖
    • 条件组合覆盖
    • 路径覆盖

静态测试

  • 例题:给出测试检查点,指出下列代码存在什么隐患。

  • 常用的静态测试方法:

    评审方法:

    • 走查
    • 审查
    • 技术评审

    优点:

    • 达到尽早测试
    • 可以用来测文档
    • 效率最高,发现错误,当场修改
  • 数据流分析(掌握):在程序代码经过的路径上检查数据的用法。

单元测试

  • 单元测试的目标

    • 功能性测试
    • 健壮性测试
    • 检查对组件质量重大影响和不能在更高级别测试的非功能特性
  • 单元测试的主要任务(背)

    • 模块接口
    • 局部数据结构
      • 数据类型是否合适
      • 变量有无初始化
    • 路径测试
    • 边界条件
      • 检查对数组使用,是否下标越界
    • 出错处理
      • 文件打开:检查文件打开句柄是否为空
      • 申请内存:检查返回值对不对
  • 单元测试模型(掌握)

    考察方法:

    1. 语言描述整个模型
    2. 给定一个被测模块(一个函数),设计测试驱动的架构(被测模块中调用的函数用桩模块代替)

    • 驱动模块:驱动模块是模拟被测单元的上级模块,用于接收测试数据、启动被测模块和输出结果。
    • 桩模块:对顶层或上层模块进行测试时,所编制的替代下层模块的程序,用以模拟被测模块工作过程中所调用的模块。

集成测试

  • 集成测试的目标
    • 发现被集成单元间接口和相互之间的协作问题
  • 集成测试策略
    • 大爆炸集成(一次性集合)
      • 优点:节省时间
      • 缺点:桩和测试驱动器都需要
    • 自顶向下
      • 优点:不需要测试驱动,或者只需要简单的测试驱动
      • 缺点:没有集成的低级别的组件必须用桩代替,成泵较高
    • 自底向上
      • 优点:不需要桩
      • 缺点:必须用测试驱动器模拟更高级别的组件
    • 三明治集成(2和3合起来)
      • 优点:组件可以用任意的顺序集成
      • 缺点:需要一个详细分析的主干和中枢
  • 例题:给一个模块的结构图,从上往下用深度优先和广度优先方法写出集成测试过程。

系统测试—测试需求

  • (必考)给一个功能描述,从各个角度描述对该软件有哪些测试检查点,对该需求要做哪些系统测试方法。

    • 功能测试

    • 界面测试

      • 文字排列错误
      • 布局错误
      • 链接错误
    • 性能测试(广义)

      • 性能测试(响应速度)
      • 负载测试(并发)
      • 大数据量测试(大容量)
    • 兼容性测试

    • 健壮性测试

    • 安全性测试(是否sql注入,url重放)

    • 配置测试(程序运行的软硬件平台)

  • 测试组织架构(掌握)

    • 开发团队开发人员负责测试(只需要知道优点)
      • 优点:开发人员对代码更熟悉,测试效率最高,适合开发节奏快,迭代快的项目
      • 缺点:开发人员测试经验不足
    • 开发团队中有专门测试人员
      • 优点:测试周期短,测试快,开发与测试不存在时间差,开发人员与测试人员沟通方便
      • 缺点:测试人员容易受打击
    • 独立的测试团队
      • 优点:测试很专业,测试经验丰富,开发人员专职开发,开发效率高
      • 缺点:测试人员和开发人员的沟通不方便,开发与测试之间存在时间差,错误反馈不便

    考察方式:

    1. 选择题
    2. 给一个开发现状,对这种开发现状选择哪种模式合适 (根据开发现状 结合 各种架构的优缺点选择一个合适的方法,并给出一两句话的解释说明为什么选这种方法)
  • 测试优先级(掌握)

    • 为什么要划分测试优先级

      • 测试时间和资源有限,可能无法执行所有测试用例
      • 首先执行最重要的测试用例,尽可能早的发现重要的和尽量多的缺陷
      • 即视测试过早结束,仍然能够保证在该时刻的测试能达到最佳效果

      考察方式:

      ​ 1. 按测试优先级排列各个功能模块的测试顺序

缺陷管理

  • 什么是缺陷

    • 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
    • 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
  • 严重性与优先级

    • 严重性:缺陷对软件产品使用的影响程度

      • 致命

      • 严重

      • 一般

      • 较小

    • 优先级:缺陷必须被修复的紧急程度

      • 立即解决

      • 高优先级

      • 正常排队

      • 低优先级

    • 缺陷越严重,越要优先得到修正,缺陷严重等级和缺陷优先级相关性很强

    • 缺陷的严重性和优先级的关系 (掌握)

      • 一般地,严重性程度高的软件缺陷具有较高的优先级。严重性高说明缺陷对软件造成的质量危害性大,需要优先处理,而严重性低的缺陷可能只是软件不太尽善尽美,可以稍后处理。 但是,严重性和优先级并不总是一一对应。有时候严重性高的软件缺陷,优先级不一定高,甚至不需要处理,例如:有些缺陷比较严重,而一些严重性低的缺陷却需要及时处理,具有较高的优先级。
  • 缺陷报告(掌握)

    • 组织结构

      • 缺陷的标题
      • 缺陷的基本信息
        • 测试的软件和硬件环境
        • 测试的软件版本缺陷的类型
        • 缺陷的严重程度
        • 缺陷的处理优先级
      • 复现缺陷的操作步骤(测试步骤,测试数据,测试对象要明确)
      • 缺陷的实际结果描述
      • 期望的正确结果描述
      • 注释文字和截取的缺陷图像
    • 考察方式:

      例:
      在这里插入图片描述
      在这里插入图片描述

      • 给一份缺陷报告,描述缺陷报告存在哪些问题
      • 给一段缺陷描述,写一份缺陷报告

缺陷度量

  1. 收敛趋势分析(掌握)

    无休止的情况 :

在这里插入图片描述

原因:

  • 测试方面:

    • 测试人员测试报告不明确,导致开发人员难以重现缺陷
    • 测试人员对测试的严重性优先级把握不准确。
  • 开发方面:

    • 开发人员无法重现错误

    • 开发人员忙于开发,顾不上修改错误

理想状态:

在这里插入图片描述

  • 当前发现数和关闭数两条曲线已经汇集,并且持续了一段时间,此时的产品质量较稳定,可以批准对外发布
  1. 缺陷分布图(掌握)

在这里插入图片描述

在这里插入图片描述

  • 缺陷分布统计的作用:(掌握)
    • 通过缺陷分布图可以了解哪一类缺陷缺陷率高,容易犯哪一类错误
    • 对开发人员:以后做类似开发加强质量控制,避免同类错误发生
    • 对测试人员:下次测同类的时候,知道哪些地方多投入,测试更全面

作业

  • 软件测试的目的和被测对象

    • 目的
      • 降低风险
      • 发现缺陷
      • 合同或法律要求,行业标准
      • 为相关干系人的合理决定提供信息
      • 缺陷预防
      • 提高信心
    • 对象
      • 软件开发所涉及的各个阶段文档
      • 源程序
  • 程序运行错误一定是代码有问题?如何找到错误?

    • 不一定是代码问题,可能是配置问题 或者兼容性的问题,使用配置测试和兼容性测试,程序代码不变,改变程序运行的软硬件环境进行测试,然后再看程序代码是否还有问题。
  • 当测试用例与测试用例中的描述有所不同时,有哪些可能的原因呢?

    • 被测对象运行失效(程序出错)
    • 错误或不精确的测试规格说明(测试操作流程出错)
    • 测试基础设施或测试用例的问题(测试环境与测试软件要求不一致)
    • 不正确的执行过程(操作错误)
  • ”越严重的错误越要先修改“ 是否正确?

    • 错误的,错误的严重性并不等同于修复的优先级,先修改的错误应该是优先级高的错误,不一定是最严重的错误,要综合考虑错误的严重性,使用风险,修复成本等因素来确定修改错误的优先级。
  • 为了考核测试人员的绩效,某企业测试人员的缺陷数量来衡量该测试人员的工作能力,这样考评是否合理?会造成什么样的后果?

    • 这样的考评是片面的,衡量测试人员的能力不仅仅要看发现的缺陷数量,还要看发现缺陷的严重性,缺陷带来的后果,所测模块的复杂性,质量,所执行的测试类型等来衡量。
    • 会导致测试人员只将关注点放在容易发现的表面的,界面方面的缺陷,不愿意去测不容易重现,深层次的缺陷。还会导致测试工作不好分配。

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

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

相关文章

花房集团成功上市,构建互联互通的在线社交娱乐生态

近日,花房集团正式在香港联合交易所主板上市。对于花房集团而言,登陆港股市场是新的征程、新的起点。 可以看到,花房集团在稳固“直播社交”业务基本盘的同时,持续探索元宇宙领域,上市当日首次发布了最新的战略方向“娱…

Apriori算法的python实现

文章目录函数介绍实例Step1:整理数据Step2:挖掘频繁项集Step3:挖掘关联规则Step4:进一步筛选规则作者:李雪茸函数介绍 实现Apriori关联规则挖掘是借助mlxtend第三方包,使用步骤如下: 1、调用apriori算法挖掘频繁项集,apriori()中…

十一、通过程序向闪存文件系统写入信息

1、闪存 (1)每一个esp8266都配有一个闪存,闪存就类似于一个小硬盘。 (2)我们编译上传的程序就存储在闪存中。 (3)闪存的全称是Serial Peripheral Interface Flash File System(SPIFFS),串行外设接口Flash文件系统。 (4)闪存除…

docker高级篇-docker-compose容器编排介绍及实战

Docker-compose是什么?能干嘛?解决了哪些痛点? 是什么? Docker-compose是Docker官方推出 的一个工具软件,可以管理多个Docker容器组成的一个应用。你需要编写一个一个YAML格式的配置文件:docker-compose.yml。写好多个容器之间的调用关系。然后,只需要一个命令,就能…

嵌入式:ARM汇编语言程序设计基础教程

文章目录汇编语言程序设计的步骤顺序程序设计分支程序设计循环程序设计子程序设计寄存器传递参数方式存储区域传递参数方式堆栈传递参数方式汇编语言程序设计的步骤 ① 合理地分配存储器资源,将前述的目标系统‘数据结构模型’表示到各存储器单元。 ② CPU寄存器数…

pytorch集锦(4)-ResNet图像分类

目录加载训练好的模型下载模型权重图像预处理打开要预测的图像传递图像运行模型下载数据打开imagenet_classes.txt预测结果前5个最可能分类加载训练好的模型 pip3 install pillow>>> from torchvision import models >>> dir(models) [AlexNet, DenseNet, I…

有哪些简单、免费、适合中小型企业的 CRM 软件?

有哪些简单、免费、适合中小型企业的 CRM 软件? 为了更好的管理客户,和客户建立持续的良好关系,很多企业开始采用CRM软件。 但是免费且好用的CRM软件并不多见,因此选择一款适合中小型企业的CRM软件需要注意以下方面。 1. 知己&…

微信小程序布局图片上面显示文字

实现的效果&#xff1a; xml布局文件&#xff1a; <view class"image-parent"> <image classimage modewidthFix src../../images/answer-ad.png></image> <view class"child">child</view> </view> css文件&a…

26-剑指 Offer 29. 顺时针打印矩阵

题目 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] [[1,2,3], [4,5,6], [7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输入&#xff1a;m…

年终摸鱼:用高效的技术对抗繁琐的运维日常

2022年的最后一周 免疫系统直接把我带入高端局 霍一下子烧到40&#xff0c; 差点起来写遗嘱 好在第二天就降到了38.5 现在除了有点咳嗽、头昏、无力。。。 也没啥大问题——到底是年轻。 谁能想到疫情蔓延三年&#xff0c; 所有人还要来一场集体“免疫”呢&#xff1f; …

太力科技冲刺上市:石正兵为实控人,股东刘健为失信被执行人

近日&#xff0c;广东太力科技集团股份有限公司&#xff08;下称“太力科技”&#xff09;在深圳证券交易所递交招股书&#xff0c;准备在创业板上市。 本次冲刺上市&#xff0c;太力科技计划募资5.42亿元&#xff0c;其中3.20亿元用于太力武汉生产及物流中心建设项目&#xf…

高频次收集个人信息情况分析

奇安信 2022年第二季度App收集个人信息检测报告 下载地址 2022年第二季度 APP收集个人信息 检测报告 奇安信 病毒响应中心 研究背景 随着互联网和移动设备的发展&#xff0c;手机已成为人人都拥有的设备&#xff0c;其中各式各样的APP更是丰富了人们的生活&#xff0c;从社交…

TCP/IP网络编程(11) 套接字和标准IO

标准IO函数的优点 标准IO函数具备两大优点&#xff1a; 标准IO函数具备良好的移植性标准IO函数可以利用缓冲提高性能 不仅是IO函数&#xff0c;所有的标准函数都具有很好的移植性&#xff0c;为了支持所有的操作系统和编译器&#xff0c;这些函数都是按照ANSI C标准定义的&am…

大数据和数据可视化为什么这么受欢迎?

“大数据”已经从一个概念性质的词语转变为了对经济社会各个领域都具有渗透影响的事物&#xff1b;并且随着互联网技术的持续发展&#xff0c;大数据所产生的影响呈现出了范围不断扩大&#xff0c;深度持续扩展的新特征。 大数据时代就是指人们的生产、生活和工作中出现更多的…

windows VS2015 Steup 打包发布软件并附带动态链接库dll

打包&#xff1a; 方法一&#xff1a;VS 2015 Steup 打包发布软件_柠檬野生菌的博客-CSDN博客_vs2015 exe发布 1、插件下载Microsoft Visual Studio 2015 Installer Projects 工具->扩展与更新->联机->搜索 Installer Projects 2、安装 关掉VS 双击下载好的 .exe …

ArcGIS基础实验操作100例--实验21按区域修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验21 按区域修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&…

8、多线程

文章目录8、多线程8.1 线程中的进程8.2 进程中的线程8.3 自己的第一个线程8.4 线程的生命周期8.5 线程执行方式&#xff08;串行和并发&#xff09;8.6 线程休眠8.7 工作8.8 线程池8.9 同步8.10 wait和sleep8.11 线程安全问题Java零基础极速入门-讲师&#xff1a;海波 失败&…

一文快速上手Swagger

目录 1.什么是Swagger&#xff1f; 2.Swagger的作用&#xff1f; 3.Swagger的使用方法 &#xff08;1&#xff09;一般是在Spring Boot项目中进行集成&#xff0c;只需在项目中引入springfox-swagger2和springfox-swagger-ui依赖即可 &#xff08;2&#xff09;配置Swaage…

[虚幻引擎][UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控

[虚幻引擎][UE][UE5]在UE中画一个线框球&#xff0c;网格连接画球&#xff0c;高阶画球并操控1.材质法2.绘制调试球体3.网格连接4.高阶画球并操控1.材质法 缺点&#xff1a;是实体的&#xff0c;只能欺骗视觉&#xff0c;实际还是一个实体体积球&#xff0c;往里放东西显示不出…

电磁兼容测试整改

1.1 什么时候需要电磁兼容整改及对策 在设计阶段就应考虑电磁兼容性&#xff0c;将产品生产阶段出现电磁兼容问题可能性减小。最终要通过电磁兼容测试检验其电磁兼容标准的符合性。 由于电磁兼容的复杂性&#xff0c;即使电磁兼容设计问题考虑比较周全&#xff0c;在设计制造…