嵌入式软考备考_8 软件测试

news2024/9/28 17:25:32

软件测试

测试:在规定的条件下操作程序,以发现错误,对软件质量进行评估。

对象:程序,数据,文档。

目的:发现错误,看是否满足用户需求,发现错误产生的原因(不能分析其质量好坏)。

嵌入式硬件一般用专门测试仪器测试,软件除了逻辑正确性外,还看中系统的性能和健壮性,实时性,软硬结合分析。

测试方法

动态:黑盒,白盒,灰盒。

  • 黑盒:测试程序功能,把程序视作一个黑盒子。

  • 白盒:透明白盒,测试代码具体逻辑。

  • 灰盒:两者结合,系统测试常用。

静态:桌前检查,代码审查,代码走查。

  • 桌前检查:开发人员自己审查。
  • 代码审查:开发人员和测试人员人工审查。
  • 代码走查:提供测试用例的检查。

image-20230508100252012

等价类划分:比如程序输入11000,其实210是等价的,测试一个典型的就行。

边界值分析:边界。

错误推测:可能什么地方出错。

因果:对于复杂的程序输入联系,比如约束、组合等关系,用等价类和边界值难以表达的情况。

逻辑覆盖测试要理解每一个覆盖,以及其对应需要多少测试用例。

这里对于各种判断的理解参考这篇文章:动态白盒测试——逻辑覆盖测试法_深秋红枫的博客-CSDN博客

例:

image-20230508101632902

语句覆盖 sc:所有语句(方形的)都被执行过一次,并不是所有情况都被执行过一次。所以两个判断可以是TT FF 或者 TF FT这类,2个测试用例。

判定覆盖/分支覆盖(DC):每个判断里都被执行过一次,还是TT FF 或者TF FT这类就能满足。

条件覆盖:所有逻辑判断(也就是单个的逻辑条件)至少被满足过一次。也就是x>0 x<0 y>0 y<0 magic>0 magic<0都至少有过一次。

image-20230508102253652

条件判定覆盖:条件和判定覆盖都满足。

image-20230508102348676

条件组合覆盖:每个条件语句中所有可能的情况都要出现过,也就是x>0 y>0,x>0 y<0, x<0 y>0, x<0 y<0和magic>0 magic<0的组合都有过,不同条件覆盖里的语句无需组合。

image-20230508102629590

路径覆盖:只要流程图中所有可能的情况都出现过。也就是两个if为TT,TF,FT,FF的情况。但是从图中可以看出,如果x y>0,magic=x+y+10也一定>0,因此x>0 y>0 magic<0也就是TF这种情况不可能出现。所以只有三种情况。

修正条件判定覆盖:

  1. 所有可能的输出结果都出现。
  2. 改变众多条件中的一个条件,就能影响判定的结果。

例题:程序

{
    if(A&&(B||C))
        return true;
}

首先条件组合覆盖所有可能:ABC是000,001,010,011,100,110,111.

image-20230508105501331

语句覆盖:只要为true就能全部执行。1条用例即可。

覆盖所有可能,只需要0结果的一个,1结果的一个就行。但是另一个要求是:测试用例中存在只改变一个输入的用例,而且改变这一个用例可以使得结果改变。

000怎么改变也不会改变结果。

001改成101就可以了,26可以拿出来。

以此类推。

改变A改变结果:26,37,48.

改变B改变结果:57.

改变C改变结果:56.

因此最少需要囊括的是:5,6,7,3.

测试阶段,测试级别

image-20230508145055208

单元测试:代码测试,比如白盒测试法。

集成测试:模块组合测试。增量式组组装就是先测一部分,再逐渐集成新的模块,可以从顶层或者底层开始。如白盒测试。

  • 驱动模块:开发出来用于驱动测试的。
  • 桩模块:临时开发出来提供给被测模块调用的。

确认测试:

  • 验收测试:用户对项目验收测试,看是否符合软件需求规格说明书 srs。
  • alpha 测试:开发环境下测试,通过了才能到beta。
  • beta 测试:用户实际使用环境测试。通过后才能发布。

系统测试:系统放到实际环境中,测试性能。如灰盒测试。

调试

交叉调试必不可少。调试器和北条氏程序在不同机器上,有某种通信方式建立联系,目标机上通常有协助调试器运行的代理。

调试可以控制程序运行,并修改内存、寄存器、变量等信息。

image-20230508150420410

直接测试:宿主机-目标机

调试监控器法:宿主机上的调试器通过JTAG等下载到目标机的监控器上。

ROM仿真器法:插在目标机上,仿真一个只读的ROM,连接宿主机。

在线仿真器法:仿真CPU。

片上调试法:通过JTAG接口可以取得单片机上的一些寄存器值。现在一般都支持调试和运行两个模式。

模拟器法:都在开发平台上,完完全全模拟硬件。

调试和测试的区别:测试是找出错误,调试是定位错误并修改程序,以达到预期的结果,在测试之后。

软件评审

image-20230508184055638

验证与确认

image-20230508184215659

注重过程和结果。

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

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

相关文章

汇编四、51单片机汇编指令2

1、机器码 (1)MOV A,#0x60对应机器码为7460 (2)7460对应二进制 0111 0100 0110 0000 0x74对应指令&#xff0c;0x60对应立即数。 (3)immediate data翻译为立即数。 (4)可人为查表把汇编转为机器码&#xff0c;也可通过编译器把汇编转为机器码。 2、汇编常见缩写 (1)Rn: n可…

leetcode-040-组合总和2

题目及测试 package pid040; /* 40. 组合总和 II 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意&#xff1a;解集不能包含重复的组合…

Vue中使用EasyPlayer播放H265视频流

需求说明 需要在Vue2的项目中使用EasyPlayer进行H265视频流的播放。使用官方的最新版本加载H265会有问题。一直处于加载中… 实现步骤 引入easyplayer,这里最开始引入了最新版会有问题&#xff0c;因此引入的是3.3.12版本&#xff0c;可参照官方文档进行配置。 EasyPlayer示…

HBase整合Phoenix

HBase整合Phoenix 创建软件目录 mkdir -p /opt/soft cd /opt/soft下载软件 wget https://dlcdn.apache.org/phoenix/phoenix-5.1.3/phoenix-hbase-2.5-5.1.3-bin.tar.gz解压 hbase tar -zxvf phoenix-hbase-2.5-5.1.3-bin.tar.gz修改 hbase 目录名称 mv phoenix-hbase-2.5…

(初)进程概念

目录 认识冯诺依曼系统 操作系统(Operator System) 设计OS的目的&#xff1a; 定位&#xff1a; 如何理解管理&#xff1a; 总结&#xff1a; 系统调用和库函数概念&#xff1a; 进程 基本概念 &#xff1a; 描述进程PCB task_struct - PCB的一种 task_struct内容分…

编译安装最新的Linux系统内核

现在还有不少机器是CentOS8 Stream系统&#xff0c;虽然上了贼船&#xff0c;不影响用就是了。8的编译和7大同小异&#xff0c;只是踩了更多的坑在这里记录一下&#xff0c;或许会帮到看到的朋友。 安装编译环境 CentOS8安装必要的包 yum groupinstall "Development Too…

【P13】JMeter 常数吞吐量定时器(Constant Throughput Timer)

文章目录 1、基于计算吞吐量&#xff1a;只有此线程2、基于计算吞吐量&#xff1a;所有活动线程3、基于计算吞吐量&#xff1a;当前线程组中的所有活动线程4、基于计算吞吐量&#xff1a;所有活动线程&#xff08;共享&#xff09;5、基于计算吞吐量&#xff1a;当前线程组中的…

【2023/05/08】雅卡尔织布机

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第3天。 Share The world puts off its mask of vastness to its lover. It becomes small as one song,as one kiss of the eternal. 译文&#xff1a; 世界对着它的爱人&#xff0c;把它浩瀚的面具揭…

已做过算法题总结2

20. 有效的括号 (括号匹配是使用栈解决的经典问题&#xff0c;这道题主要是记住三种不成立的情况) 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用…

解密链表元素移除:三种巧妙思路,轻松驱逐难缠结点

本篇博客会讲解力扣“203. 移除链表元素”的解题思路&#xff0c;这是题目链接。 老规矩&#xff0c;先来审题&#xff1a; 以下是一些示例&#xff1a; 以下是提示&#xff1a; 本题的思路还挺多的&#xff0c;不过都是链表的常规操作。 思路1 万能的尾插法。遍历链表&am…

[Golang] 爬虫实战-用多层嵌套结构体去接收多层嵌套数据

&#x1f61a;一个不甘平凡的普通人&#xff0c;致力于为Golang社区和算法学习做出贡献&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;算法学习 &am…

量子计算(10)编程实践2:隐形传态算法

目录 一、算法目的 二、算法原理 三、pyqpanda实现代码 四、测试结果 一、算法目的 量子隐形传态&#xff0c;又称量子遥传、量子隐形传输、量子隐形传送、量子远距传输或量子远传&#xff0c;是一种利用分散量子缠结与一些物理讯息的转换来传送量子态至任意距离的位置的技…

AutoSar CAN网络管理(CanNm)

文章目录 网络管理目的主动唤醒和被动唤醒状态管理1. 总线睡眠模式&#xff08;Bus-Sleep Mode&#xff09;2. 准备总线睡眠模式&#xff08;Prepare Bus-Sleep Mode&#xff09;3. 网络模式&#xff08;Network Mode&#xff09;3.1 重复报文状态(RepeatMessageState)3.2 常规…

基于springboot+mysql+jpa+html实现商品销售信息系统

基于springbootmysqljpahtml实现商品销售信息系统 一、系统介绍1、系统主要功能&#xff1a;2.涉及技术框架&#xff1a;3.本项目所用环境&#xff1a; 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能&#xff1a; 订单管理模块 商品管理模块 品牌管理模…

【项目实战】—— 我们应该如何正确得创建线程池?

项目实战-我们应该如何正确得创建线程池&#xff1f; 对于现在而言多线程编程已经成为程序员必备的职业技能了&#xff0c;在开发实践过程中&#xff0c;你是否也遇到过相关多线程问题&#xff0c;比如创建多少线程才是合适的&#xff1f;线程池该如何创建&#xff1f;今天我们…

类和对象中(2)

文章目录 一、运算符重载1、运算符重载出现的原因2、在全局和类里实现运算符重载3、赋值运算符重载1、为什么赋值运算符重载不能写在全局 &#xff1f;2、什么时候需要自己实现赋值运算符重载 &#xff1f; 4、前置和后置重载5、运算符重载的优势 二、const成员函数1、两个常见…

GNN与MLP:GNN是一种泛化器

图神经网络&#xff08;GNN&#xff09;作为图表示学习的模型&#xff0c;建立在MLP架构之上&#xff0c;具有额外的消息传递&#xff0c;以允许特征在节点之间流动。作者通过引入一个被称为P-MLP的中间模型&#xff0c;将GNN性能增益的主要来源定位为其内在的泛化能力&#xf…

JSR303统一校验和分组校验及常用注解@NotBlank@NotEmpty 的使用

JSR303-bean校验规范 JSR303常用注解&#xff0c;下面注解在JavaBean的字段上使用&#xff0c;必须在方法上搭配Vaild才会开启校验&#xff0c;也可以设置分组校验 Null 必须为空 主键字段常用&#xff0c;可以规定新增时字段必须为空NotNull 不能为null 添加数字时使用常用&…

前端学习笔记:CSS中浮动的原理,定位

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育 目录 1、float1.1、float设计的初衷1.2、浮动的原理&#xff0c;类似两个图层1.3、浮动的原理&#xff0c;两个图层的特殊性1.4、消除浮动的影响 2、定位2.1、相对定位&#xff08;relative&#xff09;2.2、绝对定…

CSS var()的使用

最近在做流量对比的功能&#xff0c;有如下的效果图&#xff0c;当某个节点失败的时候&#xff0c;点击能够弹出对应的提示信息。 这个库使用的是jenkins-pipeline 的库&#xff0c; 但是由于它原本的提示框比较糟糕&#xff0c;所以我们想结合antd的tooltip进行展示&#xff0…