在软件开发的过程,我们需要验证软件是否达到我们希望的功能或者是否出现错误。测试函数是指针对软件中的功能验证或错误检测的一种函数,一般来说,不同的功能的测试函数是不相同的。测试函数是我们软件中必不可少的一部分,主要验证软件的功能和性能要求。
定义
在计算机中,测试函数是指针对软件中的功能验证或错误检测的一种函数,一般来说,不同的功能的测试函数是不相同的。测试函数是我们软件中必不可少的一部分,主要验证软件的功能和性能要求。
测试方法
对丁软件测试来说,从不向的角度来看,有不同的划分方法:
从是否执行程序的角度划分,可以分为静态测试和动态测试。其中软件的静态测试不要求在计算机上实际执行所侧程序,主要以一些人工的模拟技术村软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现错误的过程。
从是否关心软件内部结构和员体实现的角度划分,可以分为
白盒测试、
黑盒测试和灰盒测试。白盒测试是指按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明倍的规定正常进行,检验程序小的每条记路是否都能按预定要求正确工作。黑盒测试是指在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。灰盒测试,是介于白盒测试与黑盒测试之间的一种测试方法。可以这样理解,灰盒测试关注输出对于输入的正性,同时也关注内部表现,但这种关注不像白盒那样详细、完整,只是通过些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
从软件开发的过程按阶段划分,可以分为
单元测试、集成测试、确认测试等。开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合公一起进行测试。
Visual FoxPro中的测试函数
在数据库应用的操作过程中,用户需要了解
数据对象的类型、状态等属性,Visual FoxPro提供了相关的测试函数,使用户能够准确地获取操作对象的相关属性。
【格式】TYPE()
【功能】返回cExp 串表示的
数据对象的
数据类型,返回值是一个表示数据类型的大写字母。C:
字符型,D:日期型,N:数值型,L:逻辑型,M:
备注型,G:通用型,U:未定义。
2.文件查找函数FILE()
【格式】FILE()
【功能】根据cExp串中指定路径查找文件,如未指定路径,则在默认目录中查找。文件存在,返回逻辑真(.T.) 值,否则为逻辑假(.F.)值。
3.条件测试函数IIF( )
【格式】IIF(,,)
【功能】
逻辑表达式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 gdBuy
STORE MONTH(gdBuy + 31) TO gdMonth
? gdMonth && 显示 6
CMONTH()函数
示例
? 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 个字符
CLEAR
FOR nCOUNT = 1 TO 10
? SUBSTR(gcANSI, nCount,1) && 显示一个字符
?? ASC(SUBSTR(gcANSI, nCount)) && 显示 ANSI 值
ENDFOR
ASC(“中”) &&54992
CHR()函数
示例
下面的示例显示从 65 到 75 的数值,并使用 chr() 显示对应的
字符值 a 到 k。
CLEAR
FOR nCOUNT = 65 TO 75
? nCount && 显示数值值
?? ' ' + CHR(nCount) && 显示字符
ENDFOR
CTOD()函数
示例
以下代码演示如何用 CTOD() 函数来转换
字符型数据到日期然后执行简单的与日期相关的动作。
SET CENTURY ON && 显示 century value
?CTOD(cDate) && Returns 01/01/2003 as Date
?GOMONTH(CTOD(cDate),12) && Returns 01/01/2004
?CTOD(cDate)+100 && Returns 04/11/2003
示例
SET STRICTDATE TO 1
STORE 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)
STR()函数
示例
? STR(3.14,5,1) && 3.1
? STR(3.14) && 3 缺省宽度时,系统默认为10个
字符位置
? STR(3.64,5) && 4
VAL()函数
示例
STORE '12' TO A
STORE '13' TO B
? VAL(A) + VAL(B) && 显示25.00
STORE '1.25E3' TO C
? 2 * VAL(C) && 显示2500.00
TYPE()函数
示例
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data estdata')
USE customer && 打开 Customer 表
nTest = 1.01
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') && 显示C
FILE()函数
示例
下面的示例显示一条信息,指明 Visual FoxPro 资源文件是否在 Visual FoxPro 的启动目录下。
SET PATH TO HOME()
CLEAR
IF FILE('foxuser.dbf')
WAIT WINDOW 'Visual FoxPro
资源文件 present'
ELSE
WAIT WINDOW 'Visual FoxPro
资源文件 not present'
ENDIF