【正文】
者著重描述對(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編程語(yǔ)言以及 ATL、 DCOM、 MFC、 數(shù)據(jù)庫(kù)等方面的增強(qiáng),尤其是在開(kāi)發(fā)環(huán)境界面上變化更大,它采用平面化的操作界面,這一點(diǎn)有點(diǎn)類似 Visual Basic,它的親和性使得更多的程序開(kāi)發(fā)人員樂(lè)意接受。開(kāi)發(fā)人員可以通過(guò)應(yīng)用簡(jiǎn)單的屬性標(biāo)記,以 XML Web 服務(wù)形式公開(kāi)新的和現(xiàn)有的 ATL COM 組件。 自動(dòng)化測(cè)試工具的 主 界面功能 簡(jiǎn)介 新建一個(gè) MFC 應(yīng)用程序項(xiàng)目 TheTree,利用系統(tǒng)默認(rèn)生成的窗體作為主 界面 ,并為其添加主菜單控件和其他控件。 hKeybdHook=NULL。 UNST m_pfnUnst。amp。腳本實(shí)際上是一種計(jì)算機(jī)程序的形式,一組測(cè)試工具執(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ū)ο箝_(kāi)發(fā)方法相結(jié)合,不但使我從整體上牢牢把握住了自動(dòng)化測(cè)試工具的結(jié)構(gòu),而且可以充分利用 UML 面向?qū)ο蟮膬?yōu)勢(shì),最終使得項(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)容 包 括 測(cè)試 所使用的計(jì)算機(jī)名 、測(cè)試時(shí)間、測(cè)試內(nèi)容、測(cè)試結(jié)果和測(cè)試失敗原因 分析 等。 =。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ù)腳本格式按順序連接起來(lái)。amp。 //獲取鍵盤(pán)鉤子函數(shù) } else { MessageBox(NULL,Cannot load the hook dll!, Error,MB_OK)。 void UninstallMouseHook(void) { UnhookWindowsHookEx(hMouseHook)。其中包括的 MFC 和 ATL 應(yīng)用程序框架庫(kù)是最強(qiáng)勁、最有效和最流行的用于開(kāi)發(fā)基于 Windows 應(yīng)用程序的庫(kù),現(xiàn)在又 針對(duì) Windows XP 得到了增強(qiáng)。 7. 增加屬性化編程和 ATL 更新。 XML Web services 允許應(yīng)用程序通過(guò) Inter 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語(yǔ)言。 2. “對(duì)象交互”狀態(tài) 當(dāng)在“腳本管理”狀態(tài)時(shí)發(fā)生“回放測(cè)試腳本”事件,則轉(zhuǎn)移到本狀態(tài)。圖 32 為 初步建立的 自動(dòng)化測(cè)試工具 回放腳本 的 UML 交互 圖。首先對(duì)該自動(dòng)化測(cè)試工具進(jìn)行需求分析,明確需要實(shí)現(xiàn)的功能;然后用 UML 用例視圖對(duì)該自動(dòng)化測(cè)試工具進(jìn)行模塊劃分,建立需求模型;進(jìn)而利用 UML 的 交互圖以及活動(dòng)圖和狀態(tài)圖等描述了該自動(dòng)化測(cè)試工具的動(dòng)態(tài)模型;最后,對(duì) UML 在 軟件 分析與設(shè)計(jì)方面的應(yīng)用進(jìn)行了總結(jié)。并且為測(cè) 試人員給出可能發(fā)生的問(wèn)題的指示。除工具本身的技術(shù)問(wèn)題外,用戶也要了解被測(cè)軟件的技術(shù)問(wèn)題。對(duì)于自動(dòng)重復(fù)的測(cè)試可以重復(fù)多次相同的測(cè)試。點(diǎn)擊按鈕,您還能進(jìn)一步獲取任何未被包括在此測(cè)試范圍內(nèi)的錯(cuò)誤的詳盡資料。我們知道大部分軟件產(chǎn)品都有必不可少的 人機(jī)交互界面 MMI,而且它的功能也基本上是通過(guò)人機(jī)交互操作來(lái)體現(xiàn)和完成的,所以我們可以說(shuō)軟件產(chǎn)品的 GUI 測(cè)試在整個(gè)產(chǎn)品測(cè)試中占有非常重要的地位。 蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 6 實(shí)施軟件測(cè)試自動(dòng)化的理由分析 : 首先,測(cè)試人員的工作比以往任何時(shí)候都更加困難,因?yàn)楣竞徒M織希望以更快的速度和更低的成本開(kāi)發(fā)出高質(zhì)量的應(yīng)用程序。 我們開(kāi)發(fā)的自動(dòng)化測(cè)試 工具是一個(gè)用戶界面自動(dòng)化測(cè)試的工具。一個(gè)測(cè)試管理的流程,取決于相對(duì)穩(wěn)定的需求。 5. 根據(jù)測(cè)試需求,有針對(duì)性。為每一個(gè)重要軟件應(yīng)用和環(huán)境提供功能和回歸測(cè)試自動(dòng)化的行業(yè)最佳解決方案。 4. 更好地利用資源。測(cè)試維護(hù)的開(kāi)銷打擊了測(cè)試自動(dòng)化的積極性,當(dāng)修改測(cè)試比手工重新測(cè)試更費(fèi)勁時(shí),測(cè)試自動(dòng)化將被丟棄。 可靠 “每次測(cè)試腳本在運(yùn)行時(shí)執(zhí)行相同的操作,因此減少了人為的錯(cuò)誤! ” 現(xiàn)在的技術(shù)只能識(shí)別那些已經(jīng)被編程的部分并進(jìn)行檢查。這些 都是在選用工具時(shí)要考慮到的因素。 定義用例 使用 UML 用例圖來(lái)構(gòu)建自動(dòng)化測(cè)試工具的需求模型,如圖 31 所示。本狀態(tài)的入口動(dòng)作是“讀取測(cè)試腳本內(nèi)容”。 開(kāi)發(fā)工具 ——Visual C++.NET 當(dāng)模型初步建立后,就是實(shí)現(xiàn)的問(wèn)題。 4. 增加了許多新的 MFC 用戶界面類,如 DHTML 對(duì)話框、增強(qiáng)圖像類CImage。 Visual C++.NET 增強(qiáng)了開(kāi)發(fā)人員的能力 Visual C++.NET 為開(kāi)發(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è)測(cè)試用例,測(cè)試完成后就廢棄,建立腳本時(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)化測(cè)試工具的 日志界面。 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)化測(cè)試工具的認(rèn)識(shí)還不夠深入和透徹,理論過(guò)程和實(shí)際應(yīng)用還存在著差異,功能還不是特別完善,這是本次設(shè)計(jì)的 不足之處。 void WindowEvent() { if (strcmp(,Click)==0) MouseEvent()。 else =false。 //調(diào)用日志模塊 } 第二步是查找目標(biāo)窗口,就是通過(guò)遍歷窗口找到與腳本內(nèi)所寫(xiě)的目標(biāo)窗口的窗口類和窗口標(biāo)題相一致的窗口,由遍歷窗口函數(shù) EnumChildWindows 的回調(diào)函數(shù)myfindwindow 來(lái)實(shí)現(xiàn)該功能。 //的錯(cuò)誤提示信息 MessageBox(hWnd,PS,Error,MB_OK)。N):”文本框中輸入 “ 1x” , 最后 單擊 “ 確定 ” 按鈕。測(cè)試工具腳本中可以包含的數(shù)據(jù)和指令包括 : 1. 窗口信息 。) { =。 endif 獲取鼠標(biāo)點(diǎn)擊的窗口的窗口信息 查 找鼠標(biāo)點(diǎn)擊的窗口的原理是:首先通過(guò)遍歷窗口找出鼠標(biāo)點(diǎn)擊的位置被哪些窗口所包含,然后從中找出尺寸最小的窗口。 UpdateWindow(hWindowHandle)。 圖 41 自動(dòng)化測(cè)試工具的主 界面 錄制模塊 因?yàn)樾枰诓煌倪M(jìn)程間捕獲窗口事件,所以有必要新建一個(gè) MFC DLL 項(xiàng)目RecordScript,編寫(xiě)相應(yīng)的鼠標(biāo)和鍵盤(pán)的鉤子函數(shù)專門(mén)用于捕獲不同進(jìn) 程的鼠標(biāo)和鍵盤(pán)事件,然后在項(xiàng)目 TheTree 中調(diào)用項(xiàng)目 RecordScript 中生成的 DLL 文件。使用 .NET,開(kāi)蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 23 發(fā)人員可以獲得用于無(wú)縫垃圾回收和減少程序復(fù)雜性的出色的內(nèi)存管理技術(shù)。 Visual 使用方案這個(gè)概念來(lái)表示一個(gè)工程項(xiàng)目。圖 35 是 回放腳本 的UML 活動(dòng)圖?!?Tester”通過(guò)選擇“操作”菜單的“回放”選項(xiàng)或單擊工具欄的“回放”按鈕回放腳本,然后腳本模塊通過(guò)調(diào)用對(duì)象交互模塊的 FindWindow()方法查找定位對(duì)象,并通過(guò)執(zhí)行 WindowEvent()方法操作對(duì)象。 蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 錄制模塊 當(dāng)用戶使用應(yīng)用程序時(shí),本自動(dòng)化測(cè)試工具會(huì)記錄用戶的鼠標(biāo)和鍵盤(pán)操 作,并產(chǎn)生測(cè)試腳本。 自動(dòng)化測(cè)試工具 的 應(yīng)用與發(fā)展方向 Microsoft 這樣的公司說(shuō)過(guò) “ 大多數(shù)人認(rèn)為我們是一個(gè)軟件開(kāi)發(fā)公司,其實(shí)我們是一家軟件測(cè)試公司 ” 的話,從中可以看出測(cè)試是非常重要的。利用測(cè)試腳本程序可以很快地將測(cè)試人員帶到測(cè)試應(yīng)用程序的同一水平線上。 2. 缺乏測(cè)試實(shí)踐經(jīng)驗(yàn)。通過(guò)第三方測(cè)試機(jī)構(gòu)公平、公正、公開(kāi)的測(cè)試,把可視性 差為特征的軟件透明化,用量化的數(shù)據(jù)說(shuō)話,為科技部和專家組擇優(yōu)支持提供了科學(xué)客觀的依據(jù),從而避免了以前的印象以及關(guān)系成分。 2. 支持多種語(yǔ)言: Java, HTML 和 DHTML, Visual Basic, Visual C++,ActiveX, XML。其中詳細(xì)介紹了筆者負(fù) 責(zé)開(kāi)發(fā)的錄制模塊和對(duì)象交互模塊; 第 五 章 總結(jié)了本文的工作。 面對(duì)軟件的規(guī)模越來(lái)越大,應(yīng)用的復(fù)雜度和集成性越來(lái)越高,各種新的軟件開(kāi)發(fā)技術(shù)不斷應(yīng)用,那么,如何提供高效、有效性的 測(cè)試,是軟件測(cè)試技術(shù)面臨的巨大挑戰(zhàn)。軟件測(cè)試應(yīng)能有效地發(fā)現(xiàn)軟件中的任何缺陷,同時(shí)軟件測(cè)試也應(yīng)是高效的,盡可能 地 占有時(shí)間少且開(kāi)銷小 [1]。第一章簡(jiǎn)述了自動(dòng)化測(cè)試工具的開(kāi)發(fā)背景以及開(kāi)發(fā)的現(xiàn)實(shí)意義;第二章對(duì) QuickTest Professional 和 Rational Robot 等目前主流的自動(dòng)化測(cè)試工具 進(jìn)行深入的研究 ,了解自動(dòng)化測(cè)試工具的工作原理與工作流程;第三章首先對(duì)自動(dòng)化測(cè)試工具進(jìn)行需求分析,明確需要實(shí)現(xiàn)的功能,然后用 UML 對(duì)自動(dòng)化測(cè)試工具進(jìn)行模塊劃分,建立其需求模型和動(dòng)態(tài)模型;第四章介紹了自動(dòng)化測(cè)試工具的代碼實(shí)現(xiàn)過(guò)程,包括錄制模塊、腳本模塊、對(duì)象交互模塊、日志模塊。 突出特點(diǎn): 1. 支持多種 IDE : Microsoft VisualStudio .NET , Oracle Developer/2021, Delphi, PeopleSoft, Po