文档库 最新最全的文档下载
当前位置:文档库 › VLSI边界扫描测试故障诊断及其策略研究

VLSI边界扫描测试故障诊断及其策略研究

VLSI边界扫描测试故障诊断及其策略研究
VLSI边界扫描测试故障诊断及其策略研究

VLSI边界扫描测试故障诊断及其策略研究(转载)

VLSI边界扫描测试故障诊断及其策略研究

倪军,杨建宁,成立,徐丽红

(江苏大学电气与信息工程学院,江苏镇江212013)

1 引言

随着信息技术发展和超大规模集成电路的应用,印制电路板越来越复杂,多层板(MCM)设计越来越普遍,芯片制备工艺中大量使用各种表面贴装元件和球阵列封装元件,芯片管脚数目和管脚密度不断提高,使得基于物理探针的传统测试技术难以为继。1987年联合测试行动小组(JTAG)提出的边界扫描测试被IEEE接纳,形成JTAG标准[1]。该标准用插入边界扫描结构的全新技术和方法,解决了芯片测试技术的瓶颈问题,受到了全球测试业界的广泛认同和支持,许多主流公司的IC芯片均支持边界扫描机制。边界扫描技术不但芯片故障定位方便,测试效率高,控制逻辑简便,而且易于实现。

本文介绍支持JTAG标准的芯片结构,以PC 机作为边界扫描测试向量生成和故障诊断的基础,针对由两块芯片互连的PCB板,就其测试总线的故障诊断策略的实现方法进行讨论,并且通过了实验验证。

2 支持JTAG标准的芯片结构

边界扫描技术的核心是芯片的I/O引脚与内核电路之间设置了边界扫描结构。JTAG标准定义了一个4-wire串行总线[2],并且通过该总线访问边界扫描单元,达到测试芯片内核与外围电路的目的。图1给出了支持JTAG标准的芯片结构体系。图1中,扫描结构由测试存取通道(TAP)、边界扫描寄存器(BSR)、TAP控制器、指令寄存器(IR)和辅助寄存器组成[3]。TAP是边界扫描测试的核心控制器,它与总线T CK同步工作,并响应总线TMS产生时钟信号和控制信号,将指令装入指令寄存器中;它还将测试数据从TDI端移入扫描链中,并从TDO端移出数据,执行测试功能,例如捕获数据、移位和更新数据等。

3 边界扫描结构测试总线故障诊断

3.1 测试系统组成

扫描链完整性测试是对扫描结构的测试总线故障的诊断,用于检测边界扫描电路本身的完整性。测试系统由主机(PC机)、测试仪和实验PCB板组成,测试仪通过标准口(RS232)与PC机连接,通过串行标准信号电缆与PCB上的测试存取通道TAP相连,如图2所示。

PCB板上两块Xilinx公司的xc9572 pc84芯片互连,芯片符合IEEE1149.1的JTAG接口,具有84个外部引脚、4个JTAG引脚、5个VCC引脚、6个VSS引脚、69个双向数据I/O引脚,xc9572系列芯片未实现异步复位信号TRST引脚,电缆不需要提供这一信号线。该器件的边界扫描寄存器有216个边界扫描单元,其中9个是internal属性的单元,其余207个单元由69组边界扫描单元组成[5]。

IC1的1脚和3脚分别通过PCB板外部焊接的两根导线连接IC2的4脚和2脚。实验采用人为方法分别注入了短路故障、断路故障或者呆滞故障。在进行互连测试之前,必须对边界扫描结构的完整性进行测试,以确保扫描链正常工作。

3.2 总线测试内容与故障模型

边界扫描结构总线测试的内容包括:各芯片的测试总线(TCK,TMS,TDI和TDO)的开路故障、呆滞故障(s-a-0和s-a-1)和桥接故障。由于TDI,TMS两个信号线内部均有上拉电阻,所以它们的开路故障可归结为s-a-1故障。

表1列举了在边界扫描结构完备性测试中,总线可能出现的6种桥接故障(TDI-TDO表示TDI测试线与TDO测试线相互桥接,下述类同),表2 列举了8种可能出现的呆滞故障[3]。

根据上述分析,在对各寄存器作功能互连测试的同时,加入能够检测各TAP端口信号故障的测试码,这

样可以达到边界扫描结构完备性测试的目的。

4 芯片故障测试步骤及诊断策略

4.1 测试总线的故障诊断流程

支持JTAG标准的芯片都附有特定的BSDL(boundary scan description language)描述文件[4]。BSDL语言是硬件描述语言(VHDL)的一个子集,它是该芯片的边界扫描特性的描述,用来沟通厂商、用户与测试工具之间的联系,为自动测试图形生成工具检测特定的电路板提供相关的信息;它在BSDL文件的支持下生成由JTAG标准定义的测试逻辑;BSDL文件可与软件工具结合用于测试生成、结果分析和故障诊断。

根据对xc9572 pc84芯片的BSDL部分文件[5]的分析:

……

attribute instruction_capture of xc9572_pc84:

entity is "000XXX01"&

attribute INSTRUCTION_DISABLE of xc9572_pc84 : entity is "HIGHZ" &

……

…X?代表任意值,指令捕获属性字串“ 000XXX01”,这组代码是检验总线故障的重要依据。当TAP控制器处于Capture-IR状态时,位图形“000XXX01”被装入指令寄存器的移位寄存器部分。检测时首先移出正确的指令捕获数据,保证通过capture信号检测到扫描链上固定为“0”或者固定为“1”的故障。

本故障诊断测试系统中,被测器件为两块xc9572 pc84芯片组成的互连电路,其IR位数是16,输入测试码“FEFE00FF ”。为了进行故障诊断,需要移出16位固定的指令捕获属性代码,移出部分测试向量。根据给定的芯片、JTAG信号连接测试以及TAP控制器功能测试,实验中提出了一种算法:即从TDI外加测试码“1..10..0”以及各器件的IDCODE指令或BYPASS指令,其中“1”的数目与“0”的数目相等,且与扫描链中最长的指令寄存器(IR)的位数相同。

根据上述故障分析,依据测试码,测试总线的故障诊断流程如图3所示。

4.2 测试步骤与诊断策略

由图3的测试流程可以发现和辨别大部分故障,但不能对故障作唯一的定位。从表1和表2中分析可知,若测试到TDO的输出全为“1”,则可确定测试总线出现故障,但却无法具体地定位故障,为了区分产生相同故障结果的不同故障模型,需要在图3的基础上进行子级测试[6]。

⑴区分TDI-TMS与TDI s-a-0

仔细跟踪测试码“FEFE00FF”在TDI-TMS 与TDI s-a-0这两种情况下移入IR的情况,可以发现最后一位“1” 移进时,TDI设置为“1”。如果TDI-TMS,由于此时TMS为“ 1”,又是“与”短路,所以“1”正常移入,但如果TDI s-a-0,则移入的代码为“0”,这是两种故障输入测试码的唯一区别。

⑵区分TMS-TCK与TCK s-a-0

这两种故障都会出现导致输出数据不稳定。TCK s-a-0通常是与地短路,由于控制信号来源于下载电缆,驱动电流较大,所以TDO并不总是保持在高阻状态下,输出的结果不全为“1”。而TMS-TCK受脉冲边沿的影响往往出现数据结果是全“1”。综上所述,经多次测试(8~10次即可),如果数据振荡且出现全“1”,诊断结果为TMS-TCK;如果数据振荡但不出现全“1”,诊断结果为TCK s-a-0。

⑶区分TDO-TCK、TDI-TCK、TDO s-a-1、TMS s-a-0和TMS s-a-1

这些故障出现测试结果为全“1”,主要是因为涉及状态转换的两条重要总线TCK和TMS出现故障,不能正常进入Shift-IR状态。但借助其它总线可以将故障定位。

测试步骤如下:连接TCK与TMS,再进行测试并重复多次,次数大于10次。如果采集的数据出现全“0“,则为TDO-TCK;如果数据既有“0”

又有“1”,则为TDI-TCK。连接TDO与TCK,重复测试多次,次数大于10次。如果数据为全“0”,则T MS s-a-0或TMS s-a-1,否则TDO s-a-1。

5 实验验证

根据上面总线故障测试生成步骤及诊断策略,结合测试图形生成程序,对本文测试系统中被测电路板进行总线测试,测试结果反馈PC机。测试向量和每一步测试结果都将保存在文件库中,便于查找数据并分析,以生成bus.svf文件。

SIR 32 TDI(fefe00ff)SMASK(ffffffff)TDO(00ff0101)MASK(00000303);// 加载32位测试码。

SIR将32位TDI参数移入指令寄存器,随着指令的移位,JTAG2SVF保存TDO信号。

TDO:00ff0101;

MASK:00000303;

Expected output:xxxx xxxx xxxx xxxx xxxx xx01 xxxx xx01。

上述表达式中的“x”代表任意值。若期望输出(Expected output)中加下划线的数据和实际得到的TD O中相同位置处的数据(为方便说明,亦用下划线突出标示)完全一致,则代表被测电路板上没有出现本条指令可以检测到的故障,否则表明有故障存在。对于本条指令,实际测试结果为

The TDI is:fefe00ff;

The Captured TDO is:00ff0101;

0000 0000 1111 1111 0000 0001 0000 0001。

下划线处的“01”是TAP控制器在对指令进行移位前,经过capture-IR状态指令寄存器捕获的最低两位数据值,能正确移出这两位数据的说明:芯片IC1与IC2之间的TCK,TMS,TDI和TDO连接是正确的,且指令寄存器能正常工作。

采用人工注入故障的方法,将TDI与TDO桥接,构成TDI ——TDO故障,由于验证系统的软件SVF2 JTAG在每执行一条测试向量后,会根据SVF文件中的MASK值,来确定是否比较预期TDO和实际TD O,如果比较结果不对,将停止测试过程。因此,为在有故障的情况下完成整个测试过程,需要修改SVF 文件,将MASK置全“0”,以保存所有的实际TDO。修改的svf文件如下:

SIR 32 TDI(fefe00ff)SMASK(ffffffff)TDO(00ff0101)MASK(00000000); // 加载32位测试码

The Captured TDO is: 01010101; 0000 0001 0000 0001 0000 0001 0000 0001;

比较本测试结果与无故障时测试结果,发现第二条实际TDO的关键位变成了“0101”(相应的二进制位为“0000 0001 0000 0001”)。正是由于TDI与TDO桥接,使接收端TDO引脚无法接收实际的测试码,只能捕获指令寄存器中原有的属性字符串,因此产生了错误的测试结果。

6 结束语

在该测试系统上利用设计的测试码和测试步骤,经软件编程可快速、准确的将总线可能出现的14个故障进行定位,准确度高达1-1/2 20≥99.9%,测试时间不超过1s,故这种高效率的方法亦可用于MCM电路板的测试。由于这种技术借助于计算机程序来检查电路和/或连线的故障,所以非常适合于那些要求可靠性高,且及时检测、定位出故障的VLSI产业链的芯片测试场合。

案例 白盒测试中的边界值测试

案例白盒测试中的边界值测试 白盒测试中需要重点测试哪些边界值呢?总结起来有以下几点: 测试数据类型的边界值,如整型的范围、单精度数的范围等。 测试数组的边界值。 测试分支判断语句的边界值:如if(a>=0)中的a=0。 1.数据类型的边界值 任何数据类型在内存中都是有一定的存储空间的。例如C语言分为DOS平台和 如果是在Turbo C(DOS环境)里面定义了一个整型变量,就需要测试这个整型变量的数值是否超出了-32768—32767这个范围;而如果是在VC(Windows 环境)里面定义了一个整型变量,就需要测试这个整型变量的数值是否超出了-2147485648—2147483647这个范围。 现看一个数据类型边界值测试的例子: #incldue void main() { int a=32765; int b=3; int c; c=a+b;;

printf(“%d”,c); } 假设该程序是用DOS环境下的Turbo C开发的,则求得的c值为32768超出了这个范围,当然不能正确打印。 启发:a和b作为两个整形变量,它们没有超出范围,而a和b计算之后的结果却超出了边界值,这也是程序员们经常犯的一个错误,要引起足够的重视。 2.数组的边界值 当测试数组时要重点测试其边界值,防止产生数组越界的问题,请看下面的例子: #include void main() { int a[5]; int i=0; for(i=0;i<=5;i++) scanf(“%d”,&a[i]); //输入数组5个元素 for(i=1;i<5;i++) printf(“%d”,a[i]); //打印数组5个元素 } 上面程序中循环时i的取值有问题。 ?第一个for循环:for(i=0;i<=5;i++),i值从0到5,赋给a[i]就变成了a[0]到a[5];而数组a[5]的范围却是从a[0]到a[4],没有a[5]这个 元素,这就是越界问题。它会有什么后果呢?我们事先在内存中只给a[5] 分配了5个整型元素所占的空间,而在用scanf语句输入时,却要输入 6个元素,那么多输入的这一个元素存在哪里呢?只能存在与数组a[5] 相邻的内存空间,而这一空间是没有提前分配的,其中不一定存储什么 样的数据,因此就比较危险,可能幼年期内存溢出的错误。 ?第二个for循环:for(i=1;i<5;i++),i值从1到4,输出a[1]到a[4],显然把a[0]这一数组元素漏掉了,虽然这一问题不是数组越界问题,但 也属于边界值出了问题。 可以将程序修改如下: #include void main() { int a[5]; int i=0; for(i=0;i<5;i++) scanf(“%d”,&a[i]); //输入数组5个元素 for(i=0;i<5;i++) printf(“%d”,a[i]); //打印数组5个元素 }

10JTAG边界扫描测试

CYIV-51010-1.2 ? 2011 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at https://www.wendangku.net/doc/9116324350.html,/common/legal.html . Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Cyclone IV 器件手册,卷1 2011年11月 Subscribe ISO 9001:2008 Registered 10.Cyclone IV 器件的JTAG 边界扫描测试 本章介绍了Cyclone ?IV 器件所支持的边界扫描测试(BST)功能。这些BST 功能与Cyclone III 器件中的相类似,除非另有说明。 Cyclone IV 器件(Cyclone IV E 器件和Cyclone IV GX 器件)支持IEEE Std.1149.1。Cyclone IV GX 器件也支持IEEE Std.1149.6。IEEE Std.1149.6 (AC JTAG)仅被Cyclone IV GX 器件中的高速串行接口(HSSI)收发器支持。IEEE Std.1149.6用于使能AC 耦合的发送器与接收器之间的板级连接检查。 本章节含盖以下几方面内容: ■IEEE Std.1149.6边界扫描寄存器(第10-2页)■BST 操作控制(第10-3页) ■JTAG 链中I/O 电压支持(第10-5页)■ 边界扫描描述语言支持(第10-6页) f 欲了解关于JTAG 指令代码描述以及IEEE Std.1149.1 BST 指南的详细信息,请参考 IEEE 1149.1 (JTAG) Boundary -Scan Testin g for Cyclone III Devices 章节。f 欲了解以下方面的内容,请参考AN 39: IEEE 1149.1 (JTAG) Boundary-Scan Testing in Altera Devices : ■IEEE Std. 1149.1 BST 体系结构与电路系统■TAP 控制器状态机■ 指令模式

边界值分析法案例

1.边界条件测试 边界条件是指软件计划的操作界限所在的边缘条件。 程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。比如数组的[0]元素的处理。想要在Basic中定义一个10个元素的数组,如果使用Dimdata(10) AsInteger,则定义的是一个11个元素的数组,在赋初值时再使用For i =1 to 10 ...来赋值,就会产生权限,因为程序忘记了处理i=0的0号元素。 数据类型:数值、字符、位置、数量、速度、地址、尺寸等,都会包含确定的边界。 应考虑的特征:第一个/最后一个、开始/完成、空/满、最慢/最快、相邻/最远、最小值/最大值、超过/在内、最短/最长、最早/最迟、最高/最低。这些都是可能出现的边界条件。 根据边界来选择等价分配中包含的数据。然而,仅仅测试边界线上的数据点往往不够充分。提出边界条件时,一定要测试临近边界的合法数据,即测试最后一个可能合法的数据,以及刚超过边界的非法数据。以下例子说明一下如何考虑所有可能的边界: -------------------------------------------------------------------------------- 如果文本输入域允许输入1-255个字符。 尝试:输入1个字符和255个字符(合法区间),也可以加入254个字符作为合法测试。 输入0个字符和256个字符作为非法区间。 -------------------------------------------------------------------------------- 如果程序读写软盘 尝试:保存一个尺寸极小,甚至只有一项的文件。 然后保存一个很大的——刚好在软盘容量限制之内的文件。

什么是边界扫描(boundary scan)

什么是边界扫描(boundary scan)? 边界扫描(Boundary scan )是一项测试技术,是在传统的在线测试不在适应大规模,高集成电路测试的情况下而提出的,就是在IC设计的过程中在IC的内部逻辑和每个器件引脚间放置移位寄存器(shift register).每个移位寄存器叫做一个CELL。这些CELL准许你去控制和观察每个输入/输出引脚的状态。当这些CELL连在一起就形成了一个数据寄存器链(data register chain),我门叫它边界寄存器(boundaryregister)。除了上面的移位寄存器外,在IC上还集成测试访问端口控制器 (TAP controller),指令寄存器(Instruction register)对边界扫描的指令进行解码以便执行各种测试功能。旁路寄存器(bypass register)提供一个最短的测试通路。另外可能还会有IDCODE register和其它符合标准的用户特殊寄存器。 边界扫描器件典型特征及边界扫描测试信号的构成。 如果一个器件是边界扫描器件它一定有下面5个信号中的前四个: 1.TDI (测试数据输入) 2.TDO (侧试数据输出) 3.TMS (测试模式选择输入) 4.TCK (测试时钟输入) 5.TRST (测试复位输入,这个信号是可选的) TMS,TCK,TRST构成了边界扫描测试端口控制器(TAP controller),它负责测试信号指令的输入,输出,指令解码等,TAP controller是一个16位的状态机,边界扫描测试的每个环节都由它来控制,所以要对TAP controller有一个比较清楚的了解。 在后续的文章中还会向大家介绍边界扫描的其它方面。 边界扫描为开发人员缩短开发周期,并且提供良好的覆盖率和诊断信息。在不了解 IC内部逻辑的情况下快速的开发出优秀的测试程序。在未来的测试领域,边界扫描将会得到广泛的应用。

测试用例设计方法——边界值分析法

边界值分析法的学习 (2016/2/29--------2016/3/6)本周是我来北京学习的第二周,通过对上周等价类划分法的学习是我深深感受到了,在做功能测试时,测试用例设计的好坏直接影响到测试效率和质量。一个好的测试用例能有效提高工作效率,更能有效节省公司的有限资源。 我相信大家在开发一个软件的时候,循环结构可能会不厌其烦的出现在你的程序设计中。下面就是一个循环结构的代码片段: int i = 0; while(i < 10){ System.out.println(i); //输出变量的值 i++; //变量的值增加1 } 其执行流程为: 1、执行int I = 0; 2、判断i<10 是否成立,如果不成立则结束,否则执行 下一步 3、输出变量i 的值 4、i 的值增加1 5、跳转到步骤2 继续执行 代码很简单,相信大家都可以理解。那么,大家知道这

段代码在黑盒测试中如何来确定I<10中的关系运算符是<、>、还是>=、<=呢?很多人可能已经想到了就是几个关键性的数据:9、10、11。 通过这个小例子,大家也许就明白了什么是边界值分析法。即: 1)如果输入(输出)条件规定了取值范围,则应该以该范围的边界值及边界附近的值作为测试数据; 2)如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数 多一的数作为测试数据; 3)如果程序规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最 后一个元素作为测试数据; 4)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。

边界值测试

“三角形问题”边界值测试

“日期处理”边界值测试判断闰年 计算下一天 计算上一天

测试结果中1990年1月28日的上一天在显示结果中没有显示,截图如下: 分析原因:在程序中计算上一天的函数中对于当月份等于1是只考虑了1月份的第1日,而忘记考虑1月份的其他日期,所以导致当输入1月28日时没有出现上一日的结果。 计算星期几

离生日12月31日的天数

佣金计算”边界值测试 实验总结: 此次的实验主要是对三角形问题,日期处理问题,佣金计算问题的程序分别进行边界值测试,在实验中,我对自己的三个程序分别进行了一般边界值测试,三角形问题中通过对设计用例的测试结果显示预测输出和测试结果全部符合没有出现问题,在日期处理问题中,计算上一日的过程中1900年1月28日的测试结果与预期结果有不同,程序中出现了错误,通过分析,由于对1月份的处理过程中没有对1月份的除第一日以外的其他的值进行处理,所以出现了错误,其他的测试结果与预期结果都是相符的。在佣金计算中,预期输出与测试结果都相符。通过此次的实验我学会了对于一般边界值测试的分析方法及过程,在测试过程开始之前要先对参数进行范围的确定,然后根据一般边界值测试的方法和参数设计用例。 通过实验总结的一般边界值测试法的优缺点: 优点:通过对测试结果的分析,可以更准确的知道错误点,能够更快的确定程序中由于什么错误而导致了结果与预期的输出不相符。同时测试的用例较少但是能够基本的找出程序中的错误。 缺点:测试用例不够全面,只能找到程序中的基本错误,不能够全面的对程序进行测试分析。测试用例对于程序的结构分析不能起到很好的指导作用。

软件测试 边界值测试 实验报告

武 夷 学 院 实验报告 数学与计算机系 课程名称: 软件测试 实验题目: 边界值测试 学生班级: 09级计科一班 学生姓名: 学生学号: 200940110 指导教师: 刘靖 完成日期: 2011.10.11

实验二边界值测试 一、实验目的 通过本次实验使学生熟悉黑盒测试的边界值测试方法,并初步具备针对功能的测试用例设计。 二、实验环境 硬件环境:微型计算机。 软件环境:Windows 操作系统,Microsoft V isual Studio 2005等。 三、实验内容 题目一:三角形问题 输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。 题目二:找零钱最佳组合问题 假设商店货品价格(R)皆不大于100 元(且为整数),若顾客付款在100 元内 (P) ,求找给顾客最少货币个(张)数?(货币面值50 元10 元,5 元,1 元四种)1.请用针对输入域的边界值分析法对三角形问题设计测试用例,并将这次测试和三角形问题的第一次测试做一下比较分析。 2.请用针对输出域的边界值分析法对找零钱最佳组合问题设计测试用例,并将这次测试和找零钱最佳组合问题的第一次测试做一下比较分析。 四、实验步骤 1.针对输入域用边界值分析法对三角形问题设计测试用例 用边界值分析法设计测试用例,按照下列步骤进行: (1)分析各变量取值 (2)测试用例数 (3)设计测试用例边界值测试方法设计测试用例 (4)执行测试用例,记录测试结果,报告发现的问题 (5)将这次测试和三角形问题的第一次测试做一下比较分析。

边界值法练习题

1.请用边界值分析法设计三角形问题的测试用例 2.在三角形问题描述中,除了要求边长是整数外,没有给出其它的限 制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。边1,边2,边3,还是a、b、c 按钮名称【提交】。 边界值:0,1,2,99, 100, 101

2.请用边界值分析法写出NextDate函数的测试用例 3.在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。 边界值:year 取 1911 1912 1913 1990 2049 2050 2051 mouth取 -1 1 2 11 12 13 day取 0 1 2 30 31 32 测试用例:

3.邮箱用户名:6~18个字符,包括字母、数字、下划线,以字母开头,用户名以字母或数字结尾,用户名中必须包含@符号,@符号后可以为数字、字母,邮箱以或或.结尾

根据要求可以确定5个有效等价类和6个无效等价类 邮箱用户名测试用例:

等等(8)(9)(10)(11)任意两个、三个、四个组合都是错误的邮箱用户名。 4. 假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。 请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。 有效等价类: 0 < R < = 100 ,R<= P <= 100 R :货币价格 无效等价类:R > 100 or R<=0 ,p>100 or p 100 or R<=0 ,

黑盒测试--边界值设计测试用例

黑盒测试--边界值分析方法: 一.方法简介 1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 2.与等价划分的区别 1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。 2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。 3.边界值分析方法的考虑: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。 4.常见的边界值 1)对16-bit 的整数而言 32767 和 -32768 是边界 2)屏幕上光标在最左上、最右下位置 3)报表的第一行和最后一行 4)数组元素的第一个和最后一个 5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次 5.边界值分析 1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。 例:测试计算平方根的函数 --输入:实数 --输出:实数 --规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数 Print-Line可以用来输出错误信息。 2)等价类划分: I.可以考虑作出如下划分: a、输入 (i)<0 和 (ii)>=0 b

使用边界值测试方法和决策表测试方法对三角形问题进行测试

题目: 三角形问题:输入3个整数a、b和c,作为三角形的3条边。通过程序判断出由这3条边构成的三角形的类型是等边三角形、等腰三角形还是一般三角形,并打印出相应的信息。条件: 1、输入3个整数a、b和c 作为三角形的三条边 2、正数 3、a ∈[ 1, 100] b ∈[ 1, 100] c ∈[ 1, 100] 4、三角形两边之和大于第三边 输出三角形类型的条件: 1、一般三角形:a+b>c 或a+c>b 或b+c > a 2、等腰三角形:在满足一般三角形的前提下,且a=b≠c 或a=c≠b 或b=c≠a 3、等边三角形:在满足一般三角形的前提下,且a=b=c 4、不能构成边三角形:a+b

⑤99 50 50 等腰三角形 ⑥0 50 50 不能构成三角形 ⑦101 50 50 不能构成三角形 ⑧50 1 50 等腰三角形 ⑨50 100 50 不能构成三角形 ⑩50 2 50 等腰三角形 ○1150 99 50 等腰三角形 ○1250 0 50 不能构成三角形 ○1350 101 50 不能构成三角形 ○1450 50 1 等腰三角形 ○1550 50 100 不能构成三角形 ○1650 50 2 等腰三角形 ○1750 50 99 等腰三角形 ○1850 50 0 不能构成三角形 ○1950 50 101 不能构成三角形 二、决策表测试方法 ①②③④⑤⑥⑦⑧ 输入边值a∈[ 1, 100] Y Y Y Y N N N N b∈[ 1, 100] Y Y N N Y Y N N c∈[ 1, 100] Y N Y N Y N Y N 输出三角形的类 型不能构成三角形V V V V V V V 一般三角形V 等腰三角形V 等边三角形V

相关文档