?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

龍八國際手機版登錄:以設計求質量啟用經濟高效的全面單元測試

?

小序

周全單元測試是包管軟件開拓歷程質量的關鍵策略,但迄今為止并沒有為人們廣泛吸收。本文考核了陰礙周全單元測試的"攔路石",并先容了來自 IBM Rationa龍八國際手機版登錄l 軟件公司旨在降服這些攔路石的新技巧。

去年春天,我的一位同事獲悉他的汽車因為某些部件的缺陷,正在被召回。事實證實,這對他來說僅僅是輕細不便。他把車開到經銷商那里,人家免費為他替換了出缺陷的部件,不到幾個小時,他就拿回了車。除了在經銷商那里揮霍了幾個小時的事情光陰之外,他并沒有受到什么喪掉。但從汽車制造商的角度講,問題要嚴重得多。此次召回涉及到的車主有 16500 人之多,給制造商造成的喪掉跨越 1.14 億美元。這真是一筆不小的用度!

由此不可貴出結論,只要制造商能在產品臨盆的早期發明部件的缺陷,就能節省一大年夜筆用度。即就是在所有的汽車都已經裝置好但還沒有交付的時刻發明缺陷,節省的用度也是很可不雅的。別的還可以避免因為客戶的相信度受損和同業的惡意進擊而造成的為難場所場面。我們不妨設想一下,假如制造商能在設計圖紙時就發明這一缺陷,那他們節省的用度又該有若干呢?

以設計求質量及周全單元測試

以設計求質量的產品臨盆措施包括一系列的策略、歷程和實踐,借助于它們,在開拓歷程的早期就能夠滿意質量要求。這種措施既不是新鬧事物,也不是無的放矢。比如,這種措施曾被用于制造波音 777 飛機。這種飛機的跨越 90% 的測試都是根據謀略機設計模型來完成的。在組裝第一架飛機之前,實際上只造了一個樣機,這樣一來,就節省了幾百萬美元。

Steve McConnell 在他 1龍八國際手機版登錄997 年出版的《軟件項目生計指南》(Software Project Survival Guide)一書中驗證了以設計示質量措施:在編碼曩昔修復缺陷比在產品交付時或交付后要少花 50-200 倍的價值。這是個發人深省的數字且在業界引起了廣泛的留意。然而,并不是所有的人都遵照以設計求質量的措施,而且事實上多年以來我們不停沒有這樣做,這究竟是為什么呢?這些問題很繁雜--以設計求質量是一個涉及范圍很廣的話題,根本弗成能在短短一篇文章之中將它評論爭論清楚。但我們可以經由過程探究軟件開拓相關的以設計求質量的一個方面,即周全的組件測試,作為一個"拍門磚"來理解該措施,以及為什么采納該措施會有如斯偉大年夜的阻力。

為周全單元測試掃清障礙

只管所有的軟件開拓職員都承認周全單元測試會帶來極大年夜利益,但實際上周全單元測試遠遠沒有獲得遍及,尤其是對付中心層組件測試和缺少圖形用戶界面的組件測試。為何會呈現這種環境呢?由于這些事情既費時又乏味。在以前,降服這些障礙常常是得不償掉。一個主要的問題在于,大年夜多半測試是為特定組件而量身訂做的,重用更是時機渺茫。因為開拓團隊的光陰壓力很大年夜,是以他們為了趕進度而不得不將精力集中在開拓利用法度榜樣本身上。平日,開拓職員覺得,對付每個項目假如都從頭構建測試對象和存根,項目停止后再"扔掉落"它們。這個歷程是一種揮霍。以是,他們寧愿將有限的資本都用在編寫組件代碼上面,而不是花在測試上面。

所幸的是,現在我們終于可以開脫這項困擾。IBM Rational 剛剛引進了一種新技巧,使我們能夠進行經濟高效的周全組件測試。IBM Rational 公司不停致力于為軟件開拓職員供給各類對象,以贊助他們在更短的光陰內交付高質量的軟件產品,Rational QualityArchitect 恰是此中的一部分。Rational QualityArchitect 經由過程使用能夠自動天生測試代碼的可視模型,簡化了組件測試。開拓職員可以集中精力來創建所需的測試用例,而不用花費光陰來編寫輕易掉足并且弗成重用的測試代碼。

沒龍八國際手機版登錄有 Rational QualityArchitect 的組件測試

為了更好的理解為何這一新產品會使周全組件測試加倍輕易實現,讓我們先來看一看沒有 Rational QualityArchitect 的組件測試將面臨哪些尋釁。

圖 1 所示為四個未經測試的組件。假設現在組件 B 已經可以測試了,而其他的組件(A、C 和 D)還沒有籌備好測試,縱然籌備好了,它們之中可能包孕一些缺陷,影響測試結果,并且使探求組件B中的差錯加倍艱苦。因為這些緣故原由,開拓職員平日會編寫他們自己的測試驅動法度榜樣和存根,而事后就將它們"扔掉落"。

圖 1:用于測試的四個組件

現在來斟酌一下開拓測試驅動法度榜樣的繁雜度。一個模擬組件 A 行徑的的測試驅動法度榜樣必須驅動組件 B、對其進行調用、供給一組輸入,以及記錄組件B的相應。同時,組件 B 所依附的組件 C 和組件 D 的所有功能必須由存根來供給,并且根據組件B的不合輸入,它們必須返回精確的結果。這聽起來像一種繁雜的"字母湯"烹飪法,難道不是嗎?

別的,縱然是在完成對單個組件的測試之后,仍舊要應對許多尋釁。在場景測試傍邊,為了測試一個給定序列的調用,必須將兩個或更多的組件進行同時測試。假如客戶端軟件還沒有完成,開拓職員就必須花光陰來創建一個模擬的客戶端以驅動特定的場景。根據一些軟件開拓團隊的申報,他們為了創建這些測試對象所花費的光陰盤踞總開拓光陰的一半以上,而這些測試對象險些不具有重用性。

具有 Rational QualityArchitect 的組件測試

Rational QualityArchitect 為我們供給了開啟經濟高效的周全單元測試之門的鑰匙:它充分使用了軟件開拓職員在開拓歷程的早期創建工件(即可視模型),來天生測試對象。開拓職員可以用IBM Rational Rose孕育發生可視化的模型,一旦開拓職員知道各個組件所必須履行的行徑,他們就可以在一個模型之中將該行徑記錄下來。因為這些模型是用來為組件自動天生代碼的,以是在這個意義上,開拓職員能夠應用 IBM Rational Rose 來天生的可視模型顯得功能分外強大年夜。這也恰是 Rational QualityArchitect 作為Rational Rose Enterprise 包中的一個組件的緣故原由。

對付單元測試來說,開拓職員必須完成以下三個目標:

測試單個的軟件組件的單個措施。

依次測試多個組件中的多個措施。

為不完備或未完成的組件天生存根,以使一個組件的測試不依附于其他組件的存在。

這三種測試中的每一種又由兩部分組成:

驅動測試歷程的測試對象或框架代碼

測試用例數據

這便是必要做的整個事情。是不是很簡單?為了闡述更詳細一點,讓我們來看一個例子。假設我要測試一個 Enterprise JavaBean(EJB)組件。我必要做兩項事情:

首先,創建所有要連接到辦事器(EJB 就駐留在此中)的測試代碼(A),然后實例化 bean,調用 bean 的操作并驗證返回的結果。

接下來,創建用來調用單個操作的測試數據(B)。

雖然創建測試數據很具尋釁龍八國際手機版登錄性,但實際上創建測試代碼加倍費時,且很逝世板。

記著,可視模型中已經包孕了創建測試代碼所需的整個信息。可視模型包孕了組件及其操作的布局描述,還有操作的參數及返回的值類型。在設計階段或在基于現有組件的逆向工程階段,可視模型是由闡發師創建照樣由開拓職員創建并不緊張。創建測試框架代碼所需的整個輸入已經"各就各位"。

這時該輪到 Rational QualityArchitect 接收我的事情了。經由過程闡發可視模型中給出的組件布局,Rational QualityArchitect 可以天生測試單個組件或涉及到多個組件的一系列操作所需的整個代碼。QualityArchitect 以致可以在真正的組件被支配之前天生存根組件作為占位符來運行。

測試代碼只是辦理規劃的一半。我還必要測試數據。這里,QualityArchitect 使開拓職員的事情輕易得多。因為不必再為創建測試代碼的繁瑣歷程所困擾,我可以將留意力集中在創建我們感興趣的和故意義的測試數據上。QualityArchitect 以致可以在不必要特殊的測試用例時,贊助天生隨機的測試數據。當必要特定的測試數據時,QualityArchitect 可以供給一個簡單的像電子數據表一樣的界面來輸入數據。

節省資源,節省光陰,沒有返工

在沒有 Rational QualityArchitect 時,周全單元測試歷程中的早期測試是那樣的費時和低效,乃至于很多公司都放棄了這項事情,只管它的代價是顯而易見的。有了 Rational QualityArchitect,使我們能夠進行早期測試,由于 QualityArchitect 自動天生了測試對象和存根--且跟著模型在開拓歷程傍邊的賡續演進,測試對象和存根的天生也不是一次性的而是增量式的。對一個從事單元測試事情的開拓職員來說,Rational QualityArchitect 實際上打消了創建一次性的測試代碼的耗時耗力事情,現在所要做的只是向一個電子數據表中輸入數據這樣簡單的事情。

更緊張的是,在開拓歷程的最早幾個階段,所有這些測試都是在可視化模型以外完成的。經由過程使用用于測試操作的現有資產,Rational QualityArchitect 使得軟件開拓團隊能夠采納以設計求質量的措施,而又不占用過多的軟件根基開拓光陰。

只管在軟件業中召回事故不常發生,但存在缺陷的軟件系統與存在缺陷的汽車一樣具有破壞性,其所造成的后果可能比后者加倍嚴重。在軟件項目中采納以設計求質量的措施,這一目標值得我們為之奮斗。早期的測試可能為一個汽車制造商節省 1.14 億美元,它也會為軟件系統龍八國際手機版登錄開拓公司帶來類似的資源節省。波音公司已經證明可以使用謀略機設計來安然地測試全部飛機。Rational QualityArchitect 確保您能夠在繁雜的軟件系統中實現同樣的目標。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

浙江体彩20选5开奖号 河北十一选五走势 吉林麻将下载 股票指数期权和股票指数期货的区别 亚冠足球直播 股票涨跌与买卖关系 坤彩科技股票 金鼎智富 科乐长春麻将官网 大众麻将单机版 内蒙古快三走势图一定 pk10开奖平台 乒乓球比赛视频 女排世界杯2018 a股股票指数怎么计算的 私募分级基金配资 中原河南麻将