在軟體開發的過程,我們需要驗證軟體是否達到我們希望的功能或者是否出現錯誤。測試函式是指針對軟體中的功能驗證或錯誤檢測的一種函式,一般來說,不同的功能的測試函式是不相同的。測試函式是我們軟體中必不可少的一部分,主要驗證軟體的功能和性能要求。
基本介紹
- 中文名:測試函式
- 外文名:Test Function
- 學科:計算機科學、軟體工程
- 目的:驗證軟體的功能和性能
- 內容:測試方法
- 來源:自己實現、調用系統集成
- 套用:程式、軟體項目
定義,測試方法,Visual FoxPro中的測試函式,
定義
在計算機中,測試函式是指針對軟體中的功能驗證或錯誤檢測的一種函式,一般來說,不同的功能的測試函式是不相同的。測試函式是我們軟體中必不可少的一部分,主要驗證軟體的功能和性能要求。
測試方法
對丁軟體測試來說,從不向的角度來看,有不同的劃分方法:
從是否執行程式的角度劃分,可以分為靜態測試和動態測試。其中軟體的靜態測試不要求在計算機上實際執行所側程式,主要以一些人工的模擬技術村軟體進行分析和測試;而軟體的動態測試是通過輸入一組預先按照一定的測試準則構造的實例數據來動態運行程式,而達到發現錯誤的過程。
從是否關心軟體內部結構和員體實現的角度劃分,可以分為白盒測試、黑盒測試和灰盒測試。白盒測試是指按照程式內部的結構測試程式,通過測試來檢測產品內部動作是否按照設計規格說明倍的規定正常進行,檢驗程式小的每條記路是否都能按預定要求正確工作。黑盒測試是指在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程式看作一個不能打開的黑盒子,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入數據而產牛正確的輸出信息,並且保持外部信息的完整性。灰盒測試,是介於白盒測試與黑盒測試之間的一種測試方法。可以這樣理解,灰盒測試關注輸出對於輸入的正性,同時也關注內部表現,但這種關注不像白盒那樣詳細、完整,只是通過些表征性的現象、事件、標誌來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。
從軟體開發的過程按階段劃分,可以分為單元測試、集成測試、確認測試等。開始是單元測試,集中對用原始碼實現的每一個程式單元進行測試,檢查各個程式模組是否正確地實現了規定的功能。集成測試把已測試過的模組組裝起來,主要對與設計相關的軟體體系結構的構造進行測試。確認測試則是要檢查已實現的軟體是否滿足了需求規格說明中確定了的各種需求,以及軟體配置是否完全、正確。系統測試把已經經過確認的軟體納入實際運行環境中,與其他系統成份組合公一起進行測試。
從軟體開發的過程按階段劃分,可以分為單元測試、集成測試、確認測試等。開始是單元測試,集中對用原始碼實現的每一個程式單元進行測試,檢查各個程式模組是否正確地實現了規定的功能。集成測試把已測試過的模組組裝起來,主要對與設計相關的軟體體系結構的構造進行測試。確認測試則是要檢查已實現的軟體是否滿足了需求規格說明中確定了的各種需求,以及軟體配置是否完全、正確。系統測試把已經經過確認的軟體納入實際運行環境中,與其他系統成份組合公一起進行測試。
Visual FoxPro中的測試函式
在資料庫套用的操作過程中,用戶需要了解數據對象的類型、狀態等屬性,Visual FoxPro提供了相關的測試函式,使用戶能夠準確地獲取操作對象的相關屬性。
1.數據類型函式TYPE( )
【格式】TYPE(<cExp >)
2.檔案查找函式FILE()
【格式】FILE(<cExp>)
【功能】根據cExp串中指定路徑查找檔案,如未指定路徑,則在默認目錄中查找。檔案存在,返回邏輯真(.T.) 值,否則為邏輯假(.F.)值。
3.條件測試函式IIF( )
【格式】IIF(<lExp >,<eExp 1>,<eExp2>)
4.表結束標誌測試函式EOF( )
【格式】EOF([<工作區號> | <別名>])
【功能】測試記錄指針是否移到表結束處。如果記錄指針指向表中尾記錄之後,函式返回真(.T.),否則為假(.F.)。
5.表起始標識測試函式BOF ( )
【格式】BOF ([<工作區號> | <別名>])
【功能】測試記錄指針是否移到表起始處。如果記錄指針指向表中首記錄前面,函式返回真(.T.),否則為假(.F.)。工作區說明見EOF()函式。
6.當前記錄號函式RECNO()
【格式】RECNO([<工作區號> | <別名>])
【功能】返回指定工作區中表的當前記錄的記錄號。對於空表返回值為1。
7.當前記錄邏輯刪除標誌測試函式DELETED( )
【格式】DELETED([<工作區號> | <別名>])
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
cDate="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/2003
DTOC()函式/DTOS()函式
示例
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)
? DTOS({^1998-10-31})
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\testdata')
USE customer && 打開 Customer 表
nTest = 1.01
cTest = "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') && 顯示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