【正文】
如果你在工作中是一個(gè)人心胸開闊、樂于幫助別人成功和愿意與他人分享榮譽(yù)的人的話,那么你就不愁沒有朋友。及時(shí)走出失敗高效能人士不會讓自己永遠(yuǎn)徘徊在失敗的陰影之下。環(huán)境能夠改變我們的思維與行為習(xí)慣,直接影響到我們的工作效能與生活。一名高效能人士的好口才加上禮儀禮節(jié),往往可以為自己的工作錦上添花,如果我們能夠巧妙運(yùn)用語言藝術(shù),對協(xié)調(diào)人際關(guān)系、提高工作效能都將大有裨益。這是每一個(gè)人只要肯做就能做到的,也是一個(gè)人走向成功的必由之路。學(xué)會正確地應(yīng)對壓力就成了高效能人士必備的一項(xiàng)習(xí)慣。杜絕壞的生活習(xí)慣習(xí)慣有好有壞。專注目標(biāo)美國明尼蘇達(dá)礦業(yè)制造公司(3M)的口號是:,對個(gè)人工作也有指導(dǎo)作用。他明白在一個(gè)企業(yè)中,只有團(tuán)隊(duì)成功,個(gè)人才能成功。習(xí)慣1向競爭對手學(xué)習(xí)一位知名的企業(yè)家曾經(jīng)說過,“對手是一面鏡子,可以照見自己的缺陷。因此,在工作中,如果我們不能選擇正確的事情去做,那么唯一正確的事情就是停止手頭上的事情,直到發(fā)現(xiàn)正確的事情為止。蓋茨所説:“通向最高管理層的最迅捷的途徑,是主動承擔(dān)別人都不愿意接手的工作,并在其中展示你出眾的創(chuàng)造力和解決問題的能力。”現(xiàn)實(shí)中那些頂尖的成功人士不是成功了才設(shè)定目標(biāo),而是設(shè)定了目標(biāo)才成功。在日志生成模塊里,目前只針對項(xiàng)目當(dāng)前的需要用硬代碼的方式來生成測試報(bào)告。第5章 總結(jié)和展望 總結(jié)本文主要介紹數(shù)據(jù)驅(qū)動的信息自動化校驗(yàn)工具——Smart Checker的設(shè)計(jì)和實(shí)現(xiàn)方法。 圖410. Smart Checker主界面3.在對話框的空格中填入需要的信息(文件的路徑,連接服務(wù)器,數(shù)據(jù)庫所用的用戶名密碼等)。 FILL_OR_KILLN/FILL_OR_KILL 該文件作為一個(gè)內(nèi)部的中間文件原則上是對用戶是不可見的。該文件記錄了每種數(shù)據(jù)類型所對應(yīng)的校驗(yàn)類。格式不盡相同。該文件格式與要校驗(yàn)的目標(biāo)文件完全相同。針對TAGS,OATS和ACT的日志文件采用線性的逐個(gè)比對的算法。TCRecordChecker負(fù)責(zé)處理對一個(gè)測試記錄的校驗(yàn)流程控制。根據(jù)這些數(shù)據(jù)相應(yīng)的創(chuàng)建TestCase類(對應(yīng)一個(gè)測試用例),TCRecord類(對應(yīng)一條測試記錄),TCField類(對應(yīng)一個(gè)需要校驗(yàn)的域)。索引中存儲的是一個(gè)個(gè)索引對,索引的關(guān)鍵字是由用戶在域配置文件中定義好的。所以基于提高IO性能的考慮需要自己開發(fā)一個(gè)隨機(jī)緩沖讀寫文件的類。印此對該文件建立索引還是有必要的。用戶配置的校驗(yàn)方法類在被實(shí)例化裝載進(jìn)內(nèi)存以后都被統(tǒng)一的存放在CheckMethodBox中。比如部分的TAG,Oats日志格式是用逗號或分號來作為域和域之間的分隔符的,那么針對這種格式就需要有一個(gè)特定的格式分解類SymbolSpliter。一個(gè)FieldCfgInfo 類包含多個(gè)Format類。DataEngineFac類是一個(gè)工廠化抽象類,定義了創(chuàng)建不同DataBaseAccess類的創(chuàng)建過程。根據(jù)系統(tǒng)需求和上述分析,我們可以對數(shù)據(jù)驅(qū)動的信息校驗(yàn)工具的各個(gè)模塊進(jìn)行進(jìn)一步的功能劃分,從而構(gòu)建出一個(gè)詳細(xì)的系統(tǒng)架構(gòu)圖。對于那些不變的域,可以從原有的歷史測試數(shù)據(jù)中提取基準(zhǔn)數(shù)據(jù)。即這些域的值是可以通過測試用例來確定的。但經(jīng)過對這3個(gè)子系統(tǒng)的日志文件的格式分析,可以發(fā)現(xiàn),這三個(gè)系統(tǒng)所包含的格式幾乎可以涵蓋一般的金融業(yè)務(wù)的信息日志的記錄格式了。這份概要性的記錄可以不生成文檔直接在UI上顯示。當(dāng)前的目標(biāo)是開發(fā)出一個(gè)對具有一定信息格式的數(shù)據(jù)文件進(jìn)行數(shù)據(jù)校驗(yàn)的自動化測試工具。但是,由于pliance系統(tǒng)的日志文件的數(shù)據(jù)量過分龐大。此外還介紹了為實(shí)現(xiàn)該架構(gòu)所用到的主要技術(shù)。 XSLXSL也就是可擴(kuò)展樣式表語言(Extensible Stylesheet Language)。DOM采用對象模型和一系列的接口來描述XML文檔的內(nèi)容和結(jié)構(gòu),即利用對象把文檔模型化[8]。相應(yīng)的一套精巧的規(guī)則指定了每個(gè)Schema元素或者屬性的合法用途。 XML技術(shù)的研究和應(yīng)用 XML簡介XML (eXtensible Markup Language可擴(kuò)展標(biāo)識語言)是由W3C(互聯(lián)網(wǎng)聯(lián)合組織)于1998年2月發(fā)布的標(biāo)準(zhǔn)[11]。 else c[j]=0。j=0。ilen2。因此我們只需使用一維數(shù)組即可。通過查找位置我們得到最長的匹配子串為:21232。LCS算法被用來尋找來確定兩條記錄間最長的公共子串。此外該方法的時(shí)間復(fù)雜度為N。任務(wù)鏈表由一系列測試用例數(shù)據(jù)組成,測試用例則分成一系列的用例記錄(record)組成。 4根據(jù)用戶的配置裝載必要的校驗(yàn)功能模塊。對于用戶配置等功能則需要用戶直接通過編輯配置文件來實(shí)現(xiàn)。 根據(jù)用戶配置裝載相應(yīng)的功能模塊和格式信息。但是可以定義通用的接口提供擴(kuò)展能力。多以文件或數(shù)據(jù)庫數(shù)據(jù)的形式存在。并且為了追求更廣泛的適用性,這些自動化測試工具在設(shè)計(jì)時(shí),只是對一些公共的服務(wù)或功能提供了直接的測試手段。關(guān)鍵字驅(qū)動技術(shù)是在數(shù)據(jù)驅(qū)動基礎(chǔ)上發(fā)展起來的, 吸取了數(shù)據(jù)驅(qū)動中將可變部分和不可變部分分離以降低維護(hù)工作量的思想, 將測試邏輯同測試腳本也分離開來。同樣的代碼在用數(shù)據(jù)表來產(chǎn)生各個(gè)測試用例的同時(shí)被復(fù)用。這個(gè)框架意圖減少你需要執(zhí)行所有測試用例所需要的總的測試腳本數(shù)。 數(shù)據(jù)驅(qū)動測試框架數(shù)據(jù)驅(qū)動(Data driven) 測試是一個(gè)框架。這些樹狀結(jié)構(gòu)的小腳本組合起來,就能組成能用于特定的測試用例的腳本。更糟糕的是高度個(gè)性化的腳本工具技術(shù).加上沒有什么文檔記錄.最后的結(jié)果經(jīng)常是重寫包含成千上萬行代碼的腳本庫.成本開銷巨大。包括系統(tǒng)需求的提取,軟件架構(gòu)的細(xì)化,軟件模塊的設(shè)計(jì),數(shù)據(jù)文件的設(shè)計(jì)。 論文所做的工作本文主要描述數(shù)據(jù)驅(qū)動的格式化信息自動化校驗(yàn)工具的設(shè)計(jì)過程和關(guān)鍵技術(shù),包括自動化測試框架、數(shù)據(jù)校驗(yàn)框架,關(guān)鍵技術(shù)和系統(tǒng)實(shí)現(xiàn)四個(gè)部分進(jìn)行研究和分析。實(shí)現(xiàn)的自動化程度越高,測試過程就越來越有效。這是由測試過程和測試工具的本質(zhì)特點(diǎn)所決定的。自動化測試可以減少或消除一些手工測試中的重復(fù)和煩瑣, 節(jié)約測試所必需的時(shí)間和提高測試的一致性和可重復(fù)性, 提高產(chǎn)品質(zhì)量并盡可能在軟件生命周期的早期發(fā)現(xiàn)缺陷。并在此框架基礎(chǔ)上實(shí)現(xiàn)了一個(gè)符合Compliance項(xiàng)目實(shí)際的文本校驗(yàn)工具——Smart Checker。軟件測試自動化可分為:測試腳本、測試數(shù)據(jù)的自動化生成,測試用例的自動化執(zhí)行,測試結(jié)果的自動化采集和分析三個(gè)方面。關(guān)鍵詞 軟件測試 軟件測試自動化框架 XML LCSAbstractSoftware testing is an important stage of software life cycle and a key factor which affect the quality of software. The technology of software test automation can greatly reduce the testing cost and improve efficiency and accurate of software testing. Software testing automation contains three aspect of conception——test data generate automation, test case execute automation and test result data collect and analyze automation. Most existing automated testing tools mainly focused on achieving the first two aspects. We design a fame work used to verify text data automatically. And develop a tool called Smart Checker based on this frame work to full fill the requirement of Compliance project. In this paper, we pare features of existing test automation frameworks first. Then specify the architecture of Datadriven formatting automatic calibration frame work. XML technology and LCS algorism which applied in the framework will be introduced. At last,we do a further specification for the design and implementation of data verify automation tool ——Smart Checker.Keywords software test soft ware test automation framework XML LCS 目錄摘要 IAbstract II第1章 緒論 1 課題背景和意義 1 論文所做的工作 2第2章 軟件自動化測試框架的介紹 3 自動化測試框架概述 3 模塊化測試框架 3 測試庫框架 4 數(shù)據(jù)驅(qū)動測試框架 4 關(guān)鍵字驅(qū)動或標(biāo)驅(qū)動測試框架 4 混合測試自動化框架 5 本章小結(jié) 5第3章 數(shù)據(jù)驅(qū)動的信息自動化校驗(yàn)框架的設(shè)計(jì)和應(yīng)用技術(shù)的研究 7 總體架構(gòu)分析和設(shè)計(jì) 7 系統(tǒng)工作流程 9 校驗(yàn)過程 10 線性循環(huán)校驗(yàn) 10 LCS算法 11 XML技術(shù)的研究和應(yīng)用 14 XML簡介 14 Schema和DTD 14 DOM 15 XSL 15 Xpath 15 本章小結(jié) 16第4章 Smart Checker的實(shí)現(xiàn) 17 總體需求分析 17 Compliance的介紹 17 測試任務(wù)說明 17 功能性需求 18 性能需求 18 移植性和擴(kuò)展性需求 18 輸入和輸出 18 數(shù)據(jù)映射關(guān)系 19 系統(tǒng)架構(gòu)設(shè)計(jì) 19 系統(tǒng)模塊設(shè)計(jì) 21 數(shù)據(jù)引擎(Data Engine) 21 數(shù)據(jù)管理器(Data Manager) 23 校驗(yàn)引擎(Checking Engine) 28 報(bào)告、日志生成模塊(Report amp。所以說軟件測試自動化跟軟件測試一樣,也有它自己的生命周期。最好的軟件測試工具是能夠?qū)⑺蜏y試需求達(dá)成一致,而且他們提供高度可定義的工作流程和跟蹤報(bào)告能力,但這是不可能的,要達(dá)到這樣的要求無異于再開發(fā)一個(gè)應(yīng)用程序。在以往的手工測試中,測試員需要對日志文件中的每條記錄根據(jù)測試用例和測試數(shù)據(jù)進(jìn)行檢驗(yàn)。同時(shí)也論述了在校驗(yàn)引擎中被使用到的數(shù)據(jù)比對算法——線性循環(huán)比對算法和LCS算法。這些測試方法雖然最容易應(yīng)用 但是幾乎不可能維護(hù)。傳統(tǒng)的結(jié)構(gòu)化線形腳本已經(jīng)無法滿足上面的要求, 新一代的自動化測試框架提出無疑為自動化測試提供了解決問題的手段。 測試庫框架測試庫框架( Test Library Architecture) 與模塊化測試腳本框架很類似,并且具有同樣的優(yōu)點(diǎn)。在表驅(qū)動測試中,它的測試用例是包含在數(shù)據(jù)文件而不是在腳本中, 對于數(shù)據(jù)而言, 腳本僅僅是一個(gè)“驅(qū)動器”,或者是一個(gè)傳送機(jī)構(gòu)。關(guān)鍵字驅(qū)動測試看上去與手工測試用例很類似。關(guān)鍵字驅(qū)動腳本的數(shù)量不隨測試用例的數(shù)量變化, 而僅隨軟件規(guī)模而增加。 本章小結(jié)基于上述5種基本框架產(chǎn)生的一些自動化測試工具(如Rational Robot ,Winrunner)都給實(shí)際的軟件測試工作帶來了很大的方便。目標(biāo)數(shù)據(jù)信息是要校驗(yàn)的數(shù)據(jù)信息。 從系統(tǒng)服務(wù)器上下載所需要校驗(yàn)的數(shù)據(jù)信息以文件的形式存儲在本地。 對基準(zhǔn)數(shù)據(jù)信息文件中的原始的基準(zhǔn)數(shù)據(jù)信息進(jìn)行加工轉(zhuǎn)化處理來產(chǎn)生測試基準(zhǔn)數(shù)據(jù),這些基準(zhǔn)數(shù)據(jù)以測試用例為單位進(jìn)行組織,以統(tǒng)一的格式存儲于持久數(shù)據(jù)存儲多項(xiàng)中,這些轉(zhuǎn)化后的數(shù)據(jù)被用作測試用例的內(nèi)部數(shù)據(jù)表示。用戶界面(UI): 對系統(tǒng)的某些異常和錯誤進(jìn)行日志的記錄。 5將從數(shù)據(jù)庫中查詢到的數(shù)據(jù)信息和用戶提供的基準(zhǔn)文件中的信息進(jìn)行合并在,轉(zhuǎn)化成一個(gè)的內(nèi)部數(shù)據(jù)文件。一個(gè)測試用例通常是由多條日志記錄組成的,我們需要依次檢驗(yàn)每一條的日志記錄。對于這種格式,如果采用線性循環(huán)的方式進(jìn)行一對一的比對將會降低校驗(yàn)的效率。然后求出對角線最長的1序列,其對應(yīng)的位置就是最長匹配子串的位置[3]。我們用兩個(gè)標(biāo)記變量來標(biāo)記矩陣中值最大的元素的位置,在矩陣生成的過程中來判斷當(dāng)前生成的元素的值是不是最大的,據(jù)此來改變標(biāo)記變量的值,那么到矩陣完成的時(shí)候,最長匹配子串的位置和長度就已經(jīng)出來了。 if(str2[i]= =str1[j]) } if(c[j]max) { max=c[j]。 } Schema和DTDXML只說明數(shù)據(jù)的結(jié)構(gòu)而并不關(guān)心數(shù)據(jù)是如何具體描述的、數(shù)據(jù)是否正確。所以XML Schema具有強(qiáng)制文檔內(nèi)容和結(jié)構(gòu)的能力,它是XML世界中的一種不但重要而且強(qiáng)大的新標(biāo)準(zhǔn)[3]。其后對文檔的所有操作都是在對象樹上的進(jìn)行。Xpath表達(dá)式也可以表示數(shù)值和布爾運(yùn)算符等數(shù)據(jù)類型[9]。它們有各自的需求規(guī)定,具體的匯報(bào)規(guī)則都可以在納斯達(dá)克的官方網(wǎng)站上找到。如果在UAT環(huán)境下,那么每天的日志記錄將會達(dá)到上萬條。smart checker對于每次的測試任務(wù)都要給出兩份測試報(bào)告。Smart Checker在校驗(yàn)文件的過程中應(yīng)盡量少地占用系統(tǒng)資源,原則上不超過6M。固定域的基準(zhǔn)值從用戶提供的基準(zhǔn)文件中獲得,非固定域的基準(zhǔn)值從數(shù)據(jù)庫中查詢獲得。如委托時(shí)間(Order Time),交易時(shí)間(Action Time)等。手工校驗(yàn)這么