精华内容
下载资源
问答
  • 硬/软件接口:走向何方
    千次阅读
    2018-12-15 11:30:00

    硬件/软件接口(简称为"HSI")是一个术语,用来描述 SoC 外围设备的配置和功能,以及它们如何与CPU交互。

    从寄存器位到访问类型、属性和功能的各种因素的数量,在现代SoC中可能是绝对令人吃惊的。 例如,如果有一个32位地址总线,可以访问2 ^ 32内存映射寄存器。如果每个寄存器本身都有32位宽,那么寄存器位的总数就会变成(32 * 2 ^ 32)或2 ^ 37,或137,438,953,472!但是如果地址总线是64位呢? 如果 SoC 中有多 cpu 核心怎么办? 很明显,典型的 SoC 体系结构是复杂的。

    不可否认的是,目前的行业趋势只会导致更先进的 SoC,其外围设备的数量将比以往任何时候都多。 为了理解这一切,更不用说管理它,它将要求我们完全重新思考HSI。 无论已经走了多远,还是要去向何方地方,都是如此。

    HSI的今天

    在任何特定的时刻,都会遇到各种各样的因素。 多个处理器,包括周围有大量可编程的外设。所有的东西都通过片上网络连接在一起。 这个列表还在继续。

    在现代 CPU 的背景下,HSI 和指令集架构(ISA)基本上是一样的。 这是软件对硬件进行"会话"的层。 中央处理器可以是 ARM,RISC-V ——这并不重要,因为这个过程保持不变。 为想要的目标编写一个C或 C++ 程序,编译它,然后放到 CPU 上。 这就是如何与寄存器和外部总线进行交互的方式,以及I/O。

    在实际的 SoC 方面,还必须处理相互连接的fabric,这是连接CPU 和各种可编程从设备的纽带。 这些从设备可能有他们自己的存储,或者甚至可以是一个低速总线,这取决于具体的情况对嵌入式寄存器的读写来编程。 当从这种类型的宏观视角来看事物时,寄存器和中断是IP的HSI。

    640?wx_fmt=png

    图1 CPU/IP HSI

    虽然迄今为止,这种做法一直运作良好,但也很难说它给任何项目带来了一些重大的挑战。在最近的一项研究中,仔细研究了芯片功能缺陷的根源,设计错误是主要原因。 规格的变化和规格的不正确或不完整也是其中的一个方面。 所有这些问题的严重程度和它们的普遍性一样,而且它们都有相同的共同点: 超过50%的问题属于这三个类别中的任何一个,直接回到了 HSI 层面。

    举个例子,以收银机为例, 总是要记住面对的是各种各样的不同类型。 UART、锁、中断、 FIFO 和分页都只是众多例子中的一小部分。 像间接寄存器和触发缓冲寄存器这样的复杂寄存器都有其潜在的并发症,寄存器组或内存数组也是显然不同的。

    仅仅基于这一点,就很容易看出为什么所有问题中有一半以上可以直接与硬件/软件接口联系起来。 同样复杂的是,许多公司都有自己独特的针对 SoC 的挑战和要求。

    人们很容易对这个消息采取悲观的态度,并把它看作是可怕的事情。 但这也是值得庆祝的事情,这意味着如果花时间修复 HSI 层,也可以修复芯片功能缺陷。

    需要灵活而创新的未来

    当想到各种各样的 HSI 信息消费者时,这个列表可能比人们意识到的要长得多。 除了设备驱动程序、固件和硬件验证等因素外,还需要考虑技术文档、诊断、应用软件、硬件设计等等。 对基础规范的一个改变需要在所有这些领域进行重大转变,这就是为什么找到一个解决方案,让这些变化自动渗透到所有相关的视图中。

    IDesignSpec (IDS)只是众多例子之一,在解决所有这些问题方面取得了重大进展。 这些类型的解决方案通常与各种不同的输出相兼容,这取决于您的需求,包括但不限于像 Verilog/VHDL,c Model,UVM 等等。它们通常可以从批处理(想象: 命令行)到 Word 和 Excel,到开源的选项,比如 Open Office。

    640?wx_fmt=png

    现在可以生成一个单一的基于 uvm 的寄存器模型,该模型涵盖所有的核查元素,以及更多地腾出宝贵的时间,让实际员工专注于更重要的事情。

    最后,可以使用一个单一的工具来创建测试序列和环境,创建正式属性和断言,从规范中创建 UVM 序列和固件例程,并帮助实现跨平台的 HSI 层规范,该规范以一种一直存在的方式平等地为所有各方服务。

    这一切都超越了简单的自动化。 它代表了硬件和软件作为概念朝着下一个进化方向迈出的重要一步。下一代的HSI解决方案已经取得了很大进展,它们不仅有助于解决"老派"做事方式中存在的绝大多数挑战,而且对于能想到的几乎每一个强大到不容忽视的行业都存在一些重大影响。

    功能安全

    国际标准化组织发挥重要作用的许多领域之一与功能安全和 ISO 26262标准有关。 例如,汽车工程师需要确保他们的设计没有单一的故障点,他们坚持这个标准的 ECC-CRC 和奇偶校验,或者其他技术,如三模冗余(或 TMR)。

    对于某些用于安全目的的应用程序来说,HSI 也具有重要的历史意义。 你可以看到很多情况下,内存映射是用一个关键序列锁定的,在这个序列中,必须用特定的值将一系列写入某个地址,以使状态机能够通过解锁整个内存映射所需的进程。

    最后,医疗是一个硬件/软件接口非常重要的领域,因为遵守某些要求对于任务至关重要。 此外,他们也都把他们自己独特的要求放在 HSI 层本身上,影响了如何实现某些因素以及未来的情况。

    不幸的是,正如 HSI 在理论上一样重要,在执行过程中,它在很大程度上处于最糟糕的停滞状态。 这就像以前一样重要,但是有些挑战是绝对阻碍创新的,而不是推动创新向前发展。

    在最后

    毫无疑问,在处理复杂的硬件 / 软件界面时,存在着许多挑战。 然而,通常情况下,也存在着大量的机会。这一领域的进步,IDesignSpec 只是众多例子中的一个,使得人们有可能改变他们对于 HSI 的看法变得更好

    硬件 / 软件接口背后的想法确实有很长的路要走,而且他们还有很长的路要走。 但与此同时,好东西是值得为之奋斗的,因为"正确的方法"几乎保证了整体生产力的显著提高。 "错误的方法"保证丢失大量的周期调试等问题,这意味着它根本不是一个真正的选择。

    参考资料:

    https://www.agnisys.com/products/idesignspec-uvm-register-generator/

    https://www.agnisys.com/hardware-software-interface-hsi-specification-and-productivity-improvement/

    http://www.embedded-computing.com/guest-blogs/the-hardware-software-interface-where-weve-been-and-where-were-going

     

    更多相关内容
  • 计算机组成与设计:软硬件接口技术配套资料,测试题答案
  • 软硬件通用测试系统

    2020-12-23 18:03:08
    上位机安装Windows操作系统,运行设备资源管理、测试设计、测试调度、运行服务器、数据中心、运行客户端、实时动作下载调试器;下位机安装实时操作系统,运行装载器模块、实时进程模块、上传器模块;下位机通过各类...

    1.设备组成

    ETest_RT系统主要由硬件部分与软件部分组成。硬件部分由上位机和实时下位机组成,上位机采用商用便携计算机,下位机采用PXI测控计算机。上位机安装Windows操作系统,运行设备资源管理、测试设计、测试调度、运行服务器、数据中心、运行客户端、实时动作下载调试器;下位机安装实时操作系统,运行装载器模块、实时进程模块、上传器模块;下位机通过各类PXI接口板卡与被测系统相连。ETest_RT系统的硬件结构原理图如下图所示。
    在这里插入图片描述
    ETest_RT采用构件化分层的软件开发框架,软件底层代码基于 GCC / CMake开发环境,采用C++语言开发;软件上层集成框架基于Micosoft Visual Studio 开发环境,采用C# 语言开发,形成图3-2所示的分层结构。
    系统按从硬件到用户抽象层次逐步提高的方式设计,划分为应用层、管理层、变换层和执行层。
    应用层:用户处理测试业务。对上,它为用户屏蔽系统的底层实现技术,使用户专注于测试本身而不必关注系统的技术细节。对下,它调用各种数据,发布测试脚本,指挥测试的启动或终止。
    管理层:系统接收用户在应用层发出的指令,按逻辑单位调度和协调测试动作。对上,它为应用层屏蔽系统的部署细节,使应用层不必为部署差异而变化;对下,它将数据和指令分发到各个组件。
    变换层:系统完成逻辑概念到物理实体的映射转换。对上,它为管理层屏蔽物理设备的工作细节,提供按逻辑单位组织的数据;对下,它向执行层发布具体的硬件操作指令。
    执行层:系统执行实际的物理动作。对上,它回报物理设备输入的数据与状态信息;对下,它操作硬件与被测系统交互。
    软件分设计态和运行态。系统工作于设计态时,不必进行完整软硬件部署。用于规划测试场景、设计测试方案、拟制测试用例、撰写测试脚本、准备测试数据、设计数据监控。
    系统工作于运行态时,必须按测试方案设计要求,部署相关软硬件。用于实施测试方案,运行测试用例,执行测试动作,监控实时数据,获取测试报告,得出测试结果。运行态又可按其部署在被测件与用户之间的位置划分为控制端与执行端,其中执行端工作时无需人工值守。
    在这里插入图片描述
    使用ETest_RT平台进行装备嵌入式系统软件测试的步骤如下(见图3-3所示):
    首先使用设备资源管理器进行设备资源规划,利用测试设计软件建立待测系统模型、设计测试用例及数据,形成测试方案文件。
    测试调度台载入测试方案后,分别启动运行服务器、数据中心、数据监控器。
    运行服务器对测试脚本进行解析,形成测试进程资源,通过实时上位机子系统编译、链接,下载到实时下位机中。
    实时下位机将实时脚本装载,通过参数设置形成实时进程,实时进程在测试过程中,通过PXI总线形式的各类板卡与被测系统交互;
    测试执行的过程中,实时下位机进程向实时上位机部分报送各类数据到数据中心,由数据中心向数据监控器和调度工作台分发各类运行数据。
    测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。
    在这里插入图片描述

    2、各模块主要功能

    (1)硬件部分

    硬件由上位机和实时下位机组成,上位机采用商用便携计算机,下位机采用PXI测控计算机。接口板卡通过PXI接口直接同连接到测试下位机中,构成可满足多种类型接口要求的测试环境。主要硬件部分的指标如下:

    ① PXI机箱

     紧凑型9槽PXI机箱,带1个系统槽、1个触发总线触发槽和7个 PXI/Compact PCI外设槽
     0°C至+50°C的宽温工作范围
     41.6dBA超低运行噪音
     智能机箱管理
     5.9kg轻量铝/钢结构
     尺寸:280mm×177mm×303mm
     350W工业级交流电源
     电源、温度和风扇监控LED

    ② PXI控制器

     Intel® Core™ 2 Duo P8400 2.53GHz处理器
     支持VGA+DVI 双显示
     双通道 DDR3 SODIMM 16GB
     系统最大吞吐量 132 MB/s
     集成SATA 硬盘250G
     集成 I/O
     可编程看门狗定时器

    ③ 1553B总线板卡

     双通道多功能,每通道为双冗余的A、B通道
     支持1M/2M/4Mbps及用户自定义波特率
     帧间隔和消息间隔时间可软件设置
     支持时间戳,分辨率1μs
     支持自测试、错误注入
     支持中断、支持外触发
     BC模式(总线控制器)
     BC帧可编程 
     消息间隔可编程
     非周期性消息可动态插入
     数据双Buffer
     可编程
     BusA、BusB可选
     支持分支跳转消息
     支持错误注入
     RT模式(远程终端)
     单数据Buffer
     双数据Buffer
     子地址循环数据Buffer
     非法命令可编程
     支持错误注入
     BM模式(总线监视器)
     100%消息记录
     监视数据可编程过滤
     接收时间戳

    ④ ARINC429总线接口板卡

     通道数:灵活配置通道数,最大8发8收
     通讯速率:100Kbps,12.5Kbps,50Kbps,48Kbps,98Kbps
     字间间隔:4bits,可程控

    ⑤ CAN总线板卡

     2通道
     通讯速率:支持1Kbps~1Mbps之间的任意波特率
     支持双向传输,CAN发送、CAN接收
     兼容CAN2.0A和CAN2.0B协议

    ⑥ RS232/RS485/RS422总线接口板卡

     通道数:灵活配置通道数,最大4通道
     通讯速率:最高8Mbps
     通讯协议:RS232/422/485(可软件设置)

    ⑦ 模拟量输入AD

     8通道并行采样
     ADC分辨率:16位
     最大采样速率:100KS/s
     量程档程控
     容量存储:4MSa/通道

    ⑧ 模拟量输出DA

     8通道模拟输出
     DAC分辨率:16位
     16通道TTL/COMS数字IO, 输入/输出可程控
     2通道32bit计数器

    ⑨ 数字量输入/输出

     32通道TTL/COMS电平兼容数字I/O
     每通道光电隔离
     最高传输速率1MHz
     大容量存储4MB/通道

    ⑩ 上位机

     CPU: 双核 i5-6200U 2.3GHz
     内存:DDR4 2133MHz,8GB
     固态硬盘:256GB
     显示屏幕:14英寸,分辨率1920*1080
     独立显存:2GB

    (2)设计工作台

    设计工作台对待测系统及其对外接口进行建模,进行协议编辑及分析、创建测试监控、建立硬件规划、创建及管理测试用例,确定测试要准备的接口设备数量。其主要功能包括:
     进行测试方案管理,针对测试方案的操作有:新建方案、打开方案、保存方案。
     每个测试方案中,可以包含一个到多个测试项目,多个测试项目的存在使得每个测试方案可以完成多个测试项目的设计,便于开展多个配置项到系统的集成测试。
     测试项目有新建、重命名、删除和查看属性的操作。
     用图形化的方式对被测系统、外围系统及被测系统对外接口进行描述,包括接口数量和接口类型,包括RS422、1553B、CAN、AD、DA、DI、DO、CT、Freq-CT、TCP等类型;能够设定接口参数。
     创建接口协议,并使用协议描述语言进行协议描述,包括报文包头、包尾、校验等,描述各个字段类型及编码方式,以及分支、循环等结构。
     为了适应各种数据通信的需要,协议字段具有丰富的类型,包括:整形(无符号和有符号,8位/16位/32位/自定义长度)、浮点型、布尔类型、条件语句类型、分支语句类型、计算字段、校验字段、数组字段。
     创建测试监控,描述实时数据监控的监控内容和显示形式,并可设定报警条件。
     用户可以在测试监控模块添加测试监控并在监控面板上添加数据监控仪器,通过不同的类型监控仪器绑定协议字段或者字段按照某种公式运算的结果,从而在运行时通过监控仪器指针或数值的改变直观地显示出测试通讯时数据的变化。
     测试监控工具栏管理所有的测试监控仪表,包括数字表仪器,圆盘仪表,曲线图,枚举类型等。选择合适的监控仪表,将其拖拽到监控面板的合适的位置,即可添加该监控仪表到监控面板上。用鼠标拖拽监控仪表的边缘,即可调整其大小。
     打开“属性”标签页,可以修改测试仪表的属性。其中最重要的属性是“协议段”属性,表明了该监控仪表的数据来源。
     通过“协议段”属性右侧的展开按钮,可以打开“绑定数据协议”对话框,其中显示当前项目中的仿真模型中的所有的协议和协议段。
     测试仪表的数据源,既可以是一个协议字段,也可以是若干个协议字段组成的公式。
     在“绑定数据协议”对话框下部的输入框中输入协议字段,或协议字段组成的公式。双击需要的字段名称,可以添加该字段名称到自定义公式的光标所在位置。
     创建测试硬件规划,确定测试需要使用的接口板卡设备,以及接口板卡设备对应的资源。
     创建测试用例,并提供测试用例的管理方式,包括分组、删除、重命名等。
     创建测试用例的内容,包括使用测试脚本描述测试的过程,包括变量定义、条件语句、循环语句、输出语句、数学运算、函数定义等。
     提供测试脚本的扩展接口,能够实现向待测件的数据交互和数据自动解析,将比特流解析成具有意义的用户数据。
     提供时序控制的方式,能够按照一定的时序进行规定的操作。
     提供运行环境设置方式,设置测试运行期间的仿真模型服务器、数据中心服务器、测试执行服务器和客户端的IP地址和端口号。
     提供对标准输入输出监控进行配置的功能,确定标准输入输出监控的类别配置。
     提供测试脚本执行方式,能够运行用户选择的测试脚本;用户能够选择终止脚本运行。
     能够查看输出信息及错误信息。

    (3)测试运行服务软件

    测试运行服务软件包括测试调度台、运行服务器和数据中心,它们是与客户端软件相配合,驱动测试数据,进行自动化测试执行。主要实现以下功能:
     提供进程调度服务后台运行程序,在进程调度代理的帮助下,根据测试设计软件的设计,在测试主机上启动测试执行、客户端、服务器等进程,并通过进程调度服务协调各个软件的运行逻辑。
     提供仿真模型服务器后台运行程序,通过仿真模型服务器解析测试设计所建立的仿真模型,实现测试执行时数据收发的仿真解析服务。
     提供数据中心服务器后台运行程序,在测试用例执行过程中,在数据中心服务器中集中统一处理通道中的收发收据,确保数据监控的分布式实现。
     提供用例服务器后台运行程序,解析处理测试设计中所编写测试用例的执行过程。
     提供标准输入输出监控窗口程序,可以显示仿真模型服务器、数据中心服务器、客户进程以及用例服务器运行过程中的调试信息。
     解析测试脚本中的变量定义、条件语句、循环语句、输出语句、数学运算、函数定义等语句,进行相应的操作。
     解析测试脚本扩展接口,实现向待测系统进行数据发送/接受和数据解析。
     解析测试脚本,按照时序控制要求进行操作。
     在测试启动时记录所有输入数据;在测试过程中记录所有输入/输出数据;在测试完成后自动生成汇总报表。
     按照用户要求即时停止测试用例的执行。
     记录并显示测试用例的执行结果。

    (4)运行客户端和数据监控器

    运行客户端介于测试执行服务器与上位机之间,执行通信代理,负责数据的转发和客户端测试过程的管控,为上位机提取环境数据。数据监控器则以虚拟仪表或图表方式显示当前测试数据。两个模块主要实现以下功能:
     管理实时子系统,建立实时子系统与运行态控制端之间的连接关系。
     为实时子系统提供运行资源。
     登录测试服务软件后,显示测试设计软件设计的全部测试监控界面,可选择一个或多个测试监控面板进行测试监控。
     运行指定的测试监控,在测试执行过程中实时显示指定的测试数据,提供数字仪器、仪表盘、枚举项、曲线图等数据监控方式。
     可以实时显示测试执行中的测试数据;
     可以以解析后的协议数据格式显示测试数据,也可以以二进制、八进制、十六进制显示测试数据。
     可以设置数据过滤条件,实现界面显示特定数据的功能。
     可以设置数据报警条件,当出现某种特性数据时,软件以醒目的形式显示出满足报警条件的数据。
     可以进行数据查询,可以查询某个时间段的报文,也可以查询某个协议字段的数据。
     可以对指定的数据进行统计,也可以查看数据曲线图。

    (5)设备资源管理

    设备资源管理软件模块提供了系统支持的测试设备及通道的管理功能,提供了系统设备扩展的接口。其主要实现以下功能:
     添加、删除系统设备。
     修改系统设备的数量。
     添加、删除设备包含的通道。
     修改设备包含的通道的数量及类型。
     保存设备信息到设备资源文件中,在测试设计软件中使用。

    (6)运行态执行端实时上位机

    运行态执行端是实现实时性的关键子系统,包括实时上位机和实时下位机。其形态如下图所示(虚线框是系统的其它部分):
    在这里插入图片描述
    实时上位机有环境管理、编译器、下载调试器、数据格式化等模块。
     环境管理模块,管理所有输入的元数据。这些数据用于脚本解析、数据格式化。环境管理的设计是集成性原则所要求的。环境数据目前已知有如下类别:设备规划、协议描述、仿真模型和动作脚本。
     编译器,综合环境管理所提供的元数据,编译产生可供下位机实时操作系统运行的二进制代码。由于主要的编译工作在设计态时即已完成,这里主要是链接。编译器工作的主要内容有:将测试模型提取为“实时动作脚本语言”对象;全局优化;链接仿真模型、协议描述语言、RASL三个部分,加入主框架,形成实时程序;当系统被置于调试状态时,嵌入调试信息。
     下载调试器将编译器编译的结果发送到下位机。当系统处于调试状态时,对实时动作脚本进行调试。调试器支持以下功能:远程调试、程序载入、程序挂接、手动中断、断点设置、变量观察和单步执行。
     数据格式化,对上传给数据中心的数据进行格式化处理,主要是利用环境管理数据还原名称与结构等元数据。

    (7)运行态执行端实时下位机

    运行态执行端实时下位机包含装载器、实时进程和上传器等模块。
     下位机装载器,从上位机接收程序,设置环境,载入并启动代码。可以接收上位机指令,通知程序关闭。当系统处于调试状态时,启动调试 stub 供上位机调试器连接。
     下位机实时进程,由装载器启动上位机程序启动生成,它具体完成实时测试动作。实时进程的代码主框架固定,以静态库的形式存放在上位机的编译器那里。在主框架中嵌入仿真代码、测试动作代码后形成完整的程序。所以实时进程具有通用的基本通信能力,包括可接收装载器的关闭指令,可向上传器发送相关数据。当系统处于调试模式时,实时进程会包含必要的调试代码。
     下位机上传器从实时进程接收数据,并异步向上位机上传。

    (8)辅助工具

    工具软件提供了嵌入式系统测试时部分常用的软件工具,主要包括以下软件模块:
     曲线数据生成工具:具有曲线数据编辑、坐标选择、曲线数据读取、曲线数据存储等功能,配合测试执行软件,提供一种测试数据生成手段。
     测试数据记录与查看工具:在测试执行时,可记录测试执行中的数据,供测试执行结束后查看与分析,包括协议选择、数据过滤、报警条件设置功能。
     应用协议生成工具;提供应用协议的表格化编辑功能,可以设置协议的字段组成、字段类型、字段默认取值等。
     CRC插件诊断器与CRC插件生成器:提供CRC校验算法的设计功能,可设计自定义的CRC算法,诊断其算法正确性,并最终形成协议描述语言中的CRC字段算法插件。

    展开全文
  • 针对这种情况,作者提出一种软硬件协同测试的方法,利用FPGA实现PC机与待测设备的互连,不但尧分利用了PC机的丰富资源,同时发挥出硬件工作速度快的特点。该系统采用FPGA完成控制功能,实现高速、实时的双向数据通道...
  • 在深入研究Nios自定制指令的软硬件接口的基础上,利用Matlab/DSP Builder建立快速傅里叶变换FFT核心运算指令基本模型,然后用Altera公司提供的Singacompiler工具对其进行编译,产生Quartus Ⅱ能够识别的VHDL源程序,...
  • 本文硬件电路简单、性能稳定可靠,解决了传统的RS232接口数据采集器诸多问题。  在设计AVRUSB接口固件(ATmega8单片机程序)时,USB接口参数配置按USB-isp(同样是AVRUSB虚拟RS232接口)下载线设置;并在PC机...
  • 摘要:在深入研究Nios自定制指令的软硬件接口的基础上,利用Matlab/DSP Builder建立快速傅里叶变换FFT核心运算指令基本模型,然后用Altera公司提供的Singacompiler工具对其进行编译,产生 QuartusⅡ能够识别的VHDL...
  • 接口测试是什么?有什么意义?

    万次阅读 多人点赞 2019-06-04 17:50:45
    对于测试人员来说,掌握接口测试基本上已经成为一个标配的能力了,但是对于初学者来说,看着网上一大堆高大上的名词解释,总会认为接口测试是一个很高深的东西(包括我刚开始也这么认为),所以今天我就尽量用简单...


    对于测试人员来说,掌握接口测试基本上已经成为一个标配的能力了,但是对于初学者来说,看着网上一大堆高大上的名词解释,总会认为接口测试是一个很高深的东西(包括我刚开始也这么认为),所以今天我就尽量用简单通俗的表达告诉你,接口测试其实很简单!

    一、什么是接口?

    我扒遍了各种相关名词解释和百科词条,发现关于接口的解释还真是多种多样,这里我只列出一个相对更客观更通用的定义,虽然听起来也很别扭。

    接口,泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

    通俗点说,能够把某个硬件或软件模块封装起来供外部使用,都可以称之为接口,可以存在于所有的软硬件设备之间。

    我们在生活中无时不刻不在使用各种接口,比如我们乘坐电梯里面的按钮就是一个接口,我们开车一个踩油门它也是一个接口,我们计算机操作系统中也有很多接口。

    在 IT 行业中,我们通常所说的接口指的都是 API 软件接口,即 Application Programming Interface,应用程序接口,简称 API。本文中后面的部分中提到的接口都是指 API 接口。

    对于 API 接口来说,使用者只需要关心输入和输出,不需要了解接口内部的具体实现逻辑。

    我们工作中常见的接口可以分为两类:

    • 系统内部的接口:
      • 同一个系统内部不同模块、不同服务之间的调用
      • 如系统内部注册、登录接口的调用,查询订单、JDBC接口调用等。
    • 系统外部的接口:
      • 不同系统甚至不同公司之间的接口调用
      • 如同一公司的系统 A 和 系统 B 之间的调用,第三方登录时调用外部公司的微博登录、微信登录接口等。

    二、软件测试模型

    我们看一下针对接口的测试位于软件测试模型中的位置。

    关于测试模型,最出名的就是测试金字塔模型。

    测试金字塔

    测试金字塔的概念是由敏捷开发大师 Mike Cohn 首先提出的,主要包含以下几点:

    • 把软件测试分为 UI 界面测试、接口测试、单元测试三层结构
    • 应该进行更多的单元测试,而不仅仅是通过用户界面运行的测试
    • 单元测试稳定性更高、更高效

    但是在实际工作中,单元测试对技术专业性要求更高,很多情况下都是由开发来实施。虽然单元测试能够尽早的发现问题,减小修复成本,但对测试人员的高要求也意味着更高的人力成本,所以对接口测试层的投入显得更加高效、成本更低。

    结合实际现状,对接口测试和 UI 层测试以及单元测试进行了比较,最终认定接口(API)测试可以获得更高的投资回报,所以有了金字塔模型的改进版–橄榄模型(不倒翁模型):

    橄榄模型

    三、接口测试的意义

    1. 更早的发现问题

    随着敏捷测试的盛行,我们都知道测试工作要尽早的介入到项目开发周期中,因为越早的发现 bug,修复的成本就越低。

    然而功能测试一般都要等到系统提供可测试的 UI 界面后才能进行,单元测试又要求较高的专业性和人力成本,所以选择接口测试来更早的介入测试。

    接口测试可以在功能界面未开发出来之前对系统的接口进行测试,从而更早的发现总是并以更低的成本修复问题。

    2. 缩短产品周期

    接口测试更早的介入,可以更早的发现并解决 bug,从而使得留到后期功能测试阶段的 bug 数量减少,最终缩短整个项目的上线时间,有助于实现敏捷测试。

    3. 发现更底层的问题

    系统中的有些 bug 如果想通过 UI 层功能测试会比较困难,或者构造测试数据和测试条件非常复杂,而通过接口测试可以更简单、更全面的覆盖到底层的代码逻辑,从而发现一些隐藏 bug。

    尤其是一些异常的、极端的情况,可以用接口测试很容易的验证。

    四、接口测试策略

    接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

    测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

    具体来说,就是根据测试文档编写测试用例,执行测试,查看不再的参数请求接口时返回的数据是否符合预期,跟普通的测试没太大区别。

    接口测试策略包括接口功能测试、接口性能测试和接口安全测试三方面,具体测试点包含但不局限于如下内容:

    接口测试点

    最后,关于接口测试工具也有很多,常用的有 postman、soapUI、jmeter 等,具体使用方法都不复杂,后面有时间 再一一详述。

    这篇文章测重于对接口理论知识的理解,给出的只是方向性的指导,没有详细的具体实践,所以肯定还有同学不知道该怎么办,不过没关系呀,这都是正常的,关于接口测试的内容非常多,也不是一两篇文章能够全部讲完,最重要的是先知道大概的方向,然后就去大胆实践,在做的过程中成长最快。

    展开全文
  • 详细介绍DSP与FLASH存储器的两种硬件接口方式及在线编程,分析了两种硬件接口方式下在线编程的区别,给出了相应的在线编程核心代码并在实际电路上测试通过,可作为DSP嵌入式系统设计的参考。
  • 同时阐述了基于AC488C02的语音网关的软硬件设计方法; 电话接口的性能测试结果表明, 所提出的方案在因特网运行良好。 关键词: VoIP ; FXS语音网关; H.323 近几年, Internet在各个领域的应用和迅速发展, 使得各行各业...
  • 摘要:详细介绍DSP与Flash存储器的两种硬件接口方式及在线编程,分析了两种硬件接口方式下在线编程的区别,给出了相应的在线编程核心代码并在实际电路上测试通过,可作为DSP嵌入式系统设计的参考。  引言  随着...
  • 史上最详细的接口测试,一篇学会接口

    千次阅读 多人点赞 2021-05-12 17:10:18
    大多数人对于接口测试都觉得是一种高大上的测试,觉得学会接口测试就可以从小白测试员,变成了高级测试员,但其实接口测试只是测试的基础内容 什么是接口 接口泛指实体把自己提供给外界的一种抽象化物(可以为另一...

    大多数人对于接口测试都觉得是一种高大上的测试,觉得学会接口测试就可以从小白测试员,变成了高级测试员,但其实接口测试只是测试的基础内容
    在这里插入图片描述

    什么是接口

    接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

    人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。
    在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。

    接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。

    你要买一俩车,你不用知道车在工厂里面需要什么原理,怎么构造模型,怎么制作,你只要到能找到窗口,给出你要买车的信号,窗口返回给你一个车的相关信息的信号。接口也是这样,你不用理解程序内部是怎么样的,你只要理解你给出请求从而得到的请求是正确的,即你发出A的数据,必须得到B的返回,而不是C。
    为什么要做接口测试
    在了解为什么要接口测试之前,我们需要了解以下几点:1.越底层,越稳定。2.越底层,越高效。3.越底层,越低成本。4.越底层,越难实施。
    接口测试测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。就如同之前的买车时,我们需要确定你给出的是买车信号,返回的是相关车辆信息,而不是买房信息。
    接口测试的模板

    在这里插入图片描述

    接口的构成
    在这里插入图片描述

    请求协议:

    http — 普通的http请求,默认端口为80
    https — 加密的http请求,传输数据更加安全,默认端口为443
    ftp — 文件传输协议,主要用来传输文件,默认端口为21
    请求IP:就是指提供接口的系统所部署的服务器地址,可以是直接的IP地址,也可以是域名

    请求端口:如果不填端口,都是默认端口,否则需要填写端口号

    接口路径:指系统提供的接口在什么位置

    接口参数:参数在接口路径后,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数,

    http中的常用请求方式

    这个请求方式,作为一位测试人员,不需要担心不知道该项目请求方式是什么,一般情况是在开发文档中有具体的说明请求方式是什么,不过我们有时候需要有自我的判断这个地方用什么接口合适,比如输入密码的地方一定要用post方法,绝对不能用get的方法。

    序号 方法 描述

    	1	GET	请求指定的页面信息,并返回实体主体。
    	2	HEAD	类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    	3	POST	向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    	4	PUT	从客户端向服务器传送的数据取代指定的文档的内容。
    	5	DELETE	请求服务器删除指定的页面。
    	6	CONNECT	HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    	7	OPTIONS	允许客户端查看服务器的性能。
    	8	TRACE	回显服务器收到的请求,主要用于测试或诊断。
    	9	PATCH	实体中包含一个表,表中说明与该URI所表示的原内容的区别。
    	10	MOVE	请求服务器将指定的页面移至另一个网络地址。
    	11	COPY	请求服务器将指定的页面拷贝至另一个网络地址。
    	12	LINK	请求服务器建立链接关系。
    	13	UNLINK	断开链接关系。
    	14	WRAPPED	允许客户端发送经过封装的请求。
    	15	Extension-mothed	在不改动协议的前提下,可增加另外的方法。
    

    接口测试的重点

    目的:测试接口的正确性和稳定性;

    原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;

    重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;

    核心:持续集成是接口测试的核心;

    优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);

    用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);

    接口测试质量评估标准

    业务功能覆盖是否完整
    业务规则覆盖是否完整
    参数验证是否达到要求(边界、业务规则)
    接口异常场景覆盖是否完整
    接口覆盖率是否达到要求
    代码覆盖率是否达到要求
    性能指标是否满足要求
    安全指标是否满足要求
    接口模拟测试

    接口:https://api.apiopen.top/getWangYiNews

    请求类型:POST

    在线测试:https://www.sojson.com/httpRequest/

    软件测试:postman、jemter(这两个后期出专门的使用教程)

    1、输入相应的数据

    在这里插入图片描述

    2、获取的数据进行分析

    这一块是表头,一般情况不需要特别记住,只要了解就可以了,注意返回的状态码是否是正确的,有一些时候需要注意加载的时间

    在这里插入图片描述

    这一块内容为表主体,也就是我们查看返回的数据是否正确。

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210512171300590.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1hzazIxNQ==,size_16,color_FFFFFF,t_70)
    

    HTTP状态码列表

    状态码	状态码英文名称	中文描述
    100	Continue	继续。客户端应继续其请求
    101	Switching Protocols	切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
     
    200	OK	请求成功。一般用于GET与POST请求
    201	Created	已创建。成功请求并创建了新的资源
    202	Accepted	已接受。已经接受请求,但未处理完成
    203	Non-Authoritative Information	非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
    204	No Content	无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
    205	Reset Content	重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
    206	Partial Content	部分内容。服务器成功处理了部分GET请求
     
    300	Multiple Choices	多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
    301	Moved Permanently	永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
    302	Found	临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
    303	See Other	查看其它地址。与301类似。使用GET和POST请求查看
    304	Not Modified	未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
    305	Use Proxy	使用代理。所请求的资源必须通过代理访问
    306	Unused	已经被废弃的HTTP状态码
    307	Temporary Redirect	临时重定向。与302类似。使用GET请求重定向
     
    400	Bad Request	客户端请求的语法错误,服务器无法理解
    401	Unauthorized	请求要求用户的身份认证
    402	Payment Required	保留,将来使用
    403	Forbidden	服务器理解请求客户端的请求,但是拒绝执行此请求
    404	Not Found	服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
    405	Method Not Allowed	客户端请求中的方法被禁止
    406	Not Acceptable	服务器无法根据客户端请求的内容特性完成请求
    407	Proxy Authentication Required	请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
    408	Request Time-out	服务器等待客户端发送的请求时间过长,超时
    409	Conflict	服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
    410	Gone	客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
    411	Length Required	服务器无法处理客户端发送的不带Content-Length的请求信息
    412	Precondition Failed	客户端请求信息的先决条件错误
    413	Request Entity Too Large	由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
    414	Request-URI Too Large	请求的URI过长(URI通常为网址),服务器无法处理
    415	Unsupported Media Type	服务器无法处理请求附带的媒体格式
    416	Requested range not satisfiable	客户端请求的范围无效
    417	Expectation Failed	服务器无法满足Expect的请求头信息
     
    500	Internal Server Error	服务器内部错误,无法完成请求
    501	Not Implemented	服务器不支持请求的功能,无法完成请求
    502	Bad Gateway	作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
    503	Service Unavailable	由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
    504	Gateway Time-out	充当网关或代理的服务器,未及时从远端服务器获取请求
    505	HTTP Version not supported	服务器不支持请
    

    如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到644956177,群内会有不定期的分享测试资料。
    如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
    在这里插入图片描述

    上面这些是我的收集和整理,这些资料,对于【软件测试】的朋友来说应该是最全面的仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

    关注【程序媛木子】微信公众号里海量资源免费获取,

    展开全文
  • 软件测试-硬件配置测试

    千次阅读 2020-11-09 21:22:42
    1.配置测试综述 家用和商用领域基于Windows标准的PC有哪些配置可能性:个人计算机、部件、外设、接口、可选项和内存、设备驱动程序。 1.1 分离配置缺陷 分离配置缺陷需要有人在不同的配置中运行软件时仔细检查代码:...
  • SOC设计验证方法性能的优劣直接影响到芯片设计质量和设计效率,在归纳总结软硬件协同验证测试技术、方法和调试技巧基础上,设计了一种基于C语言和串行接口软硬件协同验证测方法.SOC设计实践证明,该方法透明、简便、...
  • 文章目录相同点1....Created with Raphaël 2.2.0了解产品需求说明产品的测试点分析根据测试点设计测试用例根据用例展开测试结果记录 问题分析问题提交与追踪与开发团队产品团队的沟通 最终完成测试提交测试报告
  • 详细介绍DSP与Flash存储器的两种硬件接口方式及在线编程,分析了两种硬件接口方式下在线编程的区别,给出了相应的在线编程核心代码并在实际电路上测试通过,可作为DSP嵌入式系统设计的参考。关键词:在线编程
  • 以往的IP电话设备主要采用H.323协议实现,但是H.323协议...提出一种基于PTD2112的VoIP网关的实现方法,阐述了基于PTD2112的 VoIP网关的软硬件设计过程,电话接口的性能测试结果表明,所提出的方案在因特网上运行良好.
  • 硬件测试和软件测试的区别如下: 相同点: 一、测试的流程 拿到一个产品,需要做测试前的准备工作(如环境,数据,工具,人员,任务等) 测试大致流程如下: 设计规格-测试方案-测试用例-执行测试用例-结果记录...
  • Postman实现接口测试内容大纲一览: 一、什么是接口?为什么需要接口? 二、接口返回的数据格式。 1.json格式 2.xml格式 3.html格式 三、接口协议:(通过接口地址分辨) 四、企业当中如何做接口测试? 五、...
  • requests接口测试从入门到精通

    千次阅读 2022-04-13 16:09:59
    释义:提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。软件不同组成部分之间衔接的约定。 举例:你想求天使给你一堆钱,但你又不认识天使,而且也不...
  • 在深入研究1553B总线协议和总线实现方式的基础上,通过以BU-61580协议芯片为核心设计了原理样机的软硬件系统,原理样机实现了1553B总线协议终端的功能,并结合总线测试卡进行了功能测试测试结果表明,数据在1553B...
  • 支持国产软硬件环境下具备测试工装开发能力的实时半实物仿真测试平台,以此来建立武器系统装备的嵌入式软件测试环境。该平台由软件和硬件两部分组成,软件部分需要具有测试设计、测试运行、测试监控与数据分析等功能...
  • 基于SDSoC的软硬件协同设计流程简介 Software Define 的概念 近年来“Software Define”软件定义这个词持续火热,全球知名技术研究和咨询公司Gartner早在对2014年最有战略意义的十大技术与趋势做出预测时,便提出...
  • Postman实现接口测试内容大纲一览: 一、什么是接口?为什么需要接口? 二、接口返回的数据格式。 1.json格式 2.xml格式 3.html格式 三、接口协议:(通过接口地址分辨) 四、企业当中如何做接口测试? 五、...
  • 下面我们进入正题—接口自动化测试面试题 一、get和post的区别? http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议 Get会把参数附在url之后,用?分割,&连接不同参数,Get获取...
  • 承接软硬件项目外包开发

    千次阅读 2019-09-10 16:23:07
    多年来一直从事轨道交通、铁路专用电子设备开发,做软硬件开发培训,小批量委托生产,曾做过很多项目,单片机软件开发及硬件设计的经验丰富,具体项目信息如下: 1、采用单片机(PIC)设计架空线路单相故障指示器,...
  •  ·描述一种度量多核性能的独特方法——“Roofline model”,自带benchmark测试和分析AMD Opteron X4、Intel Xeon 5000、Sun UltraSPARC T2和 IBM Cell的性能。  ·涵盖了一些关于闪存和虚拟机的新内容。  ·提供...
  • 单片机MCU软硬件联调基本方法

    万次阅读 2017-11-12 10:35:10
    做MCU软件开发,离不开硬件,软硬件调试的技能也是必须掌握的,现在介绍一些软硬件联调的基本方法。 软硬件联调常使用的方法有 :分支思想、分层法、对比法。这些方法不是只属于软硬件联调可用,在软件开发过程也是...
  • 最近公司开发新的一套系统,开发出来的方案会基于dubbo分布式服务框架开发的,那么什么是dubbo,身为测试的我,第一眼看到这个,我得去了解了解dubbo是啥玩意,为开展的测试工作做准备,提前先学 dubbo的相关知识。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,024
精华内容 21,609
热门标签
关键字:

软硬件接口测试