程式的測試 一

2021-04-16 08:49:50 字數 1942 閱讀 4935

程式的測試

在python中,測試就是反覆的編輯和執行。

當 你寫一段程式的時候,你必須首先要清楚這段程式要解決什麼問題,你可以先寫乙個文件,以闡明這段程式要達到的目標,以便以後檢查原程式是否滿足要求,然後 為它寫一測試程式。比如,如果你想寫一模組,它只有乙個函式rect_area,這個函式用來計算給定的長和寬的面積,在開始寫這一模組之前,你應該寫一 如下測試程式來測試它是否能達到要求:

from area import rect_area

height = 3

width = 4

correct_answer = 12

answer = rect_area(height, width)

if answer == correct_answer:

print 'test passed '

else:

print 'test failed '

這個測試程式能夠反映出你的模組是否能達到目標,如果它給出了錯誤提示,你可以根據提示來檢查模組的**。寫測試程式也有利於日後程式的擴充套件和維護。

一、測試的一般步驟

1、明確你想要的功能。盡可能寫乙個文件,然後為它寫乙個測試程式。

2、為這些功能寫一些框架**(就是先把程式的基本結構寫好,避免語法錯誤),以便程式能執行。

3、為你的框架寫一些樣品**,僅用於滿足測試,不必實現所要的功能,僅僅為了通過測試。

4、重寫這些樣品**使它實現你要求的功能,並保證測試通過。

二、測試工具

1、doctest

doctest模組用於在文件字串中找尋類似python命令行會話的文字,並執行它們以檢查它們是否和文件字元中所寫的結果一樣。示例如下:

def square(x):

'''squares a number and returns the result.

>>> square(2)

4>>> square(3)

9'''

return x*x

上面定義了乙個計算平方的函式,其中文件字串中:

>>> square(2)

4>>> square(3)

9就是命令行會話。

然後我們再寫乙個名為my_math.py的模組用來測試函式的正確性:

if __name__=='__main__':

import doctest, my_math

doctest.testmod(my_math)

然後我們執行如下命令:

>>> python my_math.py

>>>

沒有輸出何結果,這是因為檢查通過,也就是說square(2)的值是4,square(3)和值是9。如果沒有成功,將給出錯誤資訊,根據錯誤資訊可以很容易地找到錯誤。

如果我們要看詳細的檢查情況的話,可以如下:

>>> python my_math.py -v

輸出結果如下:

running my_math.__doc__

0 of 0 examples failed in my_math.__doc__

running my_math.square.__doc__

trying: square(2)

expecting: 4

oktrying: square(3)

expecting: 9

ok0 of 2 examples failed in my_math.square.__doc__

1 items had no tests:

test

1 items passed all tests:

2 tests in my_math.square

2 tests in 2 items.

2 passed and 0 failed.

test passed.

proc的乙個測試小程式

資料庫 release 11.1.0.6.0 os windows xp 編譯環境 gcc version 4.5.1 code include include include include sqlda.h include sqlcpr.h exec sql include sqlca relea...

程式的測試 三

源 檢查工具 doctest和unittest都是檢查功能的。現在我們介紹兩個檢查原始碼的工具,以便提高你的 的質量。它們分別是pychecker http pychecker.sf.net 和pylint 用pychecker檢查檔案的方法如下 pychecker file1.py file2.p...

程式測試的小結

或曰之程式測試 今天測試buff的屬性疊加的時候,犯了致命性的原則錯誤,就是為了證明自己的正確性而測試,以下便是偶的自我檢討。或曾經曰過 程式測試是為了發現錯誤而執行程式的過程 就是在 完成後,通過執行程式來發現 或模組中錯誤。但是,這種意義上的測試是不能在 完成之前發現系統需求 設計上的問題,也就...