天天看點

開源軟體測評方法及工具

一、開源史上最成功的八個開源軟體

就開源本身而言,它就是個成功案例。它不僅受個人喜歡,而且衆多知名企業也青睐于它。雖然開源計劃和開源産品數不勝數,但哪一個才是最成功的呢?這裡所說的“成功”的定義是:應用廣泛+衆所周知。而在衆多成功的開源産品中,隻有少數領頭羊,而其他産品基本隻能望其項背。

  Linux

  上榜理由:Linux + GNU = GNU/Linux 。從Linus Torvalds在1991年宣布他在Minix基礎上建立一新OS核心到現在已經接近20年了。在這段時間内,大部分網絡伺服器都是Linux系統。

  BSD

  上榜理由:長久以來,FreeBSD, NetBSD和OpenBSD是伺服器衆作業系統之中廣為人知的3個OS。上世紀90年代,三者均是脫胎于伯克利的Unix系統,故把三者組團上榜。另外,Apple的Mac OS脫胎于FreeBSD。

  MySQL

   上榜理由:MySQL是全球使用範圍最廣的資料庫系統。2009年,全球的MySQL安裝數量已達1千1百萬。它是LAMP架構(Linux,Apache, MySQL, PHP)中的M。衆多知名網站和産品均使用MySQL,比如:維/基百科、Facebook、Google和Wordpress。(Google和 Facebook均改造了MySQL,以滿足自身需求。詳情可見本文末尾推薦閱讀文章)。

  Apache

  上榜理由:Apache HTTP伺服器從它誕生的1996年開始,它是全球使用最為廣泛的Web伺服器,其市場占有率遠遠超過第二名的IIS。2009年,全球超過1億個網站使用Apache。

  據Netcraft2010年8月11日的資料統計表明,全球目前已有119,664,128個網站使用Apache;目前Apache市場占有率為56.06%,IIS為25.03%。

開源軟體測評方法及工具

圖1: Web 伺服器市場占有率

  Firefox

   上榜理由:目前為止,它是Mozilla的最成功産品。2004年11月9日,FireFox 1.0問世。目前Firefox雖無法撼動IE的霸/主地位,但它是衆多技術人員的首選浏覽器。Firefox浏覽器進化史:2002年9月23日 Phoenix -> 2003年5月17日改為FireBird-> 2004年2月9日改為FireFox。

  根據NetMarket Share 2010年7月份最新統計,Firefox市場占有率為22.91%,IE為60.74% 。

開源軟體測評方法及工具

圖2:浏覽器市場占有率

  WordPress

  上榜理由:從2004年Wordpress作為b2部落格軟體一分支面世後,它開始主宰部落格平台市場。據Pingdom 2009年的調查表明,全球Top 100部落格中27%使用Wordpress。如果加上Wordpress.com和Automattic的Wordpress服務部落格,該資料上升至32%。

  2010年8月份,Wordpress 3.0下載下傳量已超過1250萬。

  BIND

   上榜理由:BIND(Berkeley Internet Name Domain Server)是現今網際網路上最常使用的DNS伺服器軟體,使用BIND作為伺服器軟體的DNS伺服器約占所有DNS伺服器的90%。BIND的第一個版 本要追溯到20世紀80年代,它由伯克利大學的4位研究所學生共同開發,它和4.3 BSD一起釋出。可以這樣說,它就是全球的标準DNS伺服器。

  不接觸Linux的朋友應該很少聽過BIND。因為全球大多數伺服器的OS均為Linux/Unix,而這些Linux/Unix均綁捆BIND,是以BIND的份額才非常高。

  Ubuntu

  上榜理由:2004年10月20日,Ubuntu首個版塊釋出。迄今為止,它是Linux流傳最廣的分支,尤其是其出色的桌面系統。鑒于Ubuntu近些年來的巨大成功,榜上有名,應受之無愧。

二、開源軟體評測的技術,方法,工具和系統

開源發展(核心+插件)是一種趨勢,他給予人們更多的選擇性,也帶動了使用者開發插件的積極性,進而提高了軟體的粘性以及使用者的使用體驗.插件的開發者本身就是軟體的使用者,他們更了解使用者需求,他們在使用過程中發現需要某 些功能,或者為使用時的某些操作提供友善,才去開發出這些插件,這些插件往往是真正貼切的、實用的,這比作者一個人開發出的功能更适合普通使用者.

  有些人往往提到開源軟體就想到免費,我認為免費并不是開源軟體的真正核心意義.我覺得開源軟體的真正意義是,集體開發,使用者決定軟體走向,還有使用者的自由 度.一個開源軟體做出來,大家一起改進它,這樣它就越來越适合大家.在符合大衆習慣的同時,我也可以根據自己本人的使用習慣來調整軟體,讓它更适合自己, 我覺得這樣的軟體開發形式要好于傳統的作者獨自開發。

   針對開源者,開源者開源某一個軟體的初衷是什麼?這個軟體能解決某一方面的問題,提高生産力,開源出來解放社群工程師的痛點。我想大部分開源軟體都是這樣的。既然開源了,是否能經得起質疑,我們知道好的項目是經得起質疑。既然開源就能接受社群 的patch和pull request,如果自己貢獻了100%的代碼,别人問了問題就踢出群,都是自己造,那這樣又何必開源呢。

   還有就是使用者,如何選型一個好的開源軟體,聽信他人,迷信大廠的名号,我覺得是還自己動手親自測試一下benchmark,這個過程既然能辨識真僞,又能學到不少知識。不要讓我們的知識都是從别人那裡聽來的。看一下源碼,主要看testcase,如果沒有任何testcase,都在main方法中system.out的開源軟體,測試都沒有全面覆寫,你敢在生産環境中用嗎?

軟體測試是軟體開發過程中的一個重要組成部分,是貫穿整個軟體開發生命周期、對軟體産品(包括階段性産品)進行驗證和确認的活動過程,其目的是盡快盡早地發現在軟體産品中所存在的各種問題——與使用者需求、預先定義的不一緻性。

軟體測試的目的是為了保證軟體産品的最終品質,在軟體開發的過程中,對軟體産品進行品質控制。一般來說軟體測試應由獨立的産品評測中心負責,嚴格按照軟體測試流程,制定測試計劃、測試方案、測試規範,實施測試,對測試記錄進行分析,并根據回歸測試情況撰寫測試報告。測試是為了證明程式有錯,而不能保證程式沒有錯誤。

軟體測試方法

開源軟體測評方法及工具

http://wenku.baidu.com/link?url=6RsSpUw-ZS3yUDk8fMyi47P_Ls3pOR-D14of5QXnXcgzUlCmwqZOUnG4czifyZI2VoepvXfwqDz4DC6ls-PLl0P5_06UBOnQmCmjvC9UQiS

多任務測試是指在非idle狀态下,測試對象處于工作狀态時,有新的事件發生,如手機進行通話時有短信進行,手機有電話呼入,這種情況就是“多任務”。

臨界測試在事件、任務剛剛發生、結束以及儲存系統處于臨界等邊界狀态下所進行測試  Eg:系統使用者的容量為200,那麼當人數達到到201時。

中斷測試軟體在工作中被其他的任務或意外事件等情況終止推出,相應的測試即為中斷測試。  中斷測試有人為中斷、新任務中斷以及意外中斷等幾種情況

性能測試通常驗證軟體的性能在正常環境和系統條件下重複使用是否還能滿足性能名額。或者執行同樣任務時新版本不比舊版本慢。一般還檢查系統記憶容量在運作程式時會不會出現記憶體洩露(memory leak)。比如,驗證程式儲存一個巨大的檔案新版本不比舊版本慢。

軟體測試工具

壓力測試工具ApacheBench

http://blog.csdn.net/iloveolerp/article/details/5212844

ab---apache自帶的壓力測試工具。是 Apache 附帶的一個小工具,專門用于 HTTPServer 的benchmark testing,可以同時模拟多個并發請求。

開源軟體測評方法及工具

自動化測試工具QTP

是一種自動測試工具。使用QTP的目的是想用它來執行重複的手動測試,主要是用于回歸測試和測試同一軟體的新版本。是以你在測試前要考慮好如何對應用程式進行測試,例如要測試哪些功能、操作步驟、輸入資料和期望的輸出資料等

開源軟體測評方法及工具

性能測試工具LoadRunner

LoadRunner,是一種預測系統行為和性能的負載測試工具。通過以模拟上千萬使用者實施并發負載及實時性能監測的方式來确認和查找問題,LoadRunner能夠對整個企業架構進行測試。企業使用LoadRunner能最大限度地縮短測試時間,優化性能和加速應用系統的釋出周期。 LoadRunner可适用于各種體系架構的自動負載測試,能預測系統行為并評估系統性能。

開源軟體測評方法及工具

缺陷管理工具QC

http://wenku.baidu.com/link?url=wnbpKzJ1JqR5S6UwMa-2olUzr9QeUpbYhpgdnhGRQXcrXzjqxEDmYQBBdJmibQ79ZGbdcNXdvVvm5siTAh1JP-eVeZMzXx3N8mjmt-qLDFq

該軟體提供統一、可重複的流程,用于收集需求、計劃和安排測試、分析結果并管理缺陷和問題。組織可使用該軟體在較大的應用程式生命周期中實作特定品質流程和過程的數字化。該軟體還支援在IT 團隊間進行高水準溝通和協調。

開源軟體測評方法及工具

單元測試工具Junit

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試架構(regressiontesting framework)。Junit測試是程式員測試,即所謂白盒測試,因為程式員知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套架構,繼承TestCase類,就可以用Junit進行自動測試了。

開源軟體測評方法及工具

軟體錯誤管理工具Bugzilla

Bugzilla 是一個開源的缺陷跟蹤系統(Bug-Tracking System),它可以管理軟體開發中缺陷的送出(new),修複(resolve),關閉(close)等整個生命周期。

Bugzilla是Mozilla公司提供的一款開源的免費Bug(錯誤或是缺陷)追蹤系統,用來幫助你管理軟體開發,建立完善的BUG跟蹤體系。

開源軟體測評方法及工具

功能測試工具WinRunner

通過自動錄制、檢測和回放使用者的應用操作,WinRunner能夠有效地幫助測試人員對複雜的企業級應用的不同釋出版進行測試,提高測試人員的工作效率和品質,確定跨平台的、複雜的企業級應用無故障釋出及長期穩定運作。

企業級應用可能包括Web應用系統,ERP系統,CRM系統等等。這些系統在釋出之前,更新之後都要經過測試,確定所有功能都能正常運作,沒有任何錯誤。如何有效地測試不斷更新更新且不同環境的應用系統,是每個公司都會面臨的問題。

如果時間或資源有限,這個問題會更加棘手。人工測試的工作量太大,還要額外的時間來教育訓練新的測試人員等等。為了確定那些複雜的企業級應用在不同環境下都能正常可靠地運作,你需要一個能簡單操作的測試工具來自動完成應用程式的功能性測試。

開源軟體測評方法及工具