软件测试——期末复习

文章目录

      • 前言
      • 软件缺陷
      • 软件开发的过程
      • 软件测试
      • 黑盒测试
        • 等价类划分
        • 判定表法
        • 因果图法
        • 边界值分析法
      • 白盒测试
      • 配置测试
      • 兼容性测试
      • 外国语言测试
      • 易用性测试
      • 自动化测试和测试工具
      • 缺陷轰炸和beta测试

前言

由于本人拖延症严重而且成绩较差,所以才在考试结束将近一个星期后,将自己的复习笔记整理出来,不足以及错误之处烦请指出。

软件缺陷

软件缺陷是指软件产品中的某种错误、故障或失效,导致软件在运行时表现出不符合预期的行为或结果。

产品说明书简称为“产品说明”,是软件开发小组的一个协定,它对开发的产品进行定义,给出产品的细节,如何做、做什么、不能做什么。

以下有五种情形,它们都属于软件缺陷:

  1. 软件未实现产品说明书要求的功能;
  2. 软件出现了产品说明书指明不该出现的错误;
  3. 软件实现了产品说明书未提及的功能;
  4. 软件未实现产品说明书虽未明确提及的,但是应该实现的目标;
  5. 软件难以理解、不易使用、运行缓慢或者——从测试员的角度来看——最终用户认为不好。

可以简记为:欠缺功能、错误功能、多余功能、欠缺潜在功能、易用性差

少了,错了,多了,少了潜在,不好用都是软件缺陷。前四项与产品说明书有关,最后一项与用户有关。

在这里插入图片描述

软件缺陷产生的最大原因是产品说明书,余下的其他原因有:设计、编码等。

对软件开发来说,何时发现软件缺陷的意义是:发现的越晚,修复的代价越大,而且代价随时间增长是指数增加的。应该尽量将软件缺陷扼杀在产品说明书阶段。

在这里插入图片描述

软件测试员的工作目标是尽可能早地发现软件缺陷并确保它得到修复

在这里插入图片描述
为什么正规的软件开发中必须有测试员承担测试工作而不能让开发工作和测试工作由程序员一并完成?

答:因为:

  1. 由于代码本来就是自己写的,测试时容易落入自己的思维定势,不易发现缺陷
  2. 测试员和程序员的工作风格以及思维方式截然不同,很难同时适应两者
  3. 开发工作和测试工作是同时进行的,不能等到开发工作结束再做测试,而一个人同时完成两种任务会严重影响效率
  4. 容易产生道德风险,程序员倾向于掩盖自己的错误而不是揭露它们,从而不利于测试工作。

软件开发的过程

软件开发的过程描述了开发软件产品的成员做什么、如何交互、如何决策的细节。

在软件行业中,用于描述制造出来并交付他人的软件产品组件的术语是“可交付的部分”。

在这里插入图片描述

软件产品的一个关键部分是进度表。制定进度表的目的是了解哪项工作完成了,还有多少工作要做、何时全部完成。

在这里插入图片描述
常见的软件开发模式:大爆炸模式、边写边改模式、瀑布模式、螺旋模式、敏捷软件开发。

大爆炸模式是最简单的软件开发模式,它没有测试。

边写边改模式将反复进行,直至有人放弃。

瀑布模式的各步骤是分立的,没有交叉;瀑布模式无法回溯。

对于测试人员,瀑布模式的一个严重问题是:因为测试仅在最后进行,所以一些根本问题可能出现在早期,但是直到准备发布产品时才可能出现。

螺旋模式兼有几种模式的某些特点,是软件测试人员最喜欢的模式!

敏捷开发是目前最流行的快速软件开发模式,适合面向互联网应用的、中小型的软件项目。

软件测试与软件开发过程(V模型)

在这里插入图片描述

在这里插入图片描述

请介绍测试一个软件的全过程包括哪几个步骤?每一步如何来做?

答:第一步:制定测试计划;第二步:建立测试用例集合;第三步:做等价划分,缩减测试用例集合;第四步:执行测试用例;第五步:汇报测试结果。

软件测试

软件测试中的杀虫剂怪事是指:软件测试越多,软件缺陷对于测试的免疫力越强,无法被发现。

如何解决?测试员必须编写不同的、新的测试程序,使用新的测试技术来测试。

测试的原则

  • 完全测试程序是不可能的
  • 软件测试是有风险的行为
  • 测试无法显示潜伏的软件缺陷
  • 找到的软件缺陷越多,就说明缺陷越多
  • 杀虫剂怪事——软件测试越多,软件缺陷对于测试的免疫力越强,无法被发现
  • 并非所有的软件缺陷都需要修复
  • 什么时候才叫缺陷难以说清
  • 产品说明书从来没有最终版本
    在这里插入图片描述

确认是保证软件符合产品说明书的过程;

验证是保证软件满足用户的需要的过程。

符合产品说明书的软件未必在实际中满足用户的需要,因为产品说明书可能有错误或者不完善。

在这里插入图片描述

在这里插入图片描述
冒烟测试是指在对一个新版本进行系统测试之前,先对软件的基本功能进行简单的测试

单元测试是在软件开发过程中要进行的最低级别的测试活动,是针对软件设计的最小单位即程序模块、函数、类或方法所进行的正确性检验的测试工作。

在这里插入图片描述
在这里插入图片描述
系统测试是在整个系统投入运行之前,对系统的各元素进行组装和确认测试,确保在系统实际运行时软件、硬件、 外设、网络等系统元素能够相互配合并正常工作。

回归测试是当软件发生改变时,重新测试已经通过测试的测试区域,以验证修改的正确性及其影响

黑盒测试也称为功能性测试行为测试

在这里插入图片描述
静态测试:指测试不运行的部分——只是检查和审核

动态测试:是指通常意义上的测试——使用和运行软件

没有产品说明书和需求文档的情况下能做黑盒测试。**这是因为尽管没有写产品说明书,但总有人知道产品是什么样的。**通过询问软件设计者和编制者可以测试没有写出来的产品说明书。

黑盒测试

常用的黑盒测试方法:
● 等价类划分法;期末考试考了
● 边界值分析法;
● 因果图分析法;期末考试考了
● 判定表法; 期末考试考了
● 状态迁移法;

等价类划分

对测试用例做等价划分的目的是缩减测试用例集合。
在这里插入图片描述
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然 后从每一部分中选取少数有代表性的数据做为测试用例。
等价类是指某个输入域的子集合。
有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数 据构成的集合。
等价类划分的目标是将可能的测试用例集缩减到可控制并且仍然足以测试软件小范围内。
其实总体上一共就分为两大步骤:
第一步:划分等价类
第二步:选取测试用例
在这里插入图片描述
具体来说就是分为三步:
第一步:1. 形成等价类表 2. 每一等价类规定一个唯一的编号
第二步:1. 设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类;重复这一步骤,直到所有有效等价类均被测试用例所覆盖。
第三步:1. 设计一新测试用例,使其只覆盖一个尚未覆盖的无效等价类;重复这一步骤,直到所有有效等价类均被测试用例所覆盖。

判定表法

判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的工具。
在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了,因为它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。
它反映输入与输出之间的关系,适用于软件功能测试。
举个简单的决策表例子:
如果一个软件的规格说明指出:
(1)当条件1和条件2满足,并且条件3和条件4不满足,或者当条件1、3和条
件4满足时,要执行操作1。
(2)在任一个条件都不满足时,要执行操作2。
(3)在条件1不满足,而条件4被满足时,要执行操作3。
那这个决策表应该这样画:
在这里插入图片描述

因果图法

因果图方法是一个非常有效的黑盒测试方法,它能够生成没有重复性的且发现错误能力强的测试用例,而且对输入、输出同时进行了分析。
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。
如果在设计阶段就采用了判定表,也就不必再画因果图,而是可以直接利用判定表设计测试用例了。

边界值分析法

边界值分析法是对等价类划分法的一种补充方法。

首先应确定边界情况。

  • 列出单元功能、输入、状态及控制的合法边界值和非法边界值,对数据进行测试,检查用户输入的信息、返回结果以及中间计算结果是否正确。
  • 通常输入和输出等价类的边界,就是应着重测试的边界情况。
  • 应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,不是选取等价类中的典型值或任意值作为测试数据。

边界值选择原则:1. 边界条件 2. 次边界条件 3. 特殊值默认、空值、空白、零值和无 4. 无效数据

一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。

规格说明要求计算出“每月安全金扣除额为0至1165.25元”,其中测试用例可取0.00及1165.24、还可取-0.01及1165.26等。

最大值加1或最小值减1,例如:第一个减1,最后一个加1;开始减1,完成加1。
此外还有状态图法,场景法,正交实验法,本文不再详细探讨。

白盒测试

包括静态白盒测试和动态白盒测试,静态白盒测试的过程叫做正式审查,动态白盒测试常用的方法有:程序插桩技术、逻辑覆盖法、路径覆盖法。其中逻辑覆盖又可以分为以下几种:

  1. 语句覆盖
  2. 判定(分支)覆盖
  3. 条件覆盖
  4. 判定/条件覆盖
  5. 条件组合覆盖
    基本路径测试则在下篇文章中详细讨论,重点是计算圈复杂度和确立独立路径集合

配置测试

测试软件能否在不同的硬件上正常工作叫做配置测试
关于配置测试:

  • 一般情况下,都做配置测试,因为软件在某些硬件平台出现配置缺陷是常见的事情;
  • 有配置缺陷的产品仍然可以发布,如果软件仅在很少见的硬件上发生缺陷;
  • 保证软件产品在所有的硬件上都没有任何缺陷是不可能的

兼容性测试

测试软件能否打开它的以前版本的文件属于兼容性测试。

测试软件能否与其他软件正确交换数据属于兼容性测试。

软件在某些操作系统平台上不能工作属于兼容性测试。

软件的不同版本之间的兼容性包括两种类型:向前兼容性和向后兼容性。

  • 向前兼容性:Forward compatibility 例如:Windows3.1能兼容运行Windows10开发的程序,Windows3.1具有向前兼容性。

    旧版本软件能够处理新版本生成的数据或文件。

  • 向后兼容性Backwards compatibility 例如:Windows10系统能兼容运行Windows3.1开发的程序,Windows10具有向后兼容性。又比如在开发Office 2007的时候,要考虑如何打开Office 2003的doc/xls/ppt文件,而不能仅仅只能打开docx/xlsx/pptx文件。

    新版本软件能够处理旧版本生成的数据或文件。

如果有一个Windows平台上的字处理软件需要做兼容性的测试,请简单介绍一下大概有多少种的测试工作要做。

  • 需要测试它在Windows的各个版本上工作是否正常;
  • 需要测试它和其他的字处理软件,例如记事本、word之间的数据交换;
  • 需要测试它和自己以前的版本之间的兼容性;
  • 需要测试它是否满足Windows上的标准和规范,或者和通信协议之间的兼容性。

外国语言测试

易用性测试

对用户界面的测试属于易用性测试。

软件的易用性通常很难精确定义,现实中,可以采取替代方案:如果软件工作的平台上有相关的标准和规范,则遵照它们的规定。

以一个Windows上的复杂软件(含文档、图片及声音、视频混排功能)为例,如果对它进行配置测试、兼容性测试和易用性测试,请简介有哪些工作要做?

配置测试:在各种硬件及其组合上能否正常工作(CPU、内存、主板、显卡、声卡、打印机等),其中出问题可能性较大的是显卡和声卡

兼容性测试与操作系统平台(含各种版本)的兼容性;与自己以前的版本及以后的新版本的兼容性;与其他字处理软件交换数据是否正常;网络通信和磁盘文件存取是否正常;

易用性测试:**界面是否遵守该平台上的易用性标准和规范;界面是否美观;**某项功能是否容易找到对应的按钮或者菜单命令;操作是否简单易学、容易记忆、不易混淆;功能是否会步骤层次太多,难于返回上层;界面是否有多余的功能或者不必要的元素。

配置缺陷:软件在某种计算机硬件上不能正常工作;软件与某种打印机冲突,无法正常打印;

兼容性缺陷:软件与另一个软件交换数据出错

哪一种缺陷容易被beta测试所发现的缺陷:

  • 配置缺陷
  • 兼容性缺陷
  • 易用性缺陷

自动化测试和测试工具

软件发布之前要经过多次重复代码——测试——修复的过程。

另一类自动化测试工具不是为帮助执行或者自动执行测试用例而设计的,其目标是模拟用户可能的操作。此类自动化测试工具叫做测试猴子。

缺陷轰炸和beta测试

共享测试任务的有趣方法是安排缺陷轰炸在一段时间内(一般为几小时),整个测试小组停下常规的工作,参加轰炸——选择软件的某一区域,所有测试员集中测试这个区域或者这组特性
在这里插入图片描述

beta测试:软件分发给选定的潜在客户群,让他们在实际环境中使用软件。

软件测试计划是测试员与产品开发小组交流意图的主要方式。

测试计划只是创建详细计划过程的一个副产品,重要的是计划过程,而不是产生的结果。

在报告软件缺陷时,测试员要对软件缺陷分类,以简明扼要的方式指出其影响,常用的分类是给软件缺陷划分严重性优先级

严重性:软件缺陷的恶劣程度,当用户碰到该缺陷时影响的可能性和程度。

优先级:修复缺陷的重要程度和紧迫程度

在这里插入图片描述
打开状态:当软件缺陷首先被软件测试员发现时,被记录报告并指定给程序员修复态。

解决状态:一旦程序员修复了代码,报告又回到测试员手中。

关闭状态:测试员执行验证测试,确认软件缺陷确实得以修复,如果是,就把软件缺陷关闭。

在这里插入图片描述

回归缺陷:原来认为已经修复、测试和关闭的缺陷可能会再次出现,这样的缺陷叫做回归缺陷

质量是免费的,制造高质量的产品实际上不需要额外开销。

质量的费用可分为两类:一致性费用和非一致性费用。

一致性费用指与**一次性计划和执行测试相关的全部费用,**用于保证软件按照预期方式运行。

如果发现了软件缺陷,必须花时间分离、报告和回归测试以保证其得以修复,则非一致性费用就会上涨。

因为软件缺陷在软件发布之前发现,所以这些费用归属于内部失败。

如果软件缺陷被遗漏并落到客户手中,就是代价昂贵的产品支持电话,可能还要修复、重新测试 和发布软件——更糟糕的情况下,产品要召回或者卷入官司。这些也是不一致费用,属于外部失败。

由于内部失败引起的一致性费用加上非一致性费用小于由外部失败引起的非一致性费用。

质量保证人员**:主要职责是检查和评价当前软件开发的过程,找出改进过程的方法,以达到防止软件缺陷出现的目的。**

QA团队的任务是保证产品具有高质量!

重复测试:不断执行同样的操作。主要目的是检查是否存在内存泄漏。

压迫测试:使软件在不够理想的条件下运行——内存小,磁盘空间少、CPU速度慢、调制解调器速率慢等,观察软件对外部资源的要求和依赖程度

重负测试:与压迫测试相反,尽量提供条件任其发挥,让软件处理尽可能大的数据文件。时间也是一种重负测试。

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

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

相关文章

嵌入式硬件篇---基本组合逻辑电路

文章目录 前言基本逻辑门电路1.与门(AND Gate)2.或门(OR Gate)3.非门(NOT Gate)4.与非门(NAND Gate)5.或非门(NOR Gate)6.异或门(XOR Gate&#x…

数据结构漫游记:动态实现栈(stack)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…

微信小程序-base64加解密

思路:先创建一个base64.js的文件,这个文件可以作为专门加解密的文件模块,需要时就引用;创建好后,引用base64.js里的加解密函数。 注意:引用模块一定要引用正确的路径,否则会报错。 base64.js:…

RabbitMQ--延迟队列

(一)延迟队列 1.概念 延迟队列是一种特殊的队列,消息被发送后,消费者并不会立刻拿到消息,而是等待一段时间后,消费者才可以从这个队列中拿到消息进行消费 2.应用场景 延迟队列的应用场景很多,…

口令攻击和钓鱼攻击

口令攻击和钓鱼攻击 1、实验说明 口令攻击和钓鱼攻击是生活中两种较为常见的攻击方式, 通过对攻击过程的复现, 能够让学生对其有直观的认识, 进而思考相应的防范措施。 2、实验目的 (1 )能够了解实验规范和实验所需…

考前64天 学习笔记 - 形成“习惯体系”进行最小启动

从2025年1月18日到3月22日还剩64天 一、备考心态 这几天摆烂,并没有怎么学,败在了游戏和短视频上。 每分每秒都在抵御其他诱惑 科学表明:人在做自己不喜欢的事情,意志力最多能挺25分钟 如何稳定自己的心态,答案就在…

【python_钉钉群发图片】

需求: **在钉钉群发图片,需要以图片的形式展示,如图所示:**但是目前影刀里面没有符合条件的指令 解决方法: 1、在钉钉开发者后台新建一个自建应用,发版,然后获取里面的appkey和appsecret&am…

R数据分析:有调节的中介与有中介的调节的整体介绍

单独的有调节的中介或者有中介的调节好多同学还大概能看明白,但是两个东西一起说我发现大部分同学就懵逼了。今天我就尝试将两种方法一起讲讲,重点帮助大家厘清两种方法的异同。 先从整体上看下两者的概念: 有中介的调节首先落脚在调节,调节作用必须是显著的,并且这个调…

DETR论文阅读

1. 动机 传统的目标检测任务需要大量的人工先验知识,例如预定义的先验anchor,NMS后处理策略等。这些人工先验知识引入了很多人为因素,且较难处理。如果能够端到端到直接生成目标检测结果,将会使问题变得很优雅。 2. 主要贡献 提…

天机学堂5-XxlJobRedis

文章目录 梳理前面的实现:Feign点赞改进 day07-积分系统bitmap相关命令签到增加签到记录计算本月已连续签到的天数查询签到记录 积分表设计签到-->发送RabbitMQ消息,保存积分对应的消费者:**消费消息 用于保存积分**增加积分查询个人今日积…

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行(APEX)接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域,综合模块化航空电子设备(IMA&#xf…

认识 MySQL 和 Redis 的数据一致性问题

参考:https://zhuanlan.zhihu.com/p/429637485 1. 什么是数据的一致性 “数据一致”一般指的是:缓存中有数据,缓存的数据值 数据库中的值。 但根据缓存中是有数据为依据,则”一致“可以包含两种情况: 缓存中有数据…

【论文笔记】SmileSplat:稀疏视角+pose-free+泛化

还是一篇基于dust3r的稀疏视角重建工作,作者联合优化了相机内外参与GS模型,实验结果表明优于noposplat。 abstract 在本文中,提出了一种新颖的可泛化高斯方法 SmileSplat,可以对无约束(未标定相机的)稀疏多…

创建 pdf 合同模板

创建 pdf 合同模板 一、前言二、模板展示三、制作过程 一、前言 前段时间要求创建“pdf”模板,学会了后感觉虽然简单,但开始也折腾了好久,这里做个记录。 二、模板展示 要创建这样的模板 三、制作过程 新建一个“Word”,这里命…

电力场景红外测温图像绝缘套管分割数据集labelme格式2436张1类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2436 标注数量(json文件个数):2436 标注类别数:1 标注类别名称:["arrester"] 每个类别标注的框数&am…

【网络协议】RFC3164-The BSD syslog Protocol

引言 Syslog常被称为系统日志或系统记录,是一种标准化的协议,用于网络设备、服务器和应用程序向中央Syslog服务器发送日志消息。互联网工程任务组(IETF)发布的RFC 3164,专门定义了BSD Syslog协议的规范和实现方式。通…

正态分布检验(JB检验和威尔克检验)和斯皮尔曼相关系数(继上回)

正态分布的检验 1,JB检验(n>30) (1)偏度和峰度 描述函数正不正,高不高的 Matlab中计算偏度和峰度的函数是:skewness() 和 kurtosis() 我们以normrnd来生成一个100*1的均值为2,标准差为3的正态分布(这里采用的第一个公式) 得到下面的数据,因为这个…

搭建一个基于Spring Boot的书籍学习平台

搭建一个基于Spring Boot的书籍学习平台可以涵盖多个功能模块,例如用户管理、书籍管理、学习进度跟踪、笔记管理、评论和评分等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的书籍学习平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个…

基于Python的心电图报告解析与心电吸引子绘制

一、引言 1.1 研究背景与意义 心脏作为人体的核心器官,其正常电活动对于维持生命活动至关重要。心电图(Electrocardiogram,ECG)作为记录心脏电活动随时间变化的重要工具,能够直观反映心脏的节律、传导等功能状态&…

【大数据】机器学习------支持向量机(SVM)

支持向量机的基本概念和数学公式: 1. 线性可分的支持向量机 对于线性可分的数据集 ,其中(x_i \in R^d) 是特征向量 是类别标签,目标是找到一个超平面 ,使得对于所有 的样本 ,对于所有(y_i -1) 的样本,…