999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

探討軟件測試“誤區”

2011-03-17 14:21:53喬勇誠
通信技術 2011年8期
關鍵詞:誤區

喬勇誠

(中國電子科技集團公司第三十研究所,四川 成都 610041)

0 引言

你聽過那個古老的 IT專業的創世紀笑話嗎?“為什么上帝只花了 7天就創造了宇宙?”答案是:“因為他以前沒有安裝過。他沒有什么可以搞砸的東西,不會激怒現有的用戶,無需顧慮先前的功能和蹩腳的設計。上帝走運,可是我們就沒那么走運了。”

從這則笑話中可以看出,隨著世界的進步,生活水平的提高,人們的需求越來越多樣化,科技產品越來越先進化、大型化和復雜化。這些都極大的促進了軟件信息化產業的蓬勃發展,當前人們已經越來越離不開軟件系統,而由于軟件的易頻繁發生故障的特性,軟件測試行業也迎來了高速發展的階段。

我國對軟件測試的研究相對于國外來說,起步較晚,發展較慢,直到21世紀初期,我國才逐步開始重視軟件測試行業。2003年國家人事部和信息產業部開始頒發“軟件評測師”職業資質認證證書。各個大型企業也相繼組建自己的測試部門或團隊,而對于大型軟件系統外包項目,很多企業還引入了第三方的評測機構,這些都刺激了國內軟件測試行業的迅速發展。但是,相對于國外的軟件測試水平還存在不小的差距。很多的人,甚至軟件測試人員本身對軟件測試領域的認知,還存在許多誤區,我這里例舉6個常見誤區,與大家一起探討和剖析。

1 軟件測試誤區

(1)“誤區1”:軟件質量是通過測試來保證的

許多企業或個人都認為有了專職的測試人員或測試團隊,軟件的質量就可以得到保障,甚至把軟件測試人員就當成軟件質量保證人員。其實軟件質量保證的含義是通過建立一套有計劃、有系統的方法,來保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用[2-3]。而軟件質量的提高是通過整個產品的質量和整個團隊的努力,以及產品的開發過程決定的。

軟件測試只是軟件生產過程中,為提高軟件質量而進行的一種檢查措施或者叫監督措施。這就像食品有質量監督部門,但是毒奶粉、爆炸瓜等問題依然不斷;又比如房屋建設有監管機構,但是豆腐渣工程仍然層出不窮,顯然監管機構不能絕對保證質量。所以說,測試人員或團隊是不能絕對保證高質量的軟件產品。

如何才能生產出高質量的軟件呢?個人認為:無論是什么樣的活動或過程,都是離不開人的行為,在軟件開發中,主體就是軟件設計人員、開發人員、質量保證人員和測試人員。用一種科學的、高效的,同時又是符合自身當前實際情況的軟件生產過程或方法,將各個角色人員有機的結合起來,使之能夠緊密合作、相輔相成,才有可能生產出高質量的產品。這種方法目前已經有很多了,而現在最需要作的就是在這些科學方法的基礎上,去尋找最適合自己的方法,這也是軟件質量人員需要永恒探討的課題。

(2)“誤區2”:軟件測試的真正價值

目前在許多企業中,評估軟件測試活動時,通常采用軟件缺陷數量、軟件缺陷的嚴重性、測試用例的多少、自動化測試的代碼量、手動測試的代碼量、回歸測試套件的數目以及所有具體的指標來進行衡量。而這些指標并不能夠真正體現軟件測試的價值,軟件測試的工作績效應該體現在提高了多少開發人員的工作績效上。所以說軟件測試并不能保證軟件會更好,但是可以保證開發人員會更好的進行編程。

軟件開發人員制造軟件,而軟件測試如果僅僅是幫助他找出缺陷并去掉它,那么軟件測試并沒有創造出自己的真正價值。如果軟件測試人員努力認真的對待自己的工作,讓軟件測試產生持續有效的正面影響,那么就應該幫助開發人員理解程序中出現的問題和原因,讓他們在將來的工作中少犯錯誤。

英國計算機科學家托尼·霍爾(Tony Hoare)有句名言很好的概括了軟件測試的價值:

“軟件測試的真正價值并不體現在代碼中找出了多少缺陷,而是發現設計和編程人員解決問題方法上的局限、思路中的狹隘和技能方面的不足[1]。”

要做到這一點,有2個方面最重要,①是軟件測試人員的素質,如果測試人員還沒有達到能夠為軟件開發過程或軟件設計過程等方面提出建議的水平,那么就需要加強學習和接受更深入的培訓,這就需要加大投入力度。②是軟件測試人員的地位,軟件測試人員如果只是作為項目開發團隊中的一員,缺乏話語權,那么當測試人員對軟件設計或編程上的不足提出建議時,就不一定能夠被有效采納,甚至在測試人員發現了重大問題時,無力阻止錯誤的繼續發生。適當提高軟件測試人員的地位,對于體現軟件測試正真價值,可以起到較好的推動作用。

(3)“誤區3”:汝不應崇拜無法重現的失效

這是由著名的軟件測試大師詹姆斯·惠特克(James Whittaker)提出的軟件測試9大誡律中的第4條。意思是不要深陷于只見過一次的缺陷中。

在日常的軟件測試中經常會出現這樣的情況:遇到了一個缺陷,往往還是很嚴重的缺陷,但是無法重現,缺陷越嚴重,測試人員感覺越不好。而測試人員最常用的做法就是浪費數個小時或者數天的時間,甚至于更長的一段時間試圖去重現這個只見過一次的缺陷[1]。也許由于沒有適合的工具或者其它原因,為了重現這個缺陷的努力付諸流水,時間被白白浪費,測試人員卻沒有意識到這點。如果把這個時間用在其它更好的、更需要的地方,是否會有更好的測試效果呢?

從這個誡律可以看出,在進行軟件測試時要盡最大的努力注意并記住(或者記錄下來)對軟件采取的動作次序,同時記住應用程序的響應;并且考慮使用帶有追蹤功能、軟件狀態等功能的調試器或者測試工具,這樣可以盡量減少重現缺陷時的猜測成分,避免測試人員的深陷[4]。

(4)“誤區4”:測試人員無需懂開發

持這個觀點的人認為,軟件測試人員一般都使用工具進行測試,只要懂得一些測試工具需要的腳本語言以及一些環境搭建的知識就足夠了;又或者,軟件測試人員并不專注于白盒測試,只是進行產品功能測試,更注重用戶使用或用戶反饋,無需知道太多的開發知識。個人認為造成這個誤區的原因,是沒有理解軟件測試的真正價值所在。軟件測試最終是要為軟件開發服務的,是要持續影響并提高軟件設計水平以及軟件開發水平的。試問:不懂開發的測試人員如何提出軟件開發過程的改進措施和建議呢?

我知道有種說法:“程序寫得最好的不是工作多年的開發人員,而是有著多年測試經驗的測試人員[3]。”由此可見,一個優秀的軟件測試人員,是要涉及多方面的知識領域。例如在詹姆斯·惠特克的9大軟件測試誡律中的第9條:“汝應貪圖開發人員的源代碼”。測試人員通過對源代碼的閱讀,特別是那些從用戶界面或者用戶使用功能上很難見到或者得到的錯誤處理代碼,花時間了解代碼中有哪些錯誤處理,哪些輸入能夠觸發這些錯誤處理,這樣一點一點地收集類似的線索,來幫助測試人員明確要執行哪些測試。

詹姆斯·惠特克曾說過這樣一段話,能夠充分說明測試人員是需要懂得開發的:

“一名優秀的測試人員,會仔細的分析找出的缺陷,并能夠巧妙的向開發人員或小組進行匯報和有效交流,使他們能夠意識到自己知識技能中的不足,從而進行相應的彌補和提高。隨著開發人員素質的提高,最終同時達到軟件缺陷數量下降和生產效率提高的目的,這遠遠超過了只注重發現并清除軟件缺陷的簡單方式[1]。”

(5)“誤區5”:有了自動化測試工具,就不需要手工測試了

自動化測試工具一般有2種:①無需軟件運行即可對其進行分析的工具,諸如代碼審查或靜態分析等。這些工具只能對軟件固有的一些規范性缺陷進行檢測,而許多軟件缺陷是要等到在實際應用環境中才會暴露出來;②需要軟件運行的動態測試工具。這些工具可以檢測出許多軟件實際運行時可能出現的缺陷,但是它卻具有無法聯系上下文場景的問題(運行環境、所處狀態等)。更重要的是它的阿基利斯腳踵就在于它沒有辦法覆蓋應用程序出錯的大多數情形[1]。除非發生自身崩潰、異常輸出或者是斷言被激活,自動化測試工具不會注意到應用程序出錯的。

要找到這樣的缺陷,避免它跑到客戶的桌面上,唯一的方法就是創造出與客戶所處環境一模一樣的運行環境,在那里運行軟件來重現軟件出錯時的數據和狀態。很多產品都經過了自動化測試工具的測試,可是,在這樣的情況下,手工測試仍然能夠定期地找出軟件缺陷,更糟糕的是用戶們(根據定義,他們執行的也是手工測試)也找得出軟件缺陷。由此可見手工測試存在著令人不可忽略的力量,甚至于手工測試優于自動化測試。

有一個Intel的測試經理曾經評論過手工測試與自動化測試:

“讓整個小組完全專注于自動化測試,并夸耀我們的1500個自動化測試用例后,我們的應用程序在手指頭接觸鍵盤的一瞬間就崩潰了。如果你想找出客戶可能看到的那些軟件缺陷,手工測試起著決定性作用[1]。”

(6)“誤區6”:測試用例是萬能的

測試人員可以寫一個程序,設計足夠多足夠好的測試用例,可以進行無限次的測試,并且在睡覺的時候依然能夠幫你找到軟件缺陷,測試可以一遍又一遍不知疲倦地運行。很好,很強大!然而令人費解的是,在軟件測試技術以及自動化測試工具長足發展的今天,依然有一些弱不禁風的軟件被生產出來,而且這些軟件在接觸到真正的用戶后隨時報錯。為什么?這是因為有一個致命的弱點是所有測試用例從來沒辦法解決的。在測試領域中,這個致命的弱點被美稱為預言家問題:當運行一個給定的測試用例時,我們怎么知道軟件是在按照預想的方式在執行?它是否產生了正確的輸出?與此同時,它是否產生了不必要的副作用?我們又怎能確定這一點呢?是否能有一個預言家告訴我們給定用戶環境、數據配置、輸入序列后,軟件會按照當初設計的模式準確的執行[1]。事實上由于沒有完美的設計規范,對于目前的測試來說,這是根本不可能實現的。

如果不存在預言家,那么這些測試用例只能發現那些較為嚴重的故障:崩潰,掛起(至少看起來像是掛起)和異常。而且測試用例本身也是軟件,這往往意味著那些錯誤可能是測試用例本身而不是目標軟件產生的。測試用例與目標軟件合為一體也構成一個軟件,它仍然會留下漏洞讓那些微妙復雜的錯誤逃過測試。所以,歸根結底還是自動化測試與手工測試都不可或缺。

2 結語

自從 1979年第一本關于軟件測試的書籍誕生以來,隨著軟件測試行業的飛速發展,軟件測試藝術、軟件測試技藝等已經不能準確的描述測試人員在軟件測試中所做的工作了。目前許多知名的測試大師們已經開始將軟件測試稱之為一門學科——軟件測試學。作為一門學科,其涉及的知識面將是廣闊的,是值得測試人員花足夠多的時間去掌握和精通的。同時,在這個過程中也必將伴隨著各種各樣理解上的誤區。這需要通過不斷地學習,不斷地接受訓練,去深入的了解軟件測試,消除軟件測試的理解誤區,去努力尋找適合自己的軟件測試方法,提高軟件測試水平,從而達到改善或改進整個軟件開發過程的最終目的。

[1]WHITTAKER J A. 探索式軟件測試[M]. 方敏,張勝,鐘頌東等,譯.清華大學出版社, 2010:230.

[2]于波,姜艷. 軟件質量管理實踐——軟件缺陷預防、清除、管理實用方法[M].電子工業出版社,2008:431.

[3]Weinberg G M. 完美軟件——對軟件測試的各種幻想[M]. 宋銳,譯.電子工業出版社,2009:345.

[4]曹向志,于涌,高樓. 軟件測試項目實戰——技術、流程與管理[M].電子工業出版社,2010:360.

[5]陳能技. 軟件測試技術大全——測試基礎、流行工具、項目實踐[M].人民郵電出版社,2008:500.

猜你喜歡
誤區
自療感冒防誤區
冬季洗澡的誤區
海峽姐妹(2019年2期)2019-03-23 02:56:34
誤區與糾偏:欺騙罪中默示欺騙的認定
三角恒等變換中的誤區警示
2018年理財,要警惕這些誤區
海峽姐妹(2018年2期)2018-04-12 07:13:37
走出“誤區” 學好“二根”
三角恒等變換中的誤區警示
走出“固定唱名法”的誤區
冬病夏治走出誤區才有效
華人時刊(2016年13期)2016-04-05 05:50:15
看病常有四個誤區
海峽姐妹(2015年4期)2015-02-27 15:10:41
主站蜘蛛池模板: 天堂岛国av无码免费无禁网站| 欧美另类第一页| 欧美日韩中文国产va另类| 热伊人99re久久精品最新地| 色天天综合| 91福利一区二区三区| 国产色婷婷| 中文字幕va| 91精品网站| 在线看片中文字幕| 亚洲一区二区三区中文字幕5566| 四虎影视库国产精品一区| 一级毛片基地| 99尹人香蕉国产免费天天拍| 国产成本人片免费a∨短片| 国产欧美日韩免费| 亚洲一区二区三区麻豆| 国产欧美另类| 国产第一页第二页| 视频一区亚洲| 久久综合九九亚洲一区| 亚洲欧美日韩动漫| 亚洲欧美激情另类| 色网站在线免费观看| 亚洲日韩精品欧美中文字幕| 在线国产欧美| 国产精品亚洲日韩AⅤ在线观看| 久草视频一区| 精品国产网| 国产欧美视频在线| 欧美成人午夜在线全部免费| 亚洲欧州色色免费AV| 亚洲精品色AV无码看| 亚洲一级色| 2020精品极品国产色在线观看| 99精品这里只有精品高清视频| 日韩在线欧美在线| 久久黄色一级片| 国产精品嫩草影院视频| 国产高潮流白浆视频| 亚洲无码视频图片| 91破解版在线亚洲| 欧美精品成人一区二区在线观看| 国产无码网站在线观看| 国产在线自在拍91精品黑人| 四虎成人在线视频| 久久精品娱乐亚洲领先| 中文无码精品A∨在线观看不卡| 色噜噜在线观看| 久久女人网| 青草娱乐极品免费视频| 久草视频中文| 国产色爱av资源综合区| 亚洲精品成人7777在线观看| 国产自无码视频在线观看| 国产精品自在拍首页视频8| 九月婷婷亚洲综合在线| 成色7777精品在线| 中文字幕人成乱码熟女免费 | 久青草网站| 国产亚洲欧美在线中文bt天堂| 亚洲成aⅴ人片在线影院八| 日韩成人高清无码| 国产成年无码AⅤ片在线| 又大又硬又爽免费视频| 精品久久国产综合精麻豆| 2021无码专区人妻系列日韩| 国产精品视频猛进猛出| 一级全免费视频播放| 国产成人成人一区二区| 亚洲AV无码乱码在线观看代蜜桃| 日本在线亚洲| 欧美一级高清视频在线播放| 内射人妻无套中出无码| 好紧好深好大乳无码中文字幕| 波多野结衣国产精品| 特级做a爰片毛片免费69| 在线观看91精品国产剧情免费| 26uuu国产精品视频| 视频二区亚洲精品| 手机在线国产精品| 试看120秒男女啪啪免费|