導航:首頁 > 編程語言 > 驅動測試程序的開發套路

驅動測試程序的開發套路

發布時間:2023-03-16 11:06:47

① 嵌入式驅動開發的基本流程

驅動一般過程是這樣的:

  1. 首先了解你需要做的驅動的設備的規格,詳細看看手冊

  2. 了解設備的使用方法,通常廠野型家會提供一個測試的驅動程序代碼

  3. 在你所移植的系統上編譯驅動飢脊伏程序源代碼,按爛攜照手冊進行測試

  4. 然後再根據自己的需要修改相關代碼

② 什麼是驅動測試 驅動測試

關於驅動大虧測試:測試驅動開發簡稱TDD,指交錯進行測試和代碼開發,是一種程序開發方法,也是極限編程的一部分。

其步驟如下:

  1. 識別所需的功能增量

  2. 針對此功能編寫一個測試並實現為一個自動測試

  3. 運行此測試,以及所有已實現的其他測試

  4. 實現這個功能,核梁並重新運行這個測試

  5. 一旦所有的測試成功,轉入去實現下一個功能

以上為 軟體工程 一書所改仿運描述的,第八章 第二節。

我的理解是:先實現該功能的測試,然後實現功能,最後用先實現了的測試對實現的功能進行測試。

③ 驅動開發的步驟有哪些

步驟?沒有什麼現成的可作為規律來用的步驟。
開發驅動主要有兩方面的基礎專要求:
a,明屬白你手頭的硬體工作原理,包括處理器架構的知識,還有外設控制器的 datasheet 為必讀之物;
b,假如你們要開發的整個系統是裸機程序,那你要開發的驅動程序就是一套和硬體打交道的函數庫;但是假如你們計劃在產品中使用一個操作系統,那開發驅動之前就需要熟悉這個操作系統的相關內部操作原理,因為你寫的是驅動程序需要很好的「鑲嵌」到這個操作系統的環境中去。

具體的,可以參考 JulianTec 的這篇文章:《應用程序,操作系統,驅動程序和硬體》

④ 如何在 Windows CE 5.0 中開發和測試設備驅動程序

本文介紹如何開發和測試 Windows CE 5.0 設備驅動程序。本文循序漸進地介紹如何創建流驅動程序,如何創建自定義 Windows CE Test Kit
(CETK) 測試,以及如何編寫應用程序來測試驅動程序。這要花費大約 60 分鍾來完成。

本頁內容

第一部分:建立設備驅動程序
第二部分:測試流驅動程序測試代碼
第三部分:檢驗驅動程序
第四部分:使用
Windows CE Test Kit
第五部分:創建自定義
CETK 測試
第六部分:確定誰擁有流驅動程序

小結

第一部分:建立設備驅動程序

在本練習中,您將使用 Platform Builder 來添加作為設備驅動程序的項目。

在 開始編寫驅動程序之前,您應該了解設備驅動程序的用途。驅動程序將基礎硬體從梁頃操作系統中抽象出來,使之更好地面對應用程序開發人員。應用程序開發人員無需
知道顯示硬體或串列硬體的詳細信息 — 例如,串列設備是用 Universal Asynchronous Receiver/Transmitter (UART)
實現的還是用 field-programmable gate array (FPGA)
實現的。在大多數情況下,應用程序開發人員根本不需要知道硬體是如何實現的。

Microsoft Windows 為開發人員公開了調用硬體的應用程序編程介面
(API),他們不需要知道物理硬體的情況。例如,為了向串列埠寫入數據,應用程序開發人員只需調用 COMx 上的 CreateFile( )(其中 x
表示您要打開的串列埠編號,例如 COM1 代表串列埠 1),再調用 WriteFile( ) 以將一些位元組數據寫入串列埠,然後調用
CloseHandle( ) 以關閉串列埠。不管基礎串列硬體是什麼(也不管您運行的是哪個 Windows 操作系統),API 都會以同樣的順序執行。

相同的情況也適用於其他 API:如果您希望在顯示表面畫一條線,那麼您只需調用 PolyLine( )、MoveToEx( ) 或 LineTo(
)。作為應用程序開發人員,大多數情況下您都不需要知道顯示硬體的情況。此處調用的 API 將返回顯示表面的維數、顏色深度等碼銷等。

好 消息是開發人員可以調用一個一致的、眾所周知的 API 集。這些 API
將他們的應用程序從基礎硬體中抽象出來。這至關重要,因為應用程序開發人員無法知道應用程序是運行在攜帶型計算機上,還是運行在 Tablet PC
上,抑或運行在桌面計算機上。無論電腦以 1024×768 還是 1600×1200
的解析度運行,應用程序開發人員都可以在運行時查詢屏幕解析度和顏色深度,因此不需要構建只在特定硬體上運行的應用程序。

驅動程序只是一 個動態鏈接庫(DLL)。將 DLL 載入到父進程地址空間;然後父進程就可以調用從該 DLL 公開的任何介面。通常,父進程通過調用
LoadLibrary( ) 或 LoadDriver( ) 來載入驅動程序。LoadDriver 不僅將 DLL 載入到父進程地址空間中,而且還要確保 DLL
沒有「paged out」。

調用進程如何知道從您的 DLL 或驅動程序公開了哪些 API 或函數呢?父進程調用 GetProcAddress( ),後者可以獲取函數名稱和所載入的
DLL 的 hInstance。如果函數存在,調用返回該函數指針;如果沒有從 DLL 公開該函數,則返回 NULL。

流驅動程序也公開了一個眾所周知的函數集。對於流驅動程序,您會希望能夠將位元組流寫入設備中,或者從設備中讀取位元組流。因此,在前面使用的串列埠示例中,您可能希望從您的驅動程序公開如下函數集:Open、Close、Read

Write。流驅動程序還公開一些其他函數:PowerUp、PowerDown、IOControl、Init
和 DeInit。

您可以將現有的操作系統映像用於模擬器平台(Basic Lab MyPlatform 平台最理想)。然後,您就可以將
DLL/驅動程序項目添加到該平台了。

橡模陸在構建並下載了該平台之後(這表明操作系統啟動並運行良好),您需要創建您的主幹驅動程序。您可以使用 File 菜單上的 Platform
Builder New Project or File 命令創建一個 Microsoft Windows CE DLL。創建用於公開函數或資源的
DLL 與創建用作驅動程序的 DLL 之間沒有什麼不同;唯一的不同之處在於 DLL 公開哪些函數,以及如何在平台上注冊或使用 DLL。

此 外,一種創建國際化應用程序的方法是,首先創建包含一組核心語言字元串、對話框和資源的基本應用程序,然後創建許多外部
DLL,其中每個都包含針對特定區域設置的對話框、字元串和資源。然後,應用程序就可以在運行時載入相應的語言資源。只需要添加 DLL
文件,您就可以將語言添加到應用程序中。在 Developing International
Software 一書中描述了與此相關的主題以及其他一些有趣的主題,可以在 Microsoft Press 網站上獲得此書。

添加一個作為設備驅動程序的項目

用 Platform Builder 打開現有的 MyPlatform 工作區。

在 File 菜單上,單擊 New Project or File。

選擇 WCE Dynamic-Link Library,給它一個合適的名稱(例如,StreamDrv),然後單擊
OK,如下圖所示。

在下圖所顯示的頁面中多少填寫一些您需要的信息,然後單擊 Next。

單擊 A simple Windows CE DLL project,如下圖所示。

單擊 Finish 完成此向導。

此時,DLL 只包含一個空的 DllMain
函數。您可以公開一些應用程序要調用的函數,並公開一些資源(可能使之成為識別語言/文化的應用程序的一部分),或者使之成為一個設備驅動程序。在本文中,您將使用
Windows CE Stream Driver Wizard 創建您的主幹流驅動程序。

在 Windows CE 中,打開流驅動程序就像打開文件一樣,只需根據唯一的三字母前綴(例如,COM)。

為您的驅動程序選擇一個唯一的三字母標識符。在 Location
框中輸入您之前創建的流驅動程序的完整路徑。或者使用「browse」按鈕定位到 Platform Builder 安裝中的 PBWorkspaces
目錄,找到您前面創建的平台,然後找到流驅動程序的名稱(在前面的示例中,此路徑為 PBWorkspaces\TuxPlat\StreamDrv)。

在 Driver Filename 框中輸入驅動程序的名稱。如下圖所示,使用與您前面使用名稱 (StreamDrv)
相同的名稱,以確保改寫在 Platform Builder 中創建的原始文件。

按 Go,將生成流驅動程序源代碼。

返回頁首

第二部分:測試流驅動程序測試代碼

現在您已經編寫了用於 Windows CE 的自定義流驅動程序的基本代碼。此時,驅動程序還沒有與任何硬體連接。

在 編寫完驅動程序之後,您需要為開發人員提供一種測試它的方法。Windows CE 附帶了 Windows CE Test Kit
(CETK),它提供了用於各種驅動程序類型的驅動程序測試,包含網路連接、藍牙、串列埠以及顯示。您編寫的驅動程序是一種自定義的流驅動程序,它沒有
公開與現有的驅動程序測試一樣的功能,因此您需要為該驅動程序編寫一個自定義測試。雖然您完全可以編寫一個應用程序來演練驅動程序,但提供一個 CETK
模塊或許更好些,在開發期間可以使用此模塊,並且還可以將此模塊提供給客戶,供他們在裝配硬體上測試驅動程序。

在這一部分的練習中,您將執行以下過程:

創建主幹 Tux 模塊

將自定義驅動程序的測試代碼添加到 Tux DLL 中

重新構建操作系統

設置斷點

創建主幹 Tux 模塊

在 Platform Builder 中,在 File 菜單上單擊 New Project or File。

選擇 WCE TUX Dynamic-Link Library,鍵入 TuxTest 作為項目名稱,輸入一個位置,單擊
Workspace Project,然後單擊 OK,如下圖所示。(實際上,您可以選擇任意一個項目類型;對於本文,單擊
Workspace Project)。

在下圖顯示的頁面中多少填寫一些您需要的信息,然後單擊 Next。

閱讀下圖所顯示的屏幕上的信息,然後單擊 Next。

在最後一頁上,您可以選擇選取 Release Type 下的
CETK,如下圖所示。該選項關閉了某些二進制的優化,以提高調試工作效率。單擊 Finish。

單擊 View | File View,然後展開 Projects 樹顯示 tux
源代碼,如下圖所示。

前圖中需要注意的重要文件是:

ft.h — 該文件包含 tux DLL 所用的函數表。

test.cpp — 該文件包含從該函數表中調用的測試過程。

TuxStreamTest.cpp — 該文件包含 DLLMain 和 ShellProc,後者是從 Tux.exe
調用的。

將自定義驅動程序測試代碼添加到 Tux DLL 中

打開源代碼 Test.cpp。

使用 CodeClip 來獲得 Tux_Custom_Test | TuxCode 源代碼。

用 CodeClip 中的代碼替代函數 TestProc 中的內容。

您會注意到,Test.cpp 中的代碼載入了一個名為 Demo.dll 的驅動程序。對於本文,您創建了一個名為 StreamDrv
的驅動程序。您需要修改源代碼以載入您的 StreamDrv.dll 驅動程序。

找到 Test.cpp 中調用 LoadLibrary 的源代碼的位置,然後將要從 Demo.dll
中載入的驅動程序的名稱修改為 StreamDrv.dll。

在 Platform Builder 文件視圖中,右鍵單擊 TuxTest 項目,然後單擊 Build Current
Project。

您還需要從該目錄中添加 Windows CE Test Kit 組件。

在 Device Drivers 下,找到該目錄中 Windows CE Test Kit 組件的位置,然後選擇
Add the Windows CE Test Kit,將該組件添加到您的平台中。

注 將該組件添加到您的平台上並沒有將任何文件添加到最後的操作系統映像中;它將 Clientside 文件添加到 build release
文件夾中。您可以從 Platform Builder 下載 Clientside 應用程序,並在目標設備上運行該應用程序。

現在您需要重新構建您的操作系統,以便合並這些變更。

重新構建操作系統

在 Platform Builder 中,選擇 Build OS | Sysgen。

構建過程將會花大約 5 分鍾完成。

當載入驅動程序時,在流驅動程序的入口點設置一個斷點來觀察非常有用。

設置斷點

單擊 File View,打開 StreamDrv 項目,然後打開 Source files。

找到並打開 StreamDrv.cpp。

找到 DllMain,然後找到並單擊 switch 語句。

按 F9 設置斷點。

單擊 Target | Attach,將操作系統下載到模擬環境中。

您會看到以下調試輸出,斷點將啟用。注意,在載入操作系統的用戶介面 (UI) 之前,這早就發生了。

4294780036 PID:23f767b6 TID:23f767e6 0x83fa6800: >>> Loading mole
streamdrv.dll at address 0x01ED0000-0x01ED5000

Loaded symbols for
'C:\WINCE500\PBWORKSPACES\DRVDEMO\RELDIR\EMULATOR_X86_DEBUG\STREAMDRV.DLL'

單擊 switch 語句,然後按 F9 禁用斷點。

按 F5,允許操作系統繼續載入。

現在,您已經構建了一個 Windows CE 5.0
操作系統,它包含一個自定義流驅動程序,並且您已經在操作系統引導順序的過程中看到了驅動程序載入。

返回頁首

第三部分:檢驗驅動程序

在這一部分的練習中,您將執行以下過程:

使用命令行工具查看從驅動程序公開的函數

使用遠程系統信息 (Remote System Information) 工具檢驗驅動程序

確定驅動程序已載入

檢驗您所創建的設備驅動程序的第一種方法是查看從該驅動程序公開的函數。Windows CE 附帶了一個名為 Dumpbin
的命令行工具,可以用於檢驗導入應用程序或模塊的內容,或者從 DLL(或驅動程序)導出的內容。

使用命令行工具查看從驅動程序公開的函數

在 Platform Builder 中,單擊 Build OS | Open Release
Directory。該操作為當前的工作區打開 build release 文件夾中的 Command Prompt 窗口。

鍵入 mpbin exports StreamDrv.dll

下圖顯示輸出。您可以看到,所有需要的流驅動程序函數都是從驅動程序公開的;函數是從 DLL 公開的(通過該項目的 .def 文件)。

鍵入 Exit 關閉 Command Prompt 窗口

StreamDrv.def 文件的內容如下所示。

LIBRARY DemoDriver

EXPORTS

DEM_Init

DEM_Deinit

DEM_Open

DEM_Close

DEM_IOControl

DEM_PowerUp

DEM_PowerDown

DEM_Read

DEM_Write

DEM_Seek

CustomFunction

CustomFunctionEx

您可以檢驗驅動程序的第二種方法是通過遠程系統信息工具。

通過遠程系統信息工具檢驗驅動程序

在 Platform Builder 中,單擊 Tools | Remote System
Information。

選擇 Windows CE Default Platform | Default Device,然後單擊
OK,如下圖所示。

此過程將遠程系統信息應用程序連接到 Platform Builder 正在使用的當前活動平台上。下圖顯示了結果。

您也可以使用載入模塊列表來確定已載入了您的驅動程序。

確定驅動程序已載入

在 Platform Builder 中,使用 Target Control 窗口 (gi mod) 或 View |
Debug Windows | Moles and Symbols。

下圖顯示了此過程的結果。

返回頁首

第四部分:使用 Windows CE Test Kit

Windows CE Test Kit 包含設備端組件和桌面組件。設備端組件叫做 Clientside.exe,通過從目錄中添加 CETK
組件,您可以將設備端組件添加到您的工作區中。注意,將 Clientside.exe
應用程序添加到工作區中並沒有將任何文件添加到最終操作系統映像中,但它卻將應用程序復制到 build release 文件夾中。

在桌面計算機上運行 CETK 之前,您需要啟動設備上的 Clientside.exe 應用程序。沒有鏈接工具(比如遠程工具)的原因在於,CETK
也將運行在裝配(零售)設備(比如 Pocket PC)上。

在這一部分的練習中,您將執行以下過程:

檢驗 Windows CE Test Kit 用戶介面

運行一個標准測試

檢驗 Windows CE Test Kit 用戶介面

在 Platform Builder 中,在 Tools 菜單上單擊 Windows CE Test
Kit。

這 一步啟動 Windows CE Test Kit 應用程序,如下圖所示。注意,這不是一個標準的遠程工具。Windows CE
附帶的大多數遠程工具都使用 Kernel Independent Transport Layer
(KITL),一種將工具從基礎通信硬體中抽象出來的傳輸,以便這些工具可以運行在乙太網、串列埠、1394、USB 或者其他傳輸上。

雖然對於 Windows CE 5.0,Windows CE Test Kit 通常通過套接字連接,但是也已經更新了工具來支持 KITL。

在 Windows CE Test Kit 中,單擊 Connection | Start
Client。

這一步顯示 Device Connection 對話框,其中您可以選擇是通過套接字連接還是通過 KITL 連接。

確保清除了 Use Windows Sockets for the client/server communication
復選框,如下圖所示。

單擊 Connect。

在遠程工具 (KITL) 的標准用戶界面中,選擇 Windows CE Default Platform | Default
Device,然後單擊 OK,如下圖所示。

該過程在目標設備上啟動 Clientside.exe,並連接到目標設備上。在完成連接之後,CETK 枚舉目標平台上支持的設備,並禁用 CETK
中不支持的設備。

在 CETK 連接到目標設備並枚舉設備之後,UI 如下圖所示。注意,禁用了某些硬體類別,比如 Bluetooth、IR
Port 和 Modem。

將自定義測試添加到 CETK 中之前,您可以運行一個標准測試,以查看測試工作如何進行。

運行標准測試

在 CETK 中,展開 Windows CE (x86)。

找到並展開 Serial Port。

右鍵單擊 Serial Port Driver Test,然後單擊 Quick Start。

這一步只運行了這一個測試,還沒有運行所選的其他測試。UI 指示測試正在進行,如下圖所示。

CETK 提供測試過程和測試輸出的更新。您也可以在 Platform Builder 中檢驗調試輸出,以便查看測試過程,如下例所示。

405910 PID:83d4ee4a TID:83ea5a8a *** Test Name: Set event mask and wait for
thread to close comm port handle

405920 PID:83d4ee4a TID:83ea5a8a *** Test ID: 1007

405920 PID:83d4ee4a TID:83ea5a8a *** Library Path: \serdrvbvt.dll

405920 PID:83d4ee4a TID:83ea5a8a *** Command Line:

405920 PID:83d4ee4a TID:83ea5a8a *** Result: Passed

405920 PID:83d4ee4a TID:83ea5a8a *** Random Seed: 15595

405930 PID:83d4ee4a TID:83ea5a8a *** Thread Count: 1

405930 PID:83d4ee4a TID:83ea5a8a *** Execution Time: 0:00:05.110

405930 PID:83d4ee4a TID:83ea5a8a ***
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

如果 CETK UI
指示模擬器上的串列埠測試已經失敗(如下圖所示),那麼失敗可能不是由於每個測試的完全失敗而導致的。它可能表明,全部測試套件只有一部分已經失敗,並且這部分實際上也是期望的行為。

右鍵單擊 Serial Port Driver Test [Failed],然後單擊 View
Results。

出現如下圖所示的窗口。

查看上圖所示的結果,您可以看到,已經運行了 10 個單獨的測試。除了 Set and verify receive timeout
以外,所有這些測試都已經通過。

要獲得更多信息,您可以單擊個別測試。

返回頁首

第五部分:創建自定義 CETK 測試

通過使用 Platform Builder User-Defined Test Wizard,您可以創建一個自定義 CETK
測試。該測試將驗證自定義流驅動程序(您也已經將其添加到平台中)的導出函數。

在這一部分的練習中,您將執行以下過程:

列出 CETK 中的自定義流驅動程序測試

運行自定義流驅動程序測試

列出 CETK 中的自定義流驅動程序測試

在 CETK 中,單擊 Tests | User Defined。

這一步啟動 User-Defined Test Wizard。該向導的第一頁只是一些信息。

單擊 Next,如下圖所示。

單擊 Add a New Test,然後單擊 Next,如下圖所示。

輸入下列信息,然後單擊 Next:

· 在 Name of Test 框中鍵入 Custom Stream Driver Test

· 在 Tux Mole (DLL) 框中,定位到
C:\Wince500\PBWorkspaces\MyPlatform\RelDir\Emulator_x86_Debug 目錄,然後選擇
test.dll 或 TuxTest.dll(這依賴於您在 Platform Builder 中所使用的 Tux
測試的名稱)。

· 在 Command Line 框中,保留當前測試的默認設置。

· 在 Processor 框中鍵入 x86

下圖顯示信息如何出現在當前的向導頁中。

單擊 Copy the files to the directory for user-defined tests,然後單擊
Next,如下圖所示。

您需要將自定義驅動程序測試(您的 DLL)復制到用戶定義的測試文件夾中。如果您要刪除現有的工作區,那麼自定義驅動程序測試仍然保持完好。

單擊 Next,如下圖所示。

單擊 Finish,如下圖所示。

CETK 應用程序不會用新的測試進行自動刷新。您需要重新同步桌面應用程序,以查看新添加的測試。

右鍵單擊 Windows CE (x86),然後單擊 Redetect Peripherals。

該過程添加了一個名為 User Tests 的新驅動程序類別。您只添加了一個測試,因此,當您展開這個項目時,您只能看到 Custom
Stream Driver Test。

注 已經將自定義流驅動程序測試的 DLL 復制到下列位置: C:\Program Files\Windows CE Platform
Builder\5.00\CEPB\wcetk\user\x86.

運行自定義流驅動程序測試

在可用的測試列表中展開 User Tests。

右鍵單擊 Custom Stream Driver Test,然後單擊 Quick Start。

⑤ 根據測試效應,哪一種方式的測試最好

根據測試效應,哪一種方式的測試最好,1.測試驅動開發(Test-Driven Development)
測試驅動開發不同於傳統測試開發,編寫某個功能的代碼之前先編寫這個功能的測試代碼,然後再編寫使測試通過的代碼功能。

通過測試來推動開發。

測試驅動開發幫助了代碼簡潔且可用,也是在軟體開發中主流的測試方法。

2.單元測試(Unit Test)
單元測試也叫模塊測試,是針對程察明伍序模塊來進行測試的代碼模塊。

測試驅動開發中編寫的測試代碼就是單元測試。

所以,測試驅動開發中單元測試占很大一部分。

不過這也根據團隊中對測試部分的指標決定,這個指標就是代碼覆蓋率。

3.代碼覆蓋(Code Coverage)
代碼覆蓋是軟體測試中的的一種度量,描述程序中敗或源代碼的測試比例。

一般來講,這個要根據不同的任務和不同的團隊指標來定,像 80% 或更多。

4.集成測試(Integeration Test)
集成測試也叫組裝測試。

在單元測試的基礎上,將能運行的模塊代碼,按照設計要求組裝成系統,進行集成測試。

5. 端到端的測試(End to End Test)
端到端的測試是從應用程序流的角度進行測槐斗試,模擬用戶真實使用場景,也可以稱作自動化測試。

例如,用 puppeteer 模擬真實用戶,來測試網頁開發。

以上都是一些名詞的簡單介紹,後面會介紹它們之間的關系。

⑥ 如何編寫驅動程序

代碼:

#include<linux/mole.h>

#include<linux/kernel.h>

#include<asm/io.h>

#include<linux/miscdevice.h>

#include<linux/fs.h>

#include<asm/uaccess.h>

//流水燈代碼

#define GPM4CON 0x110002e0

#define GPM4DAT 0x110002e4

static unsigned long*ledcon=NULL;

static unsigned long*leddat=NULL;

//自定義write文件操作(不自定義的話,內核有默認的一套文件操作函數)

static ssize_t test_write(struct file*filp,const char __user*buff,size_t count,loff_t*offset)

{

int value=0;

int ret=0;

ret=_from_user(&value,buff,4);

//底層驅動只定義基本操作動作,不定義功能

if(value==1)

{

*leddat|=0x0f;

*leddat&=0xfe;

}

if(value==2)

{

*leddat|=0x0f;

*leddat&=0xfd;

}

if(value==3)

{

*leddat|=0x0f;

*leddat&=0xfb;

}

if(value==4)

{

*leddat|=0x0f;

*leddat&=0xf7;

}

return 0;

}

//文件操作結構體初始化

static struct file_operations g_tfops={

.owner=THIS_MODULE,

.write=test_write,

};

//雜設備信息結構體初始化

static struct miscdevice g_tmisc={

.minor=MISC_DYNAMIC_MINOR,

.name="test_led",

.fops=&g_tfops,

};

//驅動入口函數雜設備初始化

static int __init test_misc_init(void)

{

//IO地址空間映射到內核的虛擬地址空間

ledcon=ioremap(GPM4CON,4);

leddat=ioremap(GPM4DAT,4);

//初始化led

*ledcon&=0xffff0000;

*ledcon|=0x00001111;

*leddat|=0x0f;

//雜設備注冊函數

misc_register(&g_tmisc);

return 0;

}

//驅動出口函數

static void __exit test_misc_exit(void)

{

//釋放地址映射

iounmap(ledcon);

iounmap(leddat);

}

//指定模塊的出入口函數

mole_init(test_misc_init);

mole_exit(test_misc_exit);

MODULE_LICENSE("GPL");

(6)驅動測試程序的開發套路擴展閱讀:

include用法:

#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。

插入頭文件的內容

#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:

1、#include<文件名>

2、#include"文件名"

如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:

#include<math.h>//一些數學函數的原型,以及相關的類型和宏

如果需要包含針對程序所開發的源文件,則應該使用第二種格式。

採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:

#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏

你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。

【例1】在#include命令中的宏

#ifdef _DEBUG_

#define MY_HEADER"myProject_dbg.h"

#else

#define MY_HEADER"myProject.h"

#endif

#include MY_HEADER

當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。

⑦ 驗收測試驅動開發介紹(ATDD)

TDD(測試驅動開發)是敏捷中非常有名的一個實踐了,談這個的人很多,但真正在用的人只是鳳毛麟角。TDD一般主要指的是UTDD,但除了UTDD之外還經常被提起的還有ATDD和BDD,本文希望呈現的是ATDD,即是 驗收測試驅動開發 。本文的讀者,我默認你已戚租歲經了解了UTDD的概念和大致方法。

最好的驗證一個研發團隊是否對客戶需求有統一的理解的方法就是對客戶如何驗收有統一的理解。
ATDD這樣的做法一下子就讓我想到了「七個習慣」中的 以終為始 ,我們先澄清細化最終客戶的目標,並把自始至終都基於這個目標工作,這不就是以終為始嗎?

一般來說,我們認為ATDD的好處有:

為了更好的把ATDD和UTDD區分開來,你可以嘗試記住一句話:

一個列子:

Robot framework是一個開源的自動化測試框架,它通過「keyword-driven」 的方式編寫測試案例,是一個非常適合用來實踐ATDD的工具。
官網: Robot Framework

基於拋開了軟體系統復雜性的user story而寫的驗收用例,往往也高睜不可避免在測試覆蓋率上會遺漏一些細節上的需求,特別是非功能性的需求。沒有人工參與的自動化測試,提高了效率,但也不可避免的阻礙了測試案例的改進,使得殺蟲劑效應明顯。
所以在引入ATDD和CI/CD後,組織必須也要同時引入 探索性測試 ,不斷完善自動化測試的不足。
當然探索式測試也可以是自動化的,型彎關於探索式測試,以後再談。

⑧ 電腦驅動程序的工作原理

資料來源: http://ke..com/view/1048.htm一、什麼是驅動程序
根據網路:驅動程序,英文名為「Device Driver」,全稱為「設備驅動程序」, 是一種可以使計算機和設備通信的特殊程序,可以 說相當於硬體的介面,操作系統只有通過這個介面,才能控制硬體設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。 因此,驅動程序被譽為「 硬體的靈魂」、「硬體的主宰」、和「硬體和系統之間的橋梁」等。
剛安裝好的系統操作系統,很可能驅動程序安裝得不完整。硬體越新,這種可能性越大。菜菜熊之前看到的「圖標很大且顏色難看」就是沒有安裝好驅動的原因。
在軟體測試中:在自底向上測試中,要編寫稱為測試驅動的模塊調用正在測試的模塊。測試驅動模塊以和將來真正模塊同樣的方式掛接,向處於測試的模塊發送測試用例數據,接受返回結果,驗證結果是否正確。
二、驅動程序的作用
隨著電子技術的飛速發展,電腦硬體的性能越來越強大。驅動程序是直接工作在各種硬體設備上的軟體,其「驅動」這個名稱也十分形象的指明了它的功能。正是通過驅動程序,各種硬體設備才能正常運行,達到既定的工作效果。
硬體如果缺少了驅動程序的「驅動」,那麼本來性能非常強大的硬體就無法根據軟體發出的指令進行工作,硬體就是空有一身本領都無從發揮,毫無用武 之地。這時候,電腦就正如古人所說的「萬事俱備,只欠東風」,這「東風」的角色就落在了驅動程序身上。如此看來,驅動程序在電腦使用上還真起著舉足輕重的 作用。
從理論上講,所有的硬體設備都需要安裝相應的驅動程序才能正常工作。但像CPU、內存、主板、軟碟機、鍵盤、顯示器等設備卻旦枝並不需要安裝驅動程序也可以正常工作,而顯卡、音效卡、網卡等卻一定要安裝驅動程序,否則便無法正常工作。這是為什麼呢?
這主要是由於這些硬體對於一台個人電腦來說是必需的,所以早期的設計人員將這些硬體列為BIOS能直接支持的硬體。換句話說,上述硬體安裝後就 可以被BIOS和操作系統直接支持,不再需要安裝驅動程序。從這個角度來說,BIOS也是一種驅動程序。但是對於其他的硬體,例如:網卡,音效卡,顯卡等等 卻必須要安裝驅動程序,不然這些硬體就無法正常工作。
三、驅動程序的界定
驅動程序可以界定為官方正式版、微軟WHQL認證版、第三方驅動、發燒友修改版、Beta測試版。
1、官方正式版
官方正式版驅動是指按照晶元廠商的設計研發出來的,經過反復測試、修正,最終通過官方渠道發布出來的正式版驅動程序,又名公版驅動。通常官方正 式版的發布方式包括官方網站發布及硬體產品附帶光碟這兩種方式。穩定性、兼容性好是官方正式版驅動最大的亮點,同時也是區別於發燒友修改版與測試版的顯著 特徵。因此推薦普通用戶使用官方正式版,而喜歡嘗鮮、體現個性的玩家則推薦使用發燒友修改版及Beta測試版。
2、微軟WHQL認證版
WHQL是Windows Hardware Quality Labs的縮寫,是微軟對桐好各硬體廠商驅動的一個認證,是為了測試驅動程序與操作系統的相容性及穩定性而制定的。也就是說通過了WHQL認證的驅動程序與Windows系統基本上不存在兼容性的問題。
3、第三方驅動
第三方驅動一般是指硬體產品OEM廠商發布的基於官方驅動優化而成的驅動程序。第三方驅動擁有穩定性、兼容性好,基於官方正式版驅動優化並比官 方正式版擁有更加完善的功能和更加強勁的整體性能的特性。因此,對於品牌機用戶來說,筆者推薦用戶的首選驅動是第三方驅動,第二選才是官方正式版驅動;對 於組裝機用戶來說,第三方驅動的選擇可能相對復雜一點,因此官方正式版驅動仍是首選。
4、發燒友修改版
發燒友令筆者首先就聯想到了顯卡,這是為什麼呢?因為一直以來,發燒友很常都被用來形容游戲愛好者。筆者的這個想法也正好和發燒友修改版的誕生 典故相符的,因為發燒友局遲鉛修改版的驅動最先就是出現在顯卡驅動上的,由於眾多發燒友對游戲的狂熱,對於顯卡性能的期望也就是比較高的,這時候廠商所發布的顯 卡驅動就往往都不能滿足游戲愛好者的需求了,因此經修改過的以滿足游戲愛好者更多的功能性要求的顯卡驅動也就應運而生了。如今,發燒友修改版驅動又名改版 驅動,是指經修改過的驅動程序,而又不專指經修改過的驅動程序。
5、Beta測試版
測試版驅動是指處於測試階段,還沒有正式發布的驅動程序。這樣的驅動往往具有穩定性不夠、與系統的兼容性不夠等bug。嘗鮮和風險總是同時存在的,所以對於使用Beta測試版驅動的用戶要做好出現故障的心理准備。
四、驅動程序介紹
驅動程序(Device Driver)全稱為「設備驅動程序」,是一種可以使計算機和設備通信的特殊程序,可以說相當於硬體的介面,操作系統只能通過這個介面,才能控制硬體設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。
正因為這個原因,驅動程序在系統中的所佔的地位十分重要,一般當操作系統安裝完畢後,首要的便是安裝硬體設備的驅動程序。不過,大多數情況下,我們並不需要安裝所有硬體設備的驅動程序,例如硬碟、顯示器、光碟機、鍵盤、滑鼠等就不需要安裝驅動程序,而顯卡、音效卡、掃描儀、攝像頭、Modem等就需要安裝驅動程序。另外,不同版本的操作系統對硬體設備的支持也是不同的,一般情況下版本越高所支持的硬體設備也越多,例如筆者使用了Windows XP,裝好系統後一個驅動程序也不用安裝。
設備驅動程序用來將硬體本身的功能告訴操作系統,完成硬體設備電子信號與操作系統及軟體的高級編程語言之間的互相翻譯。當操作系統需要使用某個硬體時,比如:讓音效卡播放音樂,它會先發送相應指令到音效卡驅動程序,音效卡驅動程序接收到後,馬上將其翻譯成音效卡才能聽懂的電子信號命令,從而讓音效卡播放音樂。
所以簡單的說,驅動程序提供了硬體到操作系統的一個介面以及協調二者之間的關系,而因為驅動程序有如此重要的作用,所以人們都稱「驅動程序是硬體的靈魂」、「硬體的主宰」,同時驅動程序也被形象的稱為「硬體和系統之間的橋梁」。
驅動程序即添加到操作系統中的一小塊代碼,其中包含有關硬體設備的信息。有了此信息,計算機就可以與設備進行通信。驅動程序是硬體廠商根據操作系統編寫的配置文件,可以說沒有驅動程序,計算機中的硬體就無法工作。操作系統不同,硬體的驅動程序也不同,各個硬體廠商為了保證硬體的兼容性及增強硬體的功能會不斷地升級驅動程序。如:Nvidia 顯卡晶元公司平均每個月會升級顯卡驅動程序2-3次。驅動程序是硬體的一部分,當你安裝新硬體時,驅動程序是一項不可或缺的重要元件。凡是安裝一個原本不屬於你電腦中的硬體設備時,系統就會要求你安裝驅動程序,將新的硬體與電腦系統連接起來。驅動程序扮演溝通的角色,把硬體的功能告訴電腦系統,並且也將系統的指令傳達給硬體,讓它開始工作。
當你在安裝新硬體時總會被要求放入「這種硬體的驅動程序」,很多人這時就開始頭痛。不是找不到驅動程序的碟片,就是找不到文件的位置,或是根本不知道什麼是驅動程序。比如安裝列印機這類的硬體外設,並不是把連接線接上就算完成,如果你這時候開始使用,系統會告訴你,找不到驅動程序。怎麼辦呢?參照說明書也未必就能順利安裝。其實在安裝方面還是有一定的慣例與通則可尋的,這些都可以幫你做到無障礙安裝。
在Windows系統中,需要安裝主板、光碟機、顯卡、音效卡等一套完整的驅動程序。如果你需要外接別的硬體設備,則還要安裝相應的驅動程序,如:外接游戲硬體要安裝手柄、方向盤、搖桿、跳舞毯等的驅動程序,外接列印機要安裝列印機驅動程序,上網或接入區域網要安裝網卡、Moden甚至ISDN、ADSL的驅動程序。說了這么多的驅動程序,你是否有一點頭痛了。下面就介紹Windows系統中各種的不同硬體設備的驅動程序,希望能讓你撥雲見日。
在Windows 9x下,驅動程序按照其提供的硬體支持可以分為:音效卡驅動程序、顯卡驅動程序、滑鼠驅動程序、主板驅動程序、網路設備驅動程序、列印機驅動程序、掃描儀驅動程序等等。為什麼沒有CPU、內存驅動程序呢?因為CPU和內存無需驅動程序便可使用,不僅如此,絕大多數鍵盤、滑鼠、硬碟、軟碟機、顯示器和主板上的標准設備都可以用Windows自帶的標准驅動程序來驅動,當然其它特定功能除外。如果你需要在Windows系統中的DOS模式下使用光碟機,那麼還需要在DOS模式下安裝光碟機驅動程序。多數顯卡、音效卡、網卡等內置擴展卡和列印機、掃描儀、外置Modem等外設都需要安裝與設備型號相符的驅動程序,否則無法發揮其部分或全部功能。驅動程序一般可通過三種途徑得到,一是購買的硬體附帶有驅動程序;二是Windows系統自帶有大量驅動程序;三是從Internet下載驅動程序。最後一種途徑往往能夠得到最新的驅動程序。
供Windows 9x使用的驅動程序包通常由一些.vxd(或.386)、.drv、.sys、.dll或.exe等文件組成,在安裝過程中,大部分文件都會被拷貝到「Windows\ System」目錄下。
五、驅動程序的開發
驅動程序的開發工作是很具挑戰性的,因為必須配合著硬體與軟體上相當明確與高級的平台技術。由於大多數的驅動程序(device drivers)運行在內核模式(kernel mode),軟體的錯誤經常造成系統嚴重的不穩定,例如藍屏(blue screen),這跟過去的用戶模式(user mode)下的程序設計(例如Delphi、VB、Java)有明顯的差異性。
Windows平台
為了大量減輕驅動程序開發人員的負擔,微軟不斷的改進驅動程序的開發軟體與架構,從早期復雜深晦的VxD,到Windows XP上的Windows Driver Model(以下簡稱WDM)開發架構,如今Windows Driver Foundation(以下簡稱WDF)已成為新一代的Windows平台驅動程序發展架構,這個架構大量簡化了驅動程序的開發流程,更符合面向對象的精神,此架構包含了UserMode Driver Framework 與 Kernel Mode DriverFramework兩種開發模式。在開發Windows平台上的驅動程序之前,必須先安裝DDK包,目前DDK最新版本為5600,同時支持WDM與WDF兩種架構。
Linux平台
Linux作為UNIX的一個變種,繼承了UNIX的設備管理方法,將所有的設備是具體的文件,通過文件系統層對設備進行訪問。 這種設備管理方法可以很好地做到「設備無關性」,可以根據硬體外設的更新進行方便的擴展。
Linux中的設備大致可以分為三類:字元設備,塊設備,網路設備。
字元設備沒有緩沖區,以位元組為單位順序處理數據,不支持隨機讀寫。常見的字元設備如普通列印機、系統的串口、終端顯示器、嵌入式設備中的簡單按鍵、手寫板等。
塊設備是指在輸入輸出時數據處理以塊為單位的設備,一般都採用緩沖技術,支持數據的隨機讀寫。典型的塊設備有硬碟、光碟機等。
字元設備和塊設備面向的上一層是文件系統層。對用戶來說,塊設備和字元設備的訪問介面都是一組基於文件的系統調用,如read, write等。
網路設備與塊設備和字元設備不同,網路設備面向的上一層是網路協議層。設備文件是一個唯一的名字(如eth0),在文件系統中不存在對應的節點項。內核和網路驅動程序之間的通信使用的是一套和數據包傳輸相關的函數,而不是read, write等。
每一個設備都有一對主設備號、次設備號的參數作為唯一的標識。主設備號標識設備對應的驅動程序;次設備號用來區分具體驅動程序的實例。主設備號的獲取可以通過動態分配或指定的方式。在嵌入式系統中外設較少,一般採用指定的方式。
n [編輯本段]驅動程序的一般安裝順序驅動程序安裝的一般順序:主板晶元組(Chipset)→顯卡(VGA)→音效卡(Audio)→網卡(LAN)→無線網卡(Wireless LAN)→紅外線(IR)→觸控板(Touchpad)→PCMCIA控制器(PCMCIA)→讀卡器(Flash Media Reader)→數據機(Modem)→其它(如電視卡、CDMA上網適配器等等)。不按順序安裝很有可能導致某些軟體安裝失敗。
第一步,安裝操作系統後,首先應該裝上操作系統的Service Pack(SP)補丁。我們知道驅動程序直接面對的是操作系統與硬體,所以首先應該用SP補丁解決了操作系統的兼容性問題,這樣才能盡量確保操作系統和驅動程序的無縫結合。
第二步,安裝主板驅動。主板驅動主要用來開啟主板晶元組內置功能及特性,主板驅動里一般是主板識別和管理硬碟的IDE驅動程序或補丁,比如Intel晶元組的INF驅動和VIA的4in1補丁等。如果還包含有AGP補丁的話,一定要先安裝完IDE驅動再安裝AGP補丁,這一步很重要,也是很多造成系統不穩定的直接原因。
第三步,安裝DirectX驅動。這里一般推薦安裝最新版本,目前DirectX的最新版本是DirectX 9.0C。可能有些用戶會認為:「我的顯卡並不支持DirectX 9,沒有必要安裝DirectX 9.0C」,其實這是個錯誤的認識,把DirectX等同為了Direct3D。DirectX是微軟嵌在操作系統上的應用程序介面(API),DirectX由顯示部分、聲音部分、輸入部分和網路部分四大部分組成,顯示部分又分為Direct Draw(負責2D加速)和Direct 3D(負責3D加速),所以說Direct3D只是它其中的一小部分而已。而新版本的DirectX改善的不僅僅是顯示部分,其聲音部分(DirectSound)——帶來更好的聲效;輸入部分(Direct Input)——支持更多的游戲輸入設備,並對這些設備的識別與驅動上更加細致,充分發揮設備的最佳狀態和全部功能;網路部分(DirectPlay)——增強計算機的網路連接,提供更多的連接方式。只不過是DirectX在顯示部分的改進比較大,也更引人關注,才忽略了其他部分的功勞,所以安裝新版本的DirectX的意義並不僅是在顯示部分了。當然,有兼容性問題時另當別論。
第四步,這時再安裝顯卡、音效卡、網卡、數據機等插在主板上的板卡類驅動。
第五步,最後就可以裝列印機、掃描儀、讀寫機這些外設驅動。
這樣的安裝順序就能使系統文件合理搭配,協同工作,充分發揮系統的整體性能。
另外,顯示器、鍵盤和滑鼠等設備也是有專門的驅動程序,特別是一些品牌比較好的產品。雖然不用安裝它們也可以被系統正確識別並使用,但是安裝上這些驅動程序後,能增加一些額外的功能並提高穩定性和性能 [編輯本段]Windows中的inf文件Windows怎樣知道安裝的是什麼設備,以及要拷貝哪些文件呢?答案在於.inf文件。.inf是從Windows 95時代開始引入的一種描述設備安裝信息的文件,它用特定語法的文字來說明要安裝的設備類型、生產廠商、型號、要拷貝的文件、拷貝到的目標路徑,以及要添加到注冊表中的信息。通過讀取和解釋這些文字,Windows便知道應該如何安裝驅動程序。目前幾乎所有硬體廠商提供的用於Windows 9x下的驅動程序都帶有安裝信息文件。事實上,.inf文件不僅可用於安裝驅動程序,還能用來安裝與硬體並沒有什麼關系的軟體,例如Windows 98支持「Windows更新」功能,更新時下載的系統部件就是利用.inf文件來說明如何安裝該部件的。
在安裝驅動程序時,Windows一般要把.inf文件拷貝一份到「Win-dows\Inf」或「Windows\Inf\Other」目錄下,以備將來使用。Inf目錄下除了有.inf文件外,還有兩個特殊文件Drvdata.bin和Drvidx.bin,以及一些.pnf文件,它們都是Windows為了加快處理速度而自動生成的二進制文件。Drvdata.bin和Drvidx.bin記錄了.inf文件描述的所有硬體設備,也許朋友們會有印象:當我們在安裝某些設備時,經常會看到一個「創建驅動程序信息庫」的窗口,此時Windows便正在生成這兩個二進制文件。
Windows 9x專門提供有「添加新硬體向導」(以下簡稱硬體向導)來幫助使用者安裝硬體驅動程序,使用者的工作就是在必要時告訴硬體向導在哪兒可以找到與硬體型號相匹配的.inf文件,剩下的絕大部分安裝工作都將由硬體安裝向導自己完成。
給硬體設備安裝驅動程序對Windows 9x用戶來說並不是一件陌生事,在安裝或重裝Windows時需要安裝驅動程序,在購買了某些新硬體之後也需要安裝驅動程序。如果驅動程序安裝不正確,系統中某些硬體就可能無法正常使用。雖然Windows 9x支持即插即用,能夠為用戶減輕不少工作,但由於PC機的設備有非常多的品牌和型號,加上各種新產品不斷問世,Windows不可能自動識別出所有設備,因此在安裝很多設備時都需要人工干預。 資料來源: http://ke..com/view/1048.htm

⑨ 什麼是測試驅動開發

測試驅動開發,英文全稱Test-Driven Development,簡稱TDD,是一種不同於傳統軟體開發流程的新型的開發方法。它要求在編寫某個功能的代碼之前先編寫測試代碼,然後只編寫使測試通過的功能代碼,通過測試來推動整個開發的進行。這有助於編寫簡潔可用和高質量的代碼,並加速開發過程。
2基本原理
測試驅動開發的基本思想就是在開發功能代碼之前,先編寫測試代碼,然後只編寫使測試通過的功能代碼,從而以測試來驅動整個開發過程的進行。這有助於編寫簡潔可用和高質量的代碼,有很高的靈活性和健壯性,能快速響應變化,並加速開發過程。
測試驅動開發的基本過程如下:
①快速新增一個測試
②運行所有的測試(有時候只需要運行一個或一部分),發現新增的測試不能通過
③做一些小小的改動,盡快地讓測試程序可運行,為此可以在程序中使用一些不合情理的方法
④運行所有的測試,並且全部通過
⑤重構代碼,以消除重復設計,優化設計結構
簡單來說,就是不可運行/可運行/重構——這正是測試驅動開發的口號。
本質和優勢
或許只有了解了測試驅動開發的本質和優勢之後,你才會領略到她的無窮魅力。 測試驅動開發不是一種測試技術,它是一種分析技術、設計技術,更是一種組織所有開發活動的技術。相對於傳統帆告的結構化開發過程方法,它具有以下優勢:[3]
1) TDD根據客戶需求編寫測試用例,對功能的過程和介面都進行了設計,而且這種從使用者角度對代碼進行的設計通常更符合後期開發的需求。因為關注用戶反饋,可以及時響應需求變更,同時因為從使用者角度出發的簡單設計,也可以更快地適應變化。
2) 出於易測試和測試獨立性的要求,將促使我們實現松耦合的設計慧孫,並更多地依賴於介面而非具體的類,提高系統的可擴展性和抗變性。而且TDD明顯地縮短了設計決策的反饋循環,使我們幾秒或幾分鍾之內就能獲得反饋。
3) 將測試工作提到編碼之前,並頻繁地運行所有測試,可以態碧明盡量地避免和盡早地發現錯誤,極大地降低了後續測試及修復的成本,提高了代碼的質量。在測試的保護下,不斷重構代碼,以消除重復設計,優化設計結構,提高了代碼的重用性,從而提高了軟體產品的質量。
4) TDD提供了持續的回歸測試,使我們擁有重構的勇氣,因為代碼的改動導致系統其他部分產生任何異常,測試都會立刻通知我們。完整的測試會幫助我們持續地跟蹤整個系統的狀態,因此我們就不需要擔心會產生什麼不可預知的副作用了。
5) TDD所產生的單元測試代碼就是最完美的開發者文檔,它們展示了所有的API該如何使用以及是如何運作的,而且它們與工作代碼保持同步,永遠是最新的。
6) TDD可以減輕壓力、降低憂慮、提高我們對代碼的信心、使我們擁有重構的勇氣,這些都是快樂工作的重要前提。
7)快速的提高了開發效率。
現狀和前景
測試驅動開發的技術已得到越來越廣泛的重視,但由於發展時間不長,相關應用並不是很成熟。現今越來越多的公司都在嘗試實踐測試驅動開發,但由於測試驅動開發對開發人員要求比較高,更與開發人員的傳統思維習慣相違背,因此實踐起來有一定困難。 美國不少著名軟體公司如IBM很早就開始向敏捷轉型,在此過程中,TDD通常是最重要也最艱難的一個,正如IBM開發轉型部門副總裁Sue Mckinney所言:測試驅動開發前景非常誘人,但是「在這個過程中我們的付出可能也是最多的。」Forrester的高級分析師Dave West認為,測試驅動開發(TDD)就像是「聖杯」,但是「如果能達到這個目標,付出再多的辛苦也是值得的。」
我想,測試驅動開發的推廣過程中,首要的問題是將開發人員長期以來形成的思維觀念和意識形態轉變過來,開發人員只喜歡編碼,不喜歡測試,更無法理解為什麼沒有產品代碼的時候就先寫單元測試;其次是相關的技術支持,測試驅動開發對開發人員提出了更高的要求,不僅要掌握測試和重構,還要懂得設計模式等設計方面的知識。
正像每種革命性的產物剛剛產生之初所必然要經歷的艱難歷程,測試驅動開發也正在經歷著,但她正在逐漸走向成熟,前途一片光明。相信未來幾年內,國內的一定會越來越多的軟體企業開始普及測試驅動開發。

⑩ 驅動程序開發步驟

驅動程序開發步驟

薯絕橘編寫一個驅動程序的大致流程如下:

1)查看原理圖,數據手冊,了解設備的操作方法;

2)在內核中找到相近的驅動程序,作為模板來開發,有時要從零開始;

3)實現驅動程序的初始化,比如詳內核注冊宏盯這個驅動程序,

4)設計所要實現的操作:比如open、close、read、writ等函數;

5)實現中斷服務,並不是每個設備數團驅動都必須的;

6)編譯驅動到內核,或作為模塊動態載入

7)測試驅動

閱讀全文

與驅動測試程序的開發套路相關的資料

熱點內容
控制專碩如何報考編程 瀏覽:534
元祖在編程里是什麼意思 瀏覽:491
小碼王為什麼比核桃編程貴 瀏覽:627
qq下載app有哪些 瀏覽:380
旅遊app的社區模塊有什麼 瀏覽:847
盜版win7怎樣升級win10 瀏覽:524
怎麼壓縮文件夾不超過10mb 瀏覽:770
網路攝像頭如何外網訪問 瀏覽:178
刷入的cp文件是什麼 瀏覽:513
dcp文件是什麼 瀏覽:427
win10驅動刪不了怎麼辦啊 瀏覽:459
win7如何做共享文件夾圖標 瀏覽:178
魔獸120怎麼升級124 瀏覽:395
智能健康手錶下載什麼app 瀏覽:664
想在協和醫院掛號怎麼下載app 瀏覽:86
關於科技產品需要哪些數據 瀏覽:623
linux命令行修改文件內容 瀏覽:526
java通信框架有哪些 瀏覽:331
哪裡看美國報紙app 瀏覽:753
excel打開同一個文件出現兩個窗口 瀏覽:318

友情鏈接