【正文】
者著重描述對(duì)象按照時(shí)間順序的消息交換,后者著重描述 各模塊 如何協(xié)同工作。 3. “查看日志”狀態(tài) 蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 19 當(dāng)“對(duì)象交互”狀態(tài)結(jié)束時(shí),就轉(zhuǎn)移到本狀態(tài)。最新版本 Visual C++(Visual C++.NET)與以往版本相比,增加許多新的特性,這其中包括: Web 應(yīng)用程序、新穎的 C編程語言以及 ATL、 DCOM、 MFC、 數(shù)據(jù)庫等方面的增強(qiáng),尤其是在開發(fā)環(huán)境界面上變化更大,它采用平面化的操作界面,這一點(diǎn)有點(diǎn)類似 Visual Basic,它的親和性使得更多的程序開發(fā)人員樂意接受。開發(fā)人員可以通過應(yīng)用簡單的屬性標(biāo)記,以 XML Web 服務(wù)形式公開新的和現(xiàn)有的 ATL COM 組件。 自動(dòng)化測試工具的 主 界面功能 簡介 新建一個(gè) MFC 應(yīng)用程序項(xiàng)目 TheTree,利用系統(tǒng)默認(rèn)生成的窗體作為主 界面 ,并為其添加主菜單控件和其他控件。 hKeybdHook=NULL。 UNST m_pfnUnst。amp。腳本實(shí)際上是一種計(jì)算機(jī)程序的形式,一組測試工具執(zhí)行的指令集合。D)):Click(3,3) 2|Window(編輯水印 )|Edit(名稱 (amp。 //并將其激活 BringWindowToTop(hWnd)。 //的錯(cuò)誤提示信息 MessageBox(hWnd,PS,Error,MB_OK)。 //將邏輯坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo) =+。 return true。軟件建模與面向?qū)ο箝_發(fā)方法相結(jié)合,不但使我從整體上牢牢把握住了自動(dòng)化測試工具的結(jié)構(gòu),而且可以充分利用 UML 面向?qū)ο蟮膬?yōu)勢,最終使得項(xiàng)目成功完成。 there was none. He drew a deep breath then and said, Well, that39。t run, N icholas, Dr. Island said with the voice of a wave. It only makes him angry that you run. N icholas did not answer, but cut to his left, up the beach and among the trunks of the palms, sprinting all the way because he had no way of knowing Ignacio was not right behind him, about to grab him by the neck. When he stopped it was in the thick jungle, among the boles of the hardwoods, where he leaned,.。 日志內(nèi)容 包 括 測試 所使用的計(jì)算機(jī)名 、測試時(shí)間、測試內(nèi)容、測試結(jié)果和測試失敗原因 分析 等。 =。pTopLeftPos)。 //初始化 =false。 查找定位對(duì)象 在用戶回放腳本時(shí)腳本模塊已將所讀取的腳本信息全都保存在類 AutoFind 的實(shí)例對(duì)象 window 中,所以在查找定位對(duì)象時(shí)只需要直接使用對(duì)象 window 中的相關(guān)變量就可蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 32 以了。 3. 文檔 : 有助于復(fù)用和維護(hù)。然后蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 29 讀取類 AutoFind 的實(shí)例對(duì)象 record 的如下成 員變量:目標(biāo)窗口的父窗口類名、目標(biāo)窗口的父窗口標(biāo)題 )、目標(biāo)窗口類名 、目標(biāo)窗口標(biāo)題 、窗口事件 、窗口事件內(nèi)容 或,并根據(jù)腳本格式按順序連接起來。amp。 //獲取鍵盤鉤子函數(shù) } else { MessageBox(NULL,Cannot load the hook dll!, Error,MB_OK)。 void UninstallMouseHook(void) { UnhookWindowsHookEx(hMouseHook)。其中包括的 MFC 和 ATL 應(yīng)用程序框架庫是最強(qiáng)勁、最有效和最流行的用于開發(fā)基于 Windows 應(yīng)用程序的庫,現(xiàn)在又 針對(duì) Windows XP 得到了增強(qiáng)。 7. 增加屬性化編程和 ATL 更新。 XML Web services 允許應(yīng)用程序通過 Inter 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語言。 2. “對(duì)象交互”狀態(tài) 當(dāng)在“腳本管理”狀態(tài)時(shí)發(fā)生“回放測試腳本”事件,則轉(zhuǎn)移到本狀態(tài)。圖 32 為 初步建立的 自動(dòng)化測試工具 回放腳本 的 UML 交互 圖。首先對(duì)該自動(dòng)化測試工具進(jìn)行需求分析,明確需要實(shí)現(xiàn)的功能;然后用 UML 用例視圖對(duì)該自動(dòng)化測試工具進(jìn)行模塊劃分,建立需求模型;進(jìn)而利用 UML 的 交互圖以及活動(dòng)圖和狀態(tài)圖等描述了該自動(dòng)化測試工具的動(dòng)態(tài)模型;最后,對(duì) UML 在 軟件 分析與設(shè)計(jì)方面的應(yīng)用進(jìn)行了總結(jié)。并且為測 試人員給出可能發(fā)生的問題的指示。除工具本身的技術(shù)問題外,用戶也要了解被測軟件的技術(shù)問題。對(duì)于自動(dòng)重復(fù)的測試可以重復(fù)多次相同的測試。點(diǎn)擊按鈕,您還能進(jìn)一步獲取任何未被包括在此測試范圍內(nèi)的錯(cuò)誤的詳盡資料。我們知道大部分軟件產(chǎn)品都有必不可少的 人機(jī)交互界面 MMI,而且它的功能也基本上是通過人機(jī)交互操作來體現(xiàn)和完成的,所以我們可以說軟件產(chǎn)品的 GUI 測試在整個(gè)產(chǎn)品測試中占有非常重要的地位。 蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 6 實(shí)施軟件測試自動(dòng)化的理由分析 : 首先,測試人員的工作比以往任何時(shí)候都更加困難,因?yàn)楣竞徒M織希望以更快的速度和更低的成本開發(fā)出高質(zhì)量的應(yīng)用程序。 我們開發(fā)的自動(dòng)化測試 工具是一個(gè)用戶界面自動(dòng)化測試的工具。一個(gè)測試管理的流程,取決于相對(duì)穩(wěn)定的需求。 5. 根據(jù)測試需求,有針對(duì)性。為每一個(gè)重要軟件應(yīng)用和環(huán)境提供功能和回歸測試自動(dòng)化的行業(yè)最佳解決方案。 4. 更好地利用資源。測試維護(hù)的開銷打擊了測試自動(dòng)化的積極性,當(dāng)修改測試比手工重新測試更費(fèi)勁時(shí),測試自動(dòng)化將被丟棄。 可靠 “每次測試腳本在運(yùn)行時(shí)執(zhí)行相同的操作,因此減少了人為的錯(cuò)誤! ” 現(xiàn)在的技術(shù)只能識(shí)別那些已經(jīng)被編程的部分并進(jìn)行檢查。這些 都是在選用工具時(shí)要考慮到的因素。 定義用例 使用 UML 用例圖來構(gòu)建自動(dòng)化測試工具的需求模型,如圖 31 所示。本狀態(tài)的入口動(dòng)作是“讀取測試腳本內(nèi)容”。 開發(fā)工具 ——Visual C++.NET 當(dāng)模型初步建立后,就是實(shí)現(xiàn)的問題。 4. 增加了許多新的 MFC 用戶界面類,如 DHTML 對(duì)話框、增強(qiáng)圖像類CImage。 Visual C++.NET 增強(qiáng)了開發(fā)人員的能力 Visual C++.NET 為開發(fā)人員提供了許多專業(yè)級(jí)功能,讓他們能夠?yàn)?Windows和 Web 創(chuàng)建功能非常強(qiáng)大的應(yīng)用程序和組件。 //安裝鼠標(biāo)鉤子函數(shù) hKeybdHook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeybdFunc, (HINSTANCE)hInstance,0)。 class CMouseHookDllCtrl { public: CMouseHookDllCtrl(const char* pDllFileName): m_hDll(NULL),m_pfnInst(NULL),m_pfnUnst(NULL) { m_hDll=LoadLibrary(pDllFileName)。 //保存編輯窗口所屬的窗口標(biāo)題 if(strcmp(chrObjectClassName,Button)==0 ||strcmp(chrObjectClassName,Static)==0) { strcpy(chParentWindowText,chrObjectText)。 =。如果腳本只用于一個(gè)測試用例,測試完成后就廢棄,建立腳本時(shí)就不必花費(fèi)太大工夫。 //判斷目標(biāo)窗口操作是否成功 POINT pCursorPos。 if(strcmp(,chCurrentWindowText)!=0) =false。 //存儲(chǔ)窗口句柄 HDC hDC。amp。界面由主程序菜單蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 36 調(diào)用, 并 以對(duì)話框形式顯示 , 圖 44是 本自動(dòng)化測試工具的 日志界面。 if I pursue you I will not catch you, and if I catch youthrough your own slowness and clumsinessI will not kill you, and if I kill you I will not eat you. Nicholas had begun to back away, and at the last。 fore and knew on which side of hunger he stood。由于 能力 有限,對(duì)自動(dòng)化測試工具的認(rèn)識(shí)還不夠深入和透徹,理論過程和實(shí)際應(yīng)用還存在著差異,功能還不是特別完善,這是本次設(shè)計(jì)的 不足之處。 void WindowEvent() { if (strcmp(,Click)==0) MouseEvent()。 else =false。 //調(diào)用日志模塊 } 第二步是查找目標(biāo)窗口,就是通過遍歷窗口找到與腳本內(nèi)所寫的目標(biāo)窗口的窗口類和窗口標(biāo)題相一致的窗口,由遍歷窗口函數(shù) EnumChildWindows 的回調(diào)函數(shù)myfindwindow 來實(shí)現(xiàn)該功能。 //的錯(cuò)誤提示信息 MessageBox(hWnd,PS,Error,MB_OK)。N):”文本框中輸入 “ 1x” , 最后 單擊 “ 確定 ” 按鈕。測試工具腳本中可以包含的數(shù)據(jù)和指令包括 : 1. 窗口信息 。) { =。 endif 獲取鼠標(biāo)點(diǎn)擊的窗口的窗口信息 查 找鼠標(biāo)點(diǎn)擊的窗口的原理是:首先通過遍歷窗口找出鼠標(biāo)點(diǎn)擊的位置被哪些窗口所包含,然后從中找出尺寸最小的窗口。 UpdateWindow(hWindowHandle)。 圖 41 自動(dòng)化測試工具的主 界面 錄制模塊 因?yàn)樾枰诓煌倪M(jìn)程間捕獲窗口事件,所以有必要新建一個(gè) MFC DLL 項(xiàng)目RecordScript,編寫相應(yīng)的鼠標(biāo)和鍵盤的鉤子函數(shù)專門用于捕獲不同進(jìn) 程的鼠標(biāo)和鍵盤事件,然后在項(xiàng)目 TheTree 中調(diào)用項(xiàng)目 RecordScript 中生成的 DLL 文件。使用 .NET,開蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 23 發(fā)人員可以獲得用于無縫垃圾回收和減少程序復(fù)雜性的出色的內(nèi)存管理技術(shù)。 Visual 使用方案這個(gè)概念來表示一個(gè)工程項(xiàng)目。圖 35 是 回放腳本 的UML 活動(dòng)圖?!?Tester”通過選擇“操作”菜單的“回放”選項(xiàng)或單擊工具欄的“回放”按鈕回放腳本,然后腳本模塊通過調(diào)用對(duì)象交互模塊的 FindWindow()方法查找定位對(duì)象,并通過執(zhí)行 WindowEvent()方法操作對(duì)象。 蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 錄制模塊 當(dāng)用戶使用應(yīng)用程序時(shí),本自動(dòng)化測試工具會(huì)記錄用戶的鼠標(biāo)和鍵盤操 作,并產(chǎn)生測試腳本。 自動(dòng)化測試工具 的 應(yīng)用與發(fā)展方向 Microsoft 這樣的公司說過 “ 大多數(shù)人認(rèn)為我們是一個(gè)軟件開發(fā)公司,其實(shí)我們是一家軟件測試公司 ” 的話,從中可以看出測試是非常重要的。利用測試腳本程序可以很快地將測試人員帶到測試應(yīng)用程序的同一水平線上。 2. 缺乏測試實(shí)踐經(jīng)驗(yàn)。通過第三方測試機(jī)構(gòu)公平、公正、公開的測試,把可視性 差為特征的軟件透明化,用量化的數(shù)據(jù)說話,為科技部和專家組擇優(yōu)支持提供了科學(xué)客觀的依據(jù),從而避免了以前的印象以及關(guān)系成分。 2. 支持多種語言: Java, HTML 和 DHTML, Visual Basic, Visual C++,ActiveX, XML。其中詳細(xì)介紹了筆者負(fù) 責(zé)開發(fā)的錄制模塊和對(duì)象交互模塊; 第 五 章 總結(jié)了本文的工作。 面對(duì)軟件的規(guī)模越來越大,應(yīng)用的復(fù)雜度和集成性越來越高,各種新的軟件開發(fā)技術(shù)不斷應(yīng)用,那么,如何提供高效、有效性的 測試,是軟件測試技術(shù)面臨的巨大挑戰(zhàn)。軟件測試應(yīng)能有效地發(fā)現(xiàn)軟件中的任何缺陷,同時(shí)軟件測試也應(yīng)是高效的,盡可能 地 占有時(shí)間少且開銷小 [1]。第一章簡述了自動(dòng)化測試工具的開發(fā)背景以及開發(fā)的現(xiàn)實(shí)意義;第二章對(duì) QuickTest Professional 和 Rational Robot 等目前主流的自動(dòng)化測試工具 進(jìn)行深入的研究 ,了解自動(dòng)化測試工具的工作原理與工作流程;第三章首先對(duì)自動(dòng)化測試工具進(jìn)行需求分析,明確需要實(shí)現(xiàn)的功能,然后用 UML 對(duì)自動(dòng)化測試工具進(jìn)行模塊劃分,建立其需求模型和動(dòng)態(tài)模型;第四章介紹了自動(dòng)化測試工具的代碼實(shí)現(xiàn)過程,包括錄制模塊、腳本模塊、對(duì)象交互模塊、日志模塊。 突出特點(diǎn): 1. 支持多種 IDE : Microsoft VisualStudio .NET , Oracle Developer/2021, Delphi, PeopleSoft, Po