為什麼需要軟體測試
(1).一款軟體從無到有會經歷很多的開發階段由不同的人來參與開發,所以最終產出的軟體功能可能會存在問題。因此為了保證軟體的功能是可用的,我們必須要進行測試。
( 2).當前的軟體件行業已經不在是功能為王了,不僅僅只盯著軟體的功能是否滿足需求, 還會對軟體是否容易上手,執行效率是否 ok …等一系列其它體驗都有了更高的要求,所以這也需要我們對軟體進行大量的測試。
為什麼選擇軟體測試
(1). 國內的軟體行業對於專業的軟體測試人員需求越來越大。
(2). 有些人喜歡創造世界所以他們做了開發, 我們就是希望這個世界變得更加美好所以做了而測試
為什麼不讓開發自已做測試
(1).當前行業有許多的測試從業人員本身之前都是做開發的。
(2).專業度:軟體測試和軟體開發分別屬於軟體行業當中二個不同的技術方向。所以讓專人做專事對於質量更加***。
(3).思維定式: 在軟體的開發周期中 對於程式設計師來說他們大多數的時間都是在思考如何實現具體的軟體功能,而不會去從使用者的角度考慮如何去"奇葩"的使用這些功能。
(4).測試力度: 相對於開發來說,產器就相當於是他們的"孩子"。所以"下手"就不會那麼狠。
什麼是軟體測試
通過人工或者自動化對 "被測物件"進行測試操作,從而驗證實際結果與預期結果之間是否存在差異
軟體測試的作用
(1).通過測試工作可以發現並修復軟體當中存在的缺陷,從而提高使用者對產品的使用信心。
(2).測試可以記錄軟體執行過程中產生的一些資料,從而為決策提供資料支援。
(3).測試可以降低同型別產品開發遇到問題的風險。
測試原則
測試原則指:我們在執行測試工作時必須要遵守的一些規則。
(1).測試證明軟體存在缺陷:無論執行什麼樣的測試操作都能保證當前軟體是有缺陷的。
(2).不能執行窮盡測試:有些功能是沒有辦法將所有的測試情況都邏列出來,所以任何的測試操作都有結束的時間。
(3).缺陷存在群集現象:對於軟體功能說,核心功能佔 20%,非核心是 80%。在實際工作中我們會集中測試 20%的核心功能,所以這個部分發現缺陷的機率就會高於 80%。因此我們就會遇到缺陷都集中在 20% 功能模組裡的現象。
(4).某些測試需要依賴特殊的環境
(5).測試應盡早介入:為了更多的發現和更好的解決軟體中的缺陷,我們追求測試工作盡早的開展
(6).殺蟲劑現象:同樣的乙個測試用例不能重複的執行多次,因為軟體會對它產生免疫。
(7).不存在缺陷謬論:任何軟體不可能是完美的。
對於當前的測試行業來說我們最經常測試的主體就是:
軟體( 主體功能 ),但是需要我們明白,乙個軟體也不僅僅只有功能需要測試。
我們可以將軟體分為三個部分組成:功能集合+使用說明書 + 配置資料。
對於一款軟體來說從無到有需要不同的過程,我們可以將這個過程分為不同階段,然後每個階段都會相應有測試物件。
需求分析階段:各種需求規格說明書。
軟體架構設計:api 介面文件( 介面測試 )
編碼實現階段:源**( 白盒測試、單元測試 )
系統功能使用:軟體功能主體( 當前行業做的最多的一種測試 )
軟體的開發都會依據相應的開發模型,
測試級別指:在這個模型當中我們人為定義規則的開發步驟。其中對於測試來說我們最常見的一種級別分類如下:
單元測試[ut
unit test ]:在軟體測試中單元指的就是組成軟體最小的底層**結構, 一般就是類、函式、元件
整合測試(it
system ingertaion test ):將多個單元模組組合在一起,然後驗證它們之間溝通的"橋梁"是否能正常工作(介面測試
)
系統測試(st
system test ):這是當前行業做的最多的一種測試。由測試人員充當使用者然後對軟體的功能主體進行測試。
驗收測試:
(1) a測試 ---- 內測
(2) b測試 -----公測
(3)uat
( user acceptance test )測試---- 由客戶派出對於業務非常精通的人員來使用該軟體,從而對功能進行測試。
(4) 驗收測試的核心就是讓使用者為當前軟體 「買單」
功能測試:驗證當前的軟體主體功能是否可用。
相容性測試:驗證當前軟體在不同的環境下是否還可以使用。
安全測試:驗證軟體是否只是能授權使用者提供功能使用。
效能測試:相對於當前軟體消耗的資源它的產出能力。
按測試物件進行分類
(1).白盒測試:這種測試的主體就是軟體的底層**,不會在意外部的介面是否 ok ,只要 求底層功能實現,同時邏輯正確。
(2).黑盒測試:這種測試就是指測試軟體外 在主體功能是否可用。
(3).灰盒測試:介於二者之間( 介面測試 )
(4).上述三種方法當中的 「盒」 指的就是被測物件。
按測試物件是否執行分類
(1).靜態測試:指測試不執行。
(2).動態測試:將軟體執行在真實的使用環境中進行測試。
按測試手段進行分類
(1).人工測試:由測試人員手動的對被測物件進行驗證,優點就是可以靈活的改變測試操作及環境。
(2).自動化測試:所謂自動化主要有二種形,一種是自已寫測試指令碼,另外一種就是通過第三方的工具對被測物件進行測試。優點就是可以高效率的去執行一些人工無法實現的操作。
描述當前軟體是否好用,在當前的軟體行業裡我們所採用的一套標準是基於 iso 組織制定的。需要我們記憶的就是軟體質量的六大特性:
功能性:軟體需要滿足使用者顯式或者穩式的功能。
易用性:軟體易於學習和上手使用。
可靠性:指軟體必須實現需求當中指明的具體功能。
效率性:類似於軟體的效能。
可維護性:要求軟體具有將某個功能修復之後繼續使用的能力。
可移植性:當前軟體可以從乙個平台移植到另乙個平台上去使用的能力。 【 功能靠用,效率可"以" 】
設計用例
(1). 用例就是使用者為了測試軟體的某個功能而執行的操作過程。
(2) .設計用例是有方法的( 等價類、邊界值、判定表… )
評審用例:
對當前的用例進行新增或者刪除。
配置環境
(1) . 環境:指的就是當前被測物件執行所需要的執行環境,做為測試人員需要具備配置環境的能力。【 一般情況下都會使用一鍵安裝的整合環境 】
(2) . 環境分類:作業系統 + 伺服器軟體 + 資料庫 + 軟體底層**的執行環境。
執行用例
(1) . 一般在執行用例之前我們會做乙個冒煙測試。這種測試的核心就是快速的對當前軟體的核心功能或者主體執行流程進行驗證。如果冒煙測試階段有問題,則可以將此版本回退給開發。
(2) . 如果冒煙測試通過那麼才會開展示全面的測試。
回歸測試及缺陷跟蹤
(1) . 回歸測試指:當我們將某個缺陷提交給開發之後,由它們進行修復,修復完成之後需要測試人員再次對其進行測試【回歸測試】
(2) . 缺陷跟蹤:指當測試人員發現某個缺陷之後需要一直對其進行狀態的跟蹤。
輸出測試報告
將當前的測試過程中產生的資料進行視覺化的輸出。方便其它人去檢視。
測試結束
將整個測試過程中產生的一些文件進行整理歸檔,方便後續版本使用。
所謂的軟體架構是用來指導我們軟體開發的一種思想。
最常見二種架構模式:b/s c/s
b—browser 瀏覽器
c—clent 客戶端
s—server 服務端
二種架構的比較
標準:相對於 cs 架構來說 bs 架構的二端都是在使用現成的成熟產品。所以 bs 會顯示的標準一些。
效率:相對於bs 架構來說 cs 中的客戶端可以分擔一些資料的處理,因此執行效率會高一些。
安全:bs 架構當中的資料傳輸都是以http 協議進行的輸出,而 http 協議又是明文輸出。可以被抓包,所以相對於 cs 架構來說 bs 就顯得不那麼安全【相對的】
公升級:bs 架構只需要在伺服器端將資料進地更新, 前台只需要重新整理頁面就可以完成公升級, 而 cs架構中必須要將二端都進行更新。
開發成本:相對於 bs 架構來說 cs 當中的客戶端需要自已開發,所以相對於來說成本會高一些
瀏覽器是什麼
瀏覽器本質就是一款軟體,安裝在作業系統之上。一般給使用者提供瀏覽網頁的服務。目前來說我們會人為的將所有瀏覽器總結出乙個所謂的五大生產廠商。
【 對於瀏覽器來說最 核心技術就是核心 】
五大瀏覽器生產廠商
1.ie( 微軟 )-----trident
2.chrome ( 谷歌 )----blink
3.firefox( 火狐 )-----gecko
4.safari( 蘋果 )-----webkit
5.opera( 歐朋 )----presto
jpg(jpeg) :這是一種可以高度保留色彩資訊的格式。
gif:所佔體積小,可以實現**
軟體質量之路(1) 軟體質量框架
林星 iamlinx 21cn.com 2004 年 3 月 自ibm developerworks 軟體質量的重要性是不言而喻的,但是當所有人都意識到它的重要性的時候,卻很少有人能夠清晰的描述出如何才能夠提高軟體質量。軟體質量框架的目的就在於提出乙個評價的原型,幫助我們分析一種方法和技術是否能夠提...
軟體測試和軟體質量
來自wikipedia 描述一種用來促進鑑定軟體的正確性 完整性 安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出間的審核或比較過程。軟體測試的經典定義 在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否滿足設計要求進行評估的過程。iso 9126 是乙個用來評估軟...
軟體測試與軟體質量
軟體質量的概念 質量是系統 部件或過程滿足客戶或者使用者需要的程度 軟體質量是軟體符合明確敘述的功能和效能需求 文件中明確描述的開發標準 以及所有專業開發的軟體都應具有的隱含特徵的程度。軟體質量的標準 軟體質量標準 就是評價乙個軟體 壞的準則 軟體質量標準主要分為兩個方向 產品質量 人們實踐產物的屬...