一 : MIPI CSIDSI简介及信号和协议测试方法
2012年3月第31卷 第3期
前沿技术
MIPI CSI/DSI简介及信号和协议测试方法
李凯
安捷伦科技(中国)有限公司
对于现代的智能手机来说,其内部要放入太多各种不同接口的设备,给手机的设计和元器件选择带来很大的难度。[www.61k.com)图1是一个智能手机的例子,可以看到其内部存储、显示、摄像、声音等内部接口都是各不相同的。即使以摄像头接口来说,不同的摄像头模组厂商也可能会使用不同的接口形式,这给手机厂商设计手机和选择器件带来了很大的难度。
MIPI(mobile industry processor interface)是2003年由ARM,Nokia,ST,TI等公司成立的一个联盟(www.mipi.org),目的是把手机内部的接口如摄像头、
显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度,增加设计灵活性。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。统一接口标准的好处是手机厂商根据需要可以从市面上灵活选择不同的芯片和模组,更改设计和功能时更加快捷方便。
目前已经比较成熟的MIPI应用有摄像头的CSI接口、显示屏的DSI接口以及基带和射频间的DigRF接口,如图3所示。UFS、LLI等规范正在逐步制定和完善过程中。
图2 MIPI组织智能移动通信设备的内部架构
MIPI组织主要致力于把移动通信设备内部的接口标准化从而减少兼容性问题并简化设计。图2是按照MIPI组织的设想未来智能移动通信设备的内部架构。
图3 MIPI应用接口
CSI/DSI的物理层(Phy Layer)由专门的WorkGroup负责
图1 智能手机
制定,其目前采用的物理层标准是
中国科技核心期刊
-11-
idsi MIPI CSIDSI简介及信号和协议测试方法
前沿技术
可以高速传输,而在不
需要大数据量传输时又
能够减少功耗。[www.61k.com]图5是
用示波器捕获的MIPI
信号,可以清楚地看到
HS和LP信号。
由于MIPI D-PHY
图4 D-PHY配置的信号比较复杂,要保证
接口信号和协议的一致性
D-PHY,如图4所示。D-PHY采用1需要很复杂的测试。为了提高测试的对源同步的差分时钟和1~4对差分数效率,Agilent提供了基于示波器和逻据线来进行数据传输。数据传输采用辑分析仪的MIPI D-PHY测试平台。DDR方式,即在时钟的上下边沿都有 数据传输。D-PHY的物理层支持HS(high speed)和LP(low power)2种工作MIPI D-PHY的信号质量的模式。HS模式下采用低压差分信号,测试方法主要参考MIPI协会发布功耗较大,但是可以传输很高的数据的CTS(D-PHY physical layer 速率(数据速率为80 M~1 Gbps); conformance test suite)。要进行MIPILP模式下采用单端信号,数据速率很信号质量的测试,首先要选择合适带低(<10 Mbps),但是相应的功耗也宽的示波器,按照MIPI协会的要求,很低。2种模式的结合保证了MIPI总测试MIPI的信号质量至少需要4 GHz线在需要传输大量数据(如图像)时带宽的示波器。为了提高测试的效
图5 示波器捕获的MIPI信号
-12-中国科技核心期刊
2012年3月第31卷 第3期率,测试中推荐采用4支探头分别连接clk+/clk-和data+/data-信号进行测试,对于有多条Lane的情况可以每条Lane分别测试。对于MIPI模组或芯片的测试可以根据MIPI协会推荐的方法设计评估板TVB(test vehicle board)并结合协会提供的RTB(reference termination board)进行信号测试,如图6所示。图6 RTB而对于系统厂商如手机厂商等,由于系统设计已经完成,要进行MIPI的信号测试只能使用焊接或点测探头连接PCB上的实际信号进行测试,以下是典型的连接图,如图7所示。测试系统的核心是Agilent的U7238A MIPI一致性测试软件平台,软件采用图形化的界面指导用户完成测试参数的设置和连接,并自动完成信号质量的测试和测试报告的生成。图8是软件的设置界面和测试报告。除了做信号质量的测试以外,为了方便复杂问题的调试和分析,Agilent还在示波器上提供了N8802A的MIPI D-PHY的协议触发和解码方案,通过简单的设置就可以实现对CSI/DSI协议的解码分析,可以方便
idsi MIPI CSIDSI简介及信号和协议测试方法
2012年3月第31卷 第3期
图7 连接图
图8 软件设置界面和测试报告
中国科技核心期刊前沿技术用户发现隐藏在上层协议里的问题故障。(www.61k.com]图9是其设置和解码的界面。以下是MIPI D-PHY信号质量测试推荐的测试配置:宽带示波器:DSO9404A;MIPI D-PHY信号质量测试软件:U7238A信号一致性测试选件; 复杂信号分离软件:N5415B InfiniiScan选件;MIPI D-PHY协议触发和解码软件:N8802A CSI/DSI解码选件;有源探头放大器:1132A×4;探头放大器前端附件:E2669A×4。 对于从事MIPI CSI/DSI的芯片和外围模块开发的用户来说,需要的是能够全面地验证被测件的功能及在各种可能出现的情况下的表现,这仅仅依靠示波器里提供的信号质量分析和协议解码功能就不太够了。为此,Agilent还为此提供了全套的MIPI CSI/DSI的协议分析和信号激励方案。这套协议测试方案以16800/16900系列逻辑分析仪、N4861B MIPI CSI/DSI数据激励模块、N4851B MIPI CSI/DSI协议分析模块构成,如图10所示。逻辑分析仪用于生成复杂的CSI/DSI的数据包,并对捕获到的数据包进行解包分析。N4861B用于把逻辑分析仪产生的数据包按CSI/DSI的信号格式和电平送给-13-
扩展:mipi信号简介 / mipi协议 / mipi信号
idsi MIPI CSIDSI简介及信号和协议测试方法
前沿技术
图9 设置和解码的界面
被测件,N4851B用于捕获实际CSI/LP模式高电平范围:800 mV~ DSI数据线上的信号并送给逻辑分析3.3 V仪进行数据解析。[www.61k.com]LP模式低电平范围:-100~
以下是激励模块N4861B的主要指+100 mV
Slew Rate控制:Fast, medium, slow, slowest
波形时序控制:CLK-POST timing;CLK-PRE timing;CLK-PREPARE timing;CLK-TRAIL timing;CLK-ZERO timing;HS-
图10 协议测试方案EXIT timing;HS-PREPARE;HS-标:Zero;HS-TRAIL;LPX;TA_Get;
支持的数据速率:80 M~1 GbpsTA_GO;(HS模式);800 K~10 Mbps(LP工作模式:Master模式)支持的协议规范:MIPI D-PHY
支持的通道数:3条Lane0.89 , 0.90, 1.00HS模式高电平范围:+150~ 以下是分析模块N4851B的主要指+450 mV标:
HS模式低电平范围:-17~217 mV支持的数据速率:80 M~940 Mbps-14-中国科技核心期刊
2012年3月第31卷 第3期(HS模式);最大10 Mbps(LP模式)支持的通道数:4条LaneHS信号灵敏度:100 mV LP信号高电平范围:800 mV~ 3.3 V支持的协议规范:MIPI D-PHY DSI 1.01;MIPI D-PHY CSI-2 1.00CSI/DSI的数据包结构非常复杂,而且LP和HS信号同时存在。为了方便用户快速生成测试数据,测试过程中可以使用逻辑分析仪里面安装的D-PHY DSI数据产生软件来方便地生成需要的测试数据,比如把一副现成的BMP图像文件直接插入到测试数据包里。总线上实际的数据可以用协议分析模块捕获分析。为了直观地发现总线上的错误,分析软件除了可以对数据包结构内容进行解码以外,还提供了图像提取功能,即可以从DSI/CSI的数据包里把其传输的图像数据直接提取出来,方便了测试结果的分析。图11是一个进行显示屏的DSI总线功能测量的一个例子。图12是用这套系统仿真Camera对手机的应用处理器的CSI功能进行测试的一个例子。表1是MIPI CSI/DSI协议测试推荐的配置。在进行完信号质量、协议功能或各个模块单独的测试以后,在系统测试时问题可能会更加复杂,针对这种需求,Agilent还提供了覆盖信号质量
idsi MIPI CSIDSI简介及信号和协议测试方法
2012年3月第31卷 第3期
前沿技术
图11 DSI总线功能测量图12 CSI功能测试
表1 MIPI CSI/DSI协议测试推荐配置
D-PHY协议分析测试 16901A 2-slot Logic Analysis System Mainframe, 15-inch Display with Touch Screen 16950B 68-channel, 4 GHz timing, 667 MHz state, 1 M deep logic analysis module 16950B-004 Increase acquisition memory depth to 4M E5378A Probe, 34 channel single-ended Samtec connector, connects to 90-pin LA cable N4851B MiPi DPhy acquisition probe 4 lane E5381A Probe, 17-channel differential flying leads, connects to 90-pin LA cable E5382A Probe, 17-channel single-ended flying leads, connects to 90-pin LA cable D-PHY信号激励需要增加的模块 16720A Pattern generator, 300 M Vector/sec N4861B MiPi DPhy stimulus probe 3 lane N4861B-040 SMA cables for use up to 500Mpbs, 40 IN, 2 sets of 4
数量
1 1 1 2 1 2 2 1 1 1
和协议、功能验证的系统调试和测试方案,如图13所示。(www.61k.com)即用协议分析仪产生激励并进行协议分析,用示波器同时捕获总线上的模拟信号波形,协议分析结果和模拟信号波形都可以放在逻辑分析仪上同时显示,这对于复杂数模混合问题的分析会更加方便。逻辑分析仪和示波器的连接也非常方便,通过Agilent的View Scope功能,只需要1根交叉网线和2根BNC电缆即可以把两者方便互连。
综上可见,MIPI CSI/DSI是智
能手机里的一个全新接口,其测试也比较复杂,Agilent针对其测试提供了从底层信号质量到上层协议、功能测
试等全套的解决方案。通过这些测试手段的综合使用,可以大大加快MIPI CSI/DSI的开发进程。
图13 系统调试和测试方案
中国科技核心期刊
-15-
扩展:mipi信号简介 / mipi协议 / mipi信号
二 : 软件测试实用技术与常用模板
三 : 集成测试-意义和方法
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如数据穿过接口时可能丢失;一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。四 : 软件测试方法与技术考点
简述软件测试的意义。
解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。
什么是软件缺陷?它的表现形式有哪些?
解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。
它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。
简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类?
解:有缺陷。其所属类别与软件产品说明书的要求有关。 什么是软件测试?简述其目的与原则。
解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。
测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。 (2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。 (3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。
测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。
件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。
简述软件开发的几个模式,并说明每种模式对软件测试的影响。
解:大棒模式简单,计划、进度安排和正规开发过程几乎没有,其开发过程是非工程化的。大棒模式的软件测试通常在开发任务完成后进行,很难回头修复存在的问题,测试工作只是向客户报告软件经过测试后发现的情况。
边写边改模式通常
最初只有粗略的想法就进行简单的设计,然后开始较长的反复编写、测试和修复过程,在认为无法更精细地描述软件产品要求时就发布产品。该模式下,软件测试人员将和程序员一起陷入可能是长期的循环往复过程。
瀑布模式将软件生
命周期的各项活动规定为按照固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品。软件测试在后期展开,使得开发中出现的问题直到开发后期才显露,失去了及早纠正的机会。
快速原型模式首先
构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。原型系统在扩充完善过程中不断被检查、测试和修改。
螺旋模式是瀑布模
式与边写边改模式演化结合的形式,并加入了风险评估所建立的软件开发模式,其主要思想是在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段并重复上述过程,直到获得最终产品。测试在每个阶段都要进行,并从最初就参与。 简述软件测试过程。
解:软件测试过程主要包括如下6个活动:测试计划;测试需求分析;测试设计;测试规程实现;测试执行;总结生成报告。
简述软件开发进程与测试进程的关系。
解:软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。
对软件测试的复杂性进行归纳分析。
解:软件测试的复杂性在于:无法对程序进行完全的测试;测试无法保证被测程序中无遗留错误;不能修复所有的软件故障。
分别解释什么是静态测试、动态测试、黑盒测试、白盒测试、人工测试和自动化测试。 解:所谓静态测试是指不运行被测软件,仅通过分析或检查等其他手段达到检测的目的。
所谓动态测试是指通过运行被测软件,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。
黑盒测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后对每个功能单元生成测试数据进行测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为功能测试。
白盒测试又称为结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。
广义上,人工测试是人为测试和手工测试的统称。人为测试的主要方法有桌前检查,代码审查和走查。手工测试指的是在测试过程中,按测试计划一步一步执行程序,得出测试结果并进行分析的测试行为。
自动化测试指的是利用测试工具来执行测试,并进行测试结果分析的测试行为。 如果没有软件规格说明或需求文档,可以进行动态黑盒测试吗?为什么?
解:不行。因为黑盒测试是基于软件规格说明的测试。 如果开发时间紧迫,是否可以跳过单元测试而直接进行集成测试?为什么?
解:不可以。因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。 什么是驱动模块和桩模块?为下面的函数构造一个驱动模块。
int divide(int a, int b) {
int c;
if (b==0) {printf("除数不能为0"); return 0;} c=a/b; return c; }
解:驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块,启动被测模块,最后输出实测结果。
桩模块用以模拟被测模块工作过程中所调用的子模块。
函数驱动模块: void main( ) {
int x,y,z;
scanf(“%d%d”,&x,&y); z=divide(x,y); printf(“%d”,z); }
什么是回归测试?什么时候进行回归测试?
解:回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。每当软件发生变化时就应进行回归测试。 集成测试有哪些不同的集成方法?简述不同方法的特点。 解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合集成4种集成方法。
一次性集成方法需要的测试用例数目少,测试方法简单、易行。但是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使集成测试通过,也会遗漏很多错误进入系统测试。
自顶向下集成在测试的过程中,可以较早地验证主要的控制和判断点;一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;容易进行故障隔离和错误定位。但是在测试时需要为每个模块的下层模块提供桩模块,桩模块的开发和维护费用大;桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测试不充分;涉及复杂算法和真正I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。
自底向上集成可以尽早的验证底层模块的行为;提高了测试效率;一般不需要桩模块;容易对错误进行定位。但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。
混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被集成之前,中间层不能尽早得到充分的测试。 系统测试主要包括哪些内容? 解:系统测试主要包括强度测试、性能测试、恢复测试、安全测试、可靠性测试、安装测试、容量测试和文档测试。 验收测试是由谁完成的?通常包含哪些过程?
解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应参加。通常包含α测试和β测试过程。
分析比较面向对象的软件测试与传统的软件测试的异同。 解:传统的单元测试的对象是软件设计的最小单位——模块。当考虑面向对象软件时,单元的概念发生了变化,此时最小的可测试单位是封装的类或对象,而不再是个体的模块。传统单元测试主要关注模
块的算法实现和模块接口间数据的传递,而面向对象的单元测试主要考察封装在一个类中的方法和类的状态行为。
面向对象软件没有层次的控制结构,因此传统的自顶向下和自底向上集成策略就不再适合,它主要有以下两种集成策略: 基于类间协作关系的横向测试;基于类间继承关系的纵向测试。
系统测试一般不考虑内部结构和中间结果,因此面向对象软件系统测试与传统的系统测试差别不大。
面向对象软件测试的整体目标和传统软件测试的目标是一致的,即以最小的工作量发现尽可能多的错误,但是面向对象测试的策略和战术有很大不同。测试的视角扩大到包括复审分析和设计模型,此外,测试的焦点从过程构件(模块)移向了类。
软件质量:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。包括:软件产品质量满足用户要求的程度;软件各属性的组合程度;用户对软件产品的综合反映程度;软件在使用过程中满足用户要求的程度;
有限状态机模型(FSM)5元素:输入符号,输出符号,状态集合,状态转移函数和输出函数。
TMM测试过程:初始级,定义级,集成,管理与度量,优化。
V模型是最具有代表意义的测试模型 。
V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。
从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。
箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。 使用场景法设计测试案例,指出场景涉及到的基本流和备选流,基本流用字母A表示,备选流用题干中描述的相应字母表示。
场景1:A 场景2:A、B 场景3:A、C 场景4:A、D 场景5:A、E 假如每升油4元人民币,用户的账户金额为1000元,加油机内油量足够,那么在A4输入油量的过程中,请运用边界值分析方法为A4选取合适的输入数据(即油量,单位;升)。
0升 250升 251升 假设本系统开发人员在开发过程中通过测试发现了20个错误,独立的测试组通过上述测试用例发现了100个软件错误,系统在上线后,用户反馈了30个错误,请计算缺陷探测率(DDP)。 DDP=Bugstester/(Bugstester+ Bugscustomer)=(20+100)/(20+100+30)=80%(0.8) 其中,Bugstester为测试者发现的错误数;Bugscustomer为客户发现并反馈技术支持人员进行修复的错误数。
单元测试定义:是对软件基本组成单元进行的测试,而且软件单元是在与程序的其他部分相隔的情况下进行独立的测试。
主要内容(任务):模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试、内存分析。
步骤:在详细设计阶段完成单元测试计划;建立单元测试环境,完成测试设计和开发;执行单元测试用例,并且详细记录测试结果;判定测试用例是否通过;提交《单元测试报告》;
什么是驱动模块和桩模块?为下面的函数构造一个驱动模块。
int divide(int a, int b) { int c;
if (b==0) {printf("除数不能为0"); return 0;} c=a/b; return c;}
驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块启动被测模块,最后输出实测结果。
桩模块用以模拟被测模块工作过程中所调用的子模块。 函数驱动模块: void main( ) {int x,y,z;
scanf(“%d%d”,&x,&y); z=divide(x,y);
printf(“%d”,z);}
集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容。
(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失:
(2)一个模块的功能是否会对另一个模块的功能产生不利的影响;
(3)各个子功能组合起来,能否达到预期要求的父功能; (4)全局数据结构是否有问题;
(5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。
基于Web服务器应用的测试有那些:Web服务器功能测试;Web安全性测试;Web性能测试;
数据库服务器性能测试有那些:大数据量测试(数据库的容量是表征数据库服务器性能的一个重要标准);大容量数据测试;
自动化测试:是把人为驱动的测试行为转化为机器执行的一种过程,即模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动地完成软件的单元测试,功能测试,负载测试或性能测试等全部工作。 非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。
缺点:发现错误难以诊断定位.称“莽撞测试” .
渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模
块结合进来测试。
驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。
桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口
自顶向下优点:可在测试早期实现并验证系统主要功能;缺点:不需驱动模块,需桩模块 自底向上优点:设计测试用例容易缺点不需桩模块只有到最后程序才能作为一个整体 要确定系统的容量,需要考虑几个因素(1)用户中有多少是并发与服务器通信的。(2)每个用户的请求间时间间隔是多少。
请简述集成测试与系统测试的关系 集成测试的主要依据是概要设计说明书,系统测试的主要依据是需求设计说明书。集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。β测试主要衡量产品的FLURPS。着重于产品的支持性,包括文档、客户培训和支持产品生产能力。只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。
验收测试是由谁完成的?通常包含哪些过程?
解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应参加。通常包含α测试和β测试过程。
软件缺陷的主要类型/现象(1)功能、特性没有实现或部分实现(2)设计不合理,存在缺陷 (3)实际结果和预期结果不一致(4)运行出错,包括运行中断、系统崩溃、界面混乱(5)数据结果不正确、精度不够(6)用户不能接受的其他问题,如存取时间过长、界面不美观 测试步骤:1制定测试计划,测试项,测试策略及验收通过准则,并经过客户参与的计划评审。
2建立测试环境,设计测试用例,并经过评审。
3准备测试数据,执行测试用例,记录测试结果。
4分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。 (1)测试项目通过;(2)测试项目没有通过,并且不存在变通方法,需要很大的修改; (3)测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进;测试项目无法评估或者无法给出完整的评估。此时必须给出原因。如果是因为该测试项目没有说明清楚,应该修改测试计划。5提交测试报告
文档的测试对象:联机帮助文档或用户手册;指南和向导;安装、设置指南;示例及模板;错误提示信息;用于演示的图像和声音;授权/注册登记表及用户许可协议;软件的包装、广告宣传材料; 白盒测试的测试的方法
逻辑覆盖法(1)语句覆盖(2)判
定覆盖(3)条件覆盖(4)判定/条件覆盖(5)条件组合覆盖 (6)基本路径覆盖(7)点覆盖(8)边覆盖(9)循环覆盖
基本路径测试步骤:(1)导出程序流程图的拓扑结构-流图(控制流程图)(2)计算流图G的环路复杂性V(G)(3)确定只包含独立路径的基本路径集(4)设计测试用例
白盒测试用例注意事项:由于测试路径可能非常多,由于时间和资源问题,选出足够多的路径测试,由于深入到程序编码,通常开发人员协助测试人员书写白盒测试用例
白盒测试的内容(1)代码检查(语法、逻辑、书写)(2)静态结构分析(内部关系如系统结构、函数调用关系等)(3)功能确认与接口分析(4)逻辑覆盖率分析(内部的执行路径、提高软件的可靠性)(5)性能与效率分析(6)内存分析(内存泄露、内存越界等)
对图所示程序段进行语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法进行测试用例设计。
解:语句覆盖:x=90,y=90 x=79,y=90 x=70,y=60
判定覆盖:同上 条件覆盖:同上
判定/条件覆盖:同上
条件组合覆盖:I x>=80,y>=80 II x>=80,y<80 III x<80,y>=80 IV x<80,y<80
V x>=90,y>=90,x+y>=140 VI x>=90,y<90,x+y>=140 VII x<90,y>=90,x+y>=140
VIII x<90,y<90,x+y>=140
IX x>=90,y>=90,x+y<140 不存在
X x>=90,y<90,x+y<140
XI x<90,y>=90,x+y<140
XII x<90,y<90,x+y<140
x=90,y=90
x=90,y=70
x=70,y=90
x=70,y=70
x=100,y=30
x=30,y=100
x=80,y=50
路径覆盖:同语句覆盖
请下述语句按照各种覆盖方法设计测试用例。 if (a>2 && b<3 && (c>4 || d<5))
{
statement;
}
else
{
statement;
}
解:语句覆盖:a=3,b=2,c=5,d=5
a=2,b=2,c=5,d=5
判定覆盖:同上
条件覆盖:a=3,b=2,c=5,d=5
a=2,b=4,c=3,d=4
判定/条件覆盖:同条件覆盖
条件组合覆盖:I a>2,b<3,c>4,d<5
II a>2,b<3,c>4,d>=5
III a>2,b<3,c<=4,d<5
IV a>2,b<3,c<=4,d>=5
V a>2,b>=3,c>4,d<5
VI a>2,b>=3, c>4,d>=5
VII a>2,b>=3, c<=4,d<5
VIII a>2,b>=3, c<=4,d>=5
IX a<=2,b<3,c>4,d<5
X a<=2, b<3,c>4,d>=5
XI a<=2, b<3,c<=4,d<5
XII a<=2, b<3,c<=4,d>=5
XIII a<=2, b>=3,c>4,d<5
XIV a<=2, b>=3, c>4,d>=5
XV a<=2, b>=3, c<=4,d<5
XVI a<=2, b>=3, c<=4,d>=5
测试数据略
针对test函数按照基本路径测试方法设计测试用例。 int Test(int i_count, int i_flag)
{
int i_temp = 0;
while (i_count>0) {
if (0 == i_flag)
{
i_temp = i_count + 100; break;
}
else
{
if (1 == i_flag) {
i_temp = i_temp + 10; }
else
{
i_temp = i_temp + 20; }
}
i_count--;
}
return i_temp;
}
解:int Test(int i_count, int i_flag)
{
1 int i_temp=0;
2 while (i_count>0)
{
3 If (0==i_flag)
{
4 i_temp=i_count+100; 5 break;
}
6 else
{
7 If (1==i_flag)
{
8 i_temp=i_temp+10; }
9 else
{
10 i_temp=i_temp+20; }
}
11 i_count--;
}
12 return i_temp;
}
程序控制流图:程序环路复杂度:CC=4
基本路径集:path1 1-2-3-6-7-8-11-2-12 Path2 1-2-12
Path3 1-2-3-4-5-12
Path4 1-2-3-6-7-9-10-11-2-12 设计测试用例:
课件上的
void ReadPara( CString temp) {
if ( temp == ">=")
m_oper.SetCurSel(0);
else
{
if (temp == ">")
m_oper.SetCurSel(1);
else
{
if ( temp == "==")
m_oper.SetCurSel(2);
else
{
if( temp == "<=")
m_oper.SetCurSel(3);
else
{
if ( temp == "<")
m_oper.SetCurSel(4);
else
m_oper.SetCurSel(5);
}
}
} }
return;
}
[问题1]请画出以上代码的控制流图。
[问题2]请计算上述控制流图的环路复杂度V(G)。
[问题3]请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。
本文标题:软件测试方法和技术-MIPI CSIDSI简介及信号和协议测试方法61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1