軟件測試中要注意缺少兼容性測試 軟件測試
時間過得很快,這周一直在忙于項目的測試。在周日終于能放松一下心情,我在家看了一個久違的電視節目,電視采訪了一個世界性金融投資人,問他對總裁有什么要求。他說,要求很簡單,就是能夠和任何人合作。其實任何事物和人都一樣,除了自身的完善還需要提高和外界的兼容性,也就是“我去適應環境,而不是讓環境適應我”。
這讓我想起了軟件測試中的兼容性測試也是這樣要求的。無論一個軟件的功能多么強大或者高效,如果和目前常見的軟件有沖突,或者和操作系統有沖突,那么它還是沒有任何價值的,只會被市場所淘汰。
軟件兼容性與軟件兼容性測試(1)什么是軟件兼容性很多東西都可以和平共處,巧克力和花生就是一個很好的例子,如果你喜歡吃花生巧克力糖的話。但是,我們也知道水和油就不相容。在我們用心創建一個復雜的大型應用軟件時,開發人員必須要非常努力使所開發的軟件能在預期的各種環境中運行,避免不兼容的情況出現。但隨著軟件開發的復雜性,不同的平臺,不同的應用軟件的多樣化,還有不同軟件的實現方法的多樣化,不可預見的情況越來越多,避免軟件不兼容的情況也變得越來越困難。
一般來說,兼容性指能同時容納多個方面,例如你能和朋友們友好相處,那是相互能兼容,如果相互間相處非常默契,就是兼容性非常好。同樣道理,在計算機術語上兼容是指幾個硬件之間、幾個軟件之間或是軟硬件之間的相互配合程度。相對于軟件來說,是指某個軟件能穩定地工作在某操作系統/平臺之中,就說這個軟件對這個操作系統/平臺是兼容的,再就是在多任務操作系統中,幾個同時運行的軟件之間如果能穩定地工作,就說這幾個軟件之間的兼容性好,否則就是兼容性不好。
另一種情況是軟件共享的數據,幾個軟件之間無需復雜的轉換,即能方便地共享相互間的數據,也稱為兼容。因此,軟件兼容性是衡量軟件好壞的一個重要指標。從這個意義上看,軟件兼容性不良就是軟件推廣的最大阻礙,例如在微軟歷史上花費人力財力最多的Vista系統,發布了半年之久依然是叫好不叫座,據說原因之一是軟件兼容性最為用戶所詬病。
(2)什么是軟件兼容性測試隨著軟件逐步被推向市場,被更多的用戶安裝,兼容性問題也日益凸現出來了。理論上任何兩個軟件之間都有沖突的可能,因此軟件的兼容性就成為了衡量軟件好壞的一個重要指標。兼容性測試是指測試軟件在特定的硬件產臺上、不同的應用軟件之間、不同的操作系統平臺上、不同的網絡等環境中是否能很好地運行的測試。簡單的說,兼容性測試是指測試某新開發的軟件在某一特定環境下與各種軟件的協調性,軟件之間能否很好的運作。例如,會不會有相互不良的影響,還有軟件和硬件之間能否發揮很好的效率工作,會不會影響或導致系統的崩潰等。
(3)配置測試和兼容性測試的區別在我們進行軟件測試時,經常有兩個很容易混淆的兩個概念,這里特別列出來分析一下。配置測試是指驗證在不同的硬件配置和軟件配置下,應用程序能否正常工作。配置測試的目的是保證軟件在其相關的硬件上能夠正常運行,而兼容性測試主要是測試軟件能否與不同的軟件正確協作。
配置測試的核心內容是使用各種硬件來測試軟件的運行情況,一般包括:一是軟件在不同的主機平臺上的運行情況,例如Dell平臺和SUN平臺;二是軟件在不同的組件上的運行情況;三是不同的外設和不同的接口下的運行情況;最后還有不同的可選項的運行情況,例如某些可選擇的不同軟硬件和網絡環境。
而兼容性測試的核心內容:一是測試軟件是否能在不同的操作系統平臺上兼容,或測試軟件是否能在同一操作系統平臺的不同版本上兼容;二是軟件本身能否向前或者向后兼容;三是測試軟件能否與其它相關的軟件兼容;四是數據兼容性測試,主要是指數據能否共享等。所以,配置測試和兼容性測試對軟件開發都比較重要,但它們測試和關注的核心內容是有區別和不同的。
軟件兼容性測試的主要內容(1)操作系統/平臺兼容性測試市場上有很多不同的操作系統類型,最常見的有Windows、Unix、Macintosh、Linux等。應用軟件的最終用戶究竟使用哪一種操作系統,取決于用戶系統的配置。這樣,就可能會發生兼容性問題,同一個軟件可能在某些操作系統下能正常運行,但在另外的操作系統下可能會運行失敗。因此,理想的軟件應該具有平臺無關性。
當然,有些軟件只是針對某一系列的操作系統平臺來開發的,不存在跨平臺的需求。但同一操作系統也有多個版本,例如Windows系統也有不同的系列版本號,如Windows 2000 /XP/Vista等,他們之間可能也有許多不同的組件屬性。因此,有些軟件可能需要在不同操作系統平臺上重新編譯才可運行,有些軟件需要重新開發或改動較大才能在不同平臺運行。因此,在軟件發布之前,需要在各種操作系統下對應用軟件進行兼容性測試。
(2)應用軟件之間兼容性測試主要考察兩項內容:一是軟件運行需要哪些應用軟件支持。二是判斷與其他常用軟件一起使用,是否會造成其他軟件運行錯誤或本身不能正確實現其功能。
(3)不同瀏覽器之間的兼容性測試現在好多應用軟件都應用B/S結構,它們的客戶端都使用瀏覽器。因此,瀏覽器是Web客戶端最核心的構件,但來自不同廠商的瀏覽器對Java、JavaScript、 ActiveX、 plug-ins或HTML規格都有不同的支持。例如,ActiveX是Microsoft的產品,是為Internet Explorer而設計的,JavaScript是Netscape的產品,Java是Sun的產品等。另外,框架和層次結構風格在不同的瀏覽器中也有不同的顯示,甚至根本不顯示。不同的瀏覽器對安全性和Java的設置也不一樣。所以,測試不同廠商、不同版本的瀏覽器對某些構件和設置的適應性,也是軟件兼容性測試的重點之一。
(4)不同類型的數據庫兼容性測試現在很多軟件尤其是ERP、CRM等軟件都需要數據庫系統的支持,對此類軟件應考慮對不同數據庫平臺的支持能力,如從BD2平臺替換到MSSQL平臺時,軟件是否可直接掛接,或者提供相關的轉換工具。還有新舊數據轉換的是否存在問題,軟件是否提供新舊數據轉換的功能。例如,當軟件升級后可能會定義新的數據格式或文件格式,這就涉及到對原有格式的支持及更新,原有用戶記錄在新格式下是否依然可用等。另外,還需要測試轉換過程中數據的完整性與正確性。
(5)軟硬件配合的兼容性測試考察軟件對運行硬件環境有無特殊說明,有些軟件可能在不同的硬件環境中,出現不同的運行結果或是根本就不能執行。
軟件兼容性測試規劃的幾個建議有過軟件兼容性測試經驗的人都了解,兼容性測試或許無法做到完全的質量保證,但兼容性測試是必不可少的步驟之一。因此,對軟件開發來說,忽視軟件兼容性測試,必將會導致用戶在使用時給兼容性故障拖死的概率也越高。所以,如何在有限的成本和資源考慮下,針對此軟件產品規劃出適當的兼容性測試,是所有兼容性測試技術人員關注的重點。
(1)評估軟件應用環境,有針對性的制定測試計劃投資和規劃一個有效的兼容性測試相信會讓不少軟件廠商傷透腦筋,要做多少設備投資,要投入多少人力,要測試多少兼容性測試完全會影響到軟件產品的最終成本。軟件廠商想要專心和投資在研發上,又想要節省成本的做好兼容性測試,只有評估軟件應用環境,有針對性的制定兼容性測試計劃,才能兼顧成本和產品的兼容性質量質量。
(2)在多種平臺/應用環境上測試自行安裝多種平臺和模擬應用環境進行測試,但缺點是難以覆蓋所有平臺。一個軟件產品的開發成功,不僅僅是編寫完為使用者提供服務功能的程序而已,更重要的是能在用戶環境中可靠的運行。因此,軟件程序編寫工作的完成,其實只是完成了開發任務中的一半,對軟件進行模擬用戶環境進行兼容性測試其重要性不亞于對程序本身的開發。
(3)考慮進行β測試大型通用軟件在正式發布前,通常都需要執行Alpha和Beta測試,目的是從實際用戶的使用角度對軟件的功能和性能進行測試,以發現可能只有最終用戶才能發現的錯誤。
α測試(alpha測試)是在測試團隊內部進行,測試的方法也較多,黑盒、白盒、壓力、應力等等。β測試(beta測試)是指給指定用戶公開測試,例如可以有選擇地請一些最終用戶實際使用,將發現的問題反饋回來再進行修改。
在Beta測試中,發放多個拷貝給測試用戶并讓他們填寫測試報告,由用戶記下遇到的所有問題,定期向開發者報告,開發者在綜合用戶的報告后做出修改。
β測試是許多軟件測試最后上市前大規模的綜合測試的常用方式之一。這種做法可以覆蓋多種軟硬件平臺,雖然非常耗時和費錢,但因為Beta測試的可以測試軟件的可支持性和兼容性。所以,Beta測試不失為一種有效的兼容性測試方法。
文章來源于領測軟件測試網 http://www.k11sc111.com/