文章插图
测试函式【测试函式】在软体开发的过程 , 我们需要验证软体是否达到我们希望的功能或者是否出现错误 。测试函式是指针对软体中的功能验证或错误检测的一种函式 , 一般来说 , 不同的功能的测试函式是不相同的 。测试函式是我们软体中必不可少的一部分 , 主要验证软体的功能和性能要求 。
基本介绍中文名:测试函式
外文名:Test Function
学科:计算机科学、软体工程
目的:验证软体的功能和性能
内容:测试方法
来源:自己实现、调用系统集成
套用:程式、软体项目
定义在计算机中 , 测试函式是指针对软体中的功能验证或错误检测的一种函式 , 一般来说 , 不同的功能的测试函式是不相同的 。测试函式是我们软体中必不可少的一部分 , 主要验证软体的功能和性能要求 。测试方法对丁软体测试来说 , 从不向的角度来看 , 有不同的划分方法:从是否执行程式的角度划分 , 可以分为静态测试和动态测试 。其中软体的静态测试不要求在计算机上实际执行所侧程式 , 主要以一些人工的模拟技术村软体进行分析和测试;而软体的动态测试是通过输入一组预先按照一定的测试準则构造的实例数据来动态运行程式 , 而达到发现错误的过程 。从是否关心软体内部结构和员体实现的角度划分 , 可以分为白盒测试、黑盒测试和灰盒测试 。白盒测试是指按照程式内部的结构测试程式 , 通过测试来检测产品内部动作是否按照设计规格说明倍的规定正常进行 , 检验程式小的每条记路是否都能按预定要求正确工作 。黑盒测试是指在已知产品所应具有的功能 , 通过测试来检测每个功能是否都能正常使用 , 在测试时 , 把程式看作一个不能打开的黑盒子 , 它只检查程式功能是否按照需求规格说明书的规定正常使用 , 程式是否能适当地接收输入数据而产牛正确的输出信息 , 并且保持外部信息的完整性 。灰盒测试 , 是介于白盒测试与黑盒测试之间的一种测试方法 。可以这样理解 , 灰盒测试关注输出对于输入的正性 , 同时也关注内部表现 , 但这种关注不像白盒那样详细、完整 , 只是通过些表征性的现象、事件、标誌来判断内部的运行状态 , 有时候输出是正确的 , 但内部其实已经错误了 , 这种情况非常多 , 如果每次都通过白盒测试来操作 , 效率会很低 , 因此需要採取这样的一种灰盒的方法 。从软体开发的过程按阶段划分 , 可以分为单元测试、集成测试、确认测试等 。开始是单元测试 , 集中对用原始码实现的每一个程式单元进行测试 , 检查各个程式模组是否正确地实现了规定的功能 。集成测试把已测试过的模组组装起来 , 主要对与设计相关的软体体系结构的构造进行测试 。确认测试则是要检查已实现的软体是否满足了需求规格说明中确定了的各种需求 , 以及软体配置是否完全、正确 。系统测试把已经经过确认的软体纳入实际运行环境中 , 与其他系统成份组合公一起进行测试 。Visual FoxPro中的测试函式在资料库套用的操作过程中 , 用户需要了解数据对象的类型、状态等属性 , Visual FoxPro提供了相关的测试函式 , 使用户能够準确地获取操作对象的相关属性 。1.数据类型函式TYPE( )【格式】TYPE(<cExp >)【功能】返回cExp 串表示的数据对象的数据类型 , 返回值是一个表示数据类型的大写字母 。C:字元型 , D:日期型 , N:数值型 , L:逻辑型 , M:备注型 , G:通用型 , U:未定义 。2.档案查找函式FILE()【格式】FILE(<cExp>)【功能】根据cExp串中指定路径查找档案 , 如未指定路径 , 则在默认目录中查找 。档案存在 , 返回逻辑真(.T.) 值 , 否则为逻辑假(.F.)值 。3.条件测试函式IIF( )【格式】IIF(<lExp > , <eExp 1> , <eExp2>)【功能】逻辑表达式lExp值为真(.T.) , 返回表达式eExp1的值 , 否则返回表达式eExp2的值 。eExp1和eExp2可以是任意数据类型的表达式 。4.表结束标誌测试函式EOF( )【格式】EOF([<工作区号> | <别名>])【功能】测试记录指针是否移到表结束处 。如果记录指针指向表中尾记录之后 , 函式返回真(.T.) , 否则为假(.F.) 。5.表起始标识测试函式BOF ( )【格式】BOF ([<工作区号> | <别名>])【功能】测试记录指针是否移到表起始处 。如果记录指针指向表中首记录前面 , 函式返回真(.T.) , 否则为假(.F.) 。工作区说明见EOF()函式 。6.当前记录号函式RECNO()【格式】RECNO([<工作区号> | <别名>])【功能】返回指定工作区中表的当前记录的记录号 。对于空表返回值为1 。7.当前记录逻辑删除标誌测试函式DELETED( )【格式】DELETED([<工作区号> | <别名>])【功能】测试指定工作区中表的当前记录是否被逻辑删除 。如果当前记有逻辑删除标记 , 函式返回真(.T.) , 否则为假(.F.) 。8.记录数函式RECCOUNT( )【格式】RECCOUNT ([<工作区号> | <别名>])【功能】返回指定工作区中表的记录个数 。如果工作区中没有打开表则返回0 。9.记录大小测试函式RECSIZE( )【格式】RECSIZE( [<工作区号> | <别名>] )【功能】返回指定工作区中表的记录总长度 。如果工作区中没有打开表则返回0 。10.萤幕列坐标和行坐标函式COL( )、ROW( )【格式】COL ( )ROW()【功能】COL ( )返回游标的列坐标值 , ROW ( )返回游标的行坐标值 。11.印表机列坐标和行坐标函式PCOL( ) , PROW( )【格式】PCOL( )PROW()【功能】返回印表机列印头所处位置的列坐标和行坐标 。DATE()函式示例SET CENTURY OFF? DATE() && 显示不带世纪的本日日期SET CENTURY ON? DATE() && 显示带世纪的本日日期? DATE(1998, 02, 16) && 显示 2000 年兼容的日期值TIME()函式示例DAY()函式示例STORE {^1998-03-05} TO gdBDate? CDOW(gdBDate) && 显示Thursday? DAY(gdBDate) && 显示5 DOW()/CDOW函式示例STORE DATE() TO gdDayNum? DOW(gdDayNum)? CDOW(gdDayNum) && Monday星期一Tuesday星期二Wednesday星期三Thursday星期四Friday星期五Saturday星期六Sunday星期日MONTH()函式示例? DATE() && 显示今天日期? MONTH(DATE()) && 显示月数STORE {^1998-05-03} TO gdBuySTORE MONTH(gdBuy + 31) TO gdMonth? gdMonth && 显示 6CMONTH()函式示例? CMONTH(DATE())STORE {^1998-02-16} TO gdDueDate? 'Your payment was due in ', CMONTH(gdDueDate)STORE gdDueDate+60 TO gdFinalDate? 'You must pay by ', CMONTH(gdFinalDate)YEAR()函式示例? YEAR(DATE())ASC( ) 函式示例下面的示例显示从 a 到 j 的字元 , 并用 ASC( ) 函式显示相应的 ansi 值 。STORE 'ABCDEFGHIJ' TO gcANSI && 10 个字元CLEARFOR nCOUNT = 1 TO 10? SUBSTR(gcANSI, nCount,1) && 显示一个字元?? ASC(SUBSTR(gcANSI, nCount)) && 显示 ANSI 值ENDFORASC(“中”) &&54992CHR()函式示例下面的示例显示从 65 到 75 的数值 , 并使用 chr() 显示对应的字元值 a 到 k 。CLEARFOR nCOUNT = 65 TO 75? nCount && 显示数值值?? ' ' + CHR(nCount) && 显示字元ENDFORCTOD()函式示例以下代码演示如何用 CTOD() 函式来转换字元型数据到日期然后执行简单的与日期相关的动作 。SET CENTURY ON && 显示 century valuecDate="01/01/2003"?CTOD(cDate) && Returns 01/01/2003 as Date?GOMONTH(CTOD(cDate),12) && Returns 01/01/2004 ?CTOD(cDate)+100 && Returns 04/11/2003DTOC()函式/DTOS()函式示例SET STRICTDATE TO 1STORE CTOD('10/31/98') TO gdThisDate? DTOC(gdThisDate)STORE DTOC({^1998-10-31}+90) TO gcExpireDate? 'Your 90-day warranty expires ', gcExpireDate? DTOC({^1998-10-31},1)? DTOS({^1998-10-31})STR()函式示例? STR(3.14,5,1) && 3.1? STR(3.14) && 3 预设宽度时 , 系统默认为10个字元位置? STR(3.64,5) && 4VAL()函式示例STORE '12' TO ASTORE '13' TO B? VAL(A) + VAL(B) && 显示25.00STORE '1.25E3' TO C? 2 * VAL(C) && 显示2500.00TYPE()函式示例CLOSE DATABASESOPEN DATABASE (HOME(2) + 'Data\testdata')USE customer && 打开 Customer 表nTest = 1.01cTest = "String"CLEAR? TYPE('customer.contact') && 显示C? TYPE('(12 * 3) + 4') && 显示N? TYPE('DATE()') && 显示D? TYPE('.F. OR .T.') && 显示L? TYPE('ANSWER=42') && 显示U? TYPE('$19.99') && 显示Y? TYPE('nTest') && 显示N? TYPE('cTest') && 显示CFILE()函式示例下面的示例显示一条信息 , 指明 Visual FoxPro 资源档案是否在 Visual FoxPro 的启动目录下 。SET PATH TO HOME()CLEARIF FILE('foxuser.dbf')WAIT WINDOW 'Visual FoxPro 资源档案 present'ELSEWAIT WINDOW 'Visual FoxPro 资源档案 not present' ENDIF