什么是软件测试 ?软件测试的意义是什么?
基本介紹
一,軟件測試定義
通過手工或者工具對“被測對象”進行測試操作,從而驗證實際結果與預期結果之間是否存在差異。
(打一巴掌還一口,差異就是bug簡稱缺陷)
二,軟件測試的作用
1,通過測試工作可以發現并修復軟件當中存在的缺陷,從而提高用戶對產品的使用信心。
2,測試可以記錄軟件運行過程中產生的一些數據,從而為決策提供數據支持。(12306購票,同一時間訪問量沒有考慮到,測試過程中設定1億用戶到10億用戶,公共網絡某一時段)
3,測試可以降低同類型產品開發遇到問題的風險。(讓別人先去看看,自己再去,實驗品,同類型:qq-微信)
三,測試原則
所謂的測試原則指的就是我們在執行測試工作時必須要遵守得一些原則:
1,測試證明軟件存在缺陷。(無論做多少只能證明當前軟件是有缺陷的)
2,不能執行窮盡測試。(沒有辦法把所有情況都羅列出來,所以任何的測試工作都與結束的時候,從現在到死都測不完,進公司一年就測一個功能點,測得的很全,肯定不要你)
3,缺陷存在群集現象。(28理論,核心=20%,非核心=80%)
(qq功能常用的核心功能很小的一部分20%, 其他功能80%都不是核心功能,核心功能搶占市場,要集中所有的人力物力財力測核心功能,100人測20%,1人測80%。 那種測出問題的機率大? 100雙眼睛盯著一個人發現的多。 會發現更多的缺陷=缺陷群集)
在實際工作中我們會集中測試20%的核心功能,所以這個部分發現缺陷的幾率就會高于80%。因此我們就會遇到缺陷都集中在20%功能模塊里的現象。
4,某些測試需要依賴特殊的環境。(南北方溫度不同,手機電池低溫下未做測試)
5,測試應盡早介入:為了更多的發現和更好的解決軟件中的缺陷,我們追求測試工作盡早的展開。
(發現bug 開發人員要改 改完保證沒有問題不行 你說沒問題就沒問題啊,必須在測試,關聯測試,牽一發而動全身)
6,殺蟲劑現象:同樣的一個測試用例不能重復的執行多次,因為軟件會對她產生免疫。(產生抗體,我告訴你2.3+3.7不等于6 你會怎么做呢?想盡一切辦法去做改成好用的,所以再測試的時候就不能在用同樣的數據,所以開發人員討厭測試人員)
7,不存在缺陷謬論。
(我的軟件沒問題?謬論,指鼻子罵他。)
測試對象介紹
對于當前的測試行業來說我們最經常測試的主體就是軟件(主體功能),但是需要我們明白的是一個軟件也不僅僅只有功能需要測試。我們可以將軟件分為三個部分組成:功能集合+使用說明書+配置數據
配置數據:默認提供給客戶的也要是對的(冰箱)。地圖軟件,淘寶打開有東西吧 默認數據 為了讓客戶快速的看到網站默認的東西,手機買回來會自帶的軟件都屬于配置數據。
對于一款軟件來說從無到有需要一個過程,我們把可以將這個過程分為不同階段,然后每個階段都會有相應的測試。
1,需求分析階段:各種需求規格說明書
(用戶有可能怎樣用,用戶按照他的操作會得到一個什么樣的結果,寫出來 測試人員拿到這個說明書進行設計,不要覺得這個連軟件都沒有要怎么測呢,字錯了都算測試,不是所有的功能都能實現,不可行的需求,測試階段提出建議,半年之內從地球到火星,可能嗎?)
2,軟件架構設計:API接口文檔。(接口測試)
設計的概念:房屋構造
Cto:首席技術執行官,不需要做底層代碼編寫,站在一定的高度,把整個公司的框架搭起來,要實現多少個功能,每個功能有多少個模塊,每個模塊又有多少個小的模塊,畫好了出一套文檔,程序員拿到了做開發工作。
接口文檔:接口測試
3,編碼時間階段:源代碼。(白盒測試,黑盒測試)
a,確定想法做什么 b,怎么做,c,動手做
這一階段我們測試對象是源代碼。(如果測試人員也會代碼,那就是兩個程序員,成本太高,)
如果可以的話就可以給客戶用了。
4,系統功能使用(測試階段):這一階段測試對象是軟件功能主體,當前行業做的最多的一種測試。
相當于讓測試人員充當客戶,對功能主體進行驗證,OK了,拿到市面上給客戶用。
總結:不要認為測試的對象就是軟件,這是狹義的錯誤的。
軟件本身有三個部分組成:
1,軟件有一堆的功能指令,(關閉,最小化)功能說明書,使用人員要培訓。
2,默認的配置數據。(拿到客戶面前給客戶看的時候第一次展示的內容,是對的)
3,一款軟件從沒有到有需要很多階段,作為測試人員每個階段都有要測的東西。(測試需求文檔,測試api文檔,測試源代碼,測試主體功能)
測試級別
軟件的開發都會依據相應的開發模型,則測試級別指的就是在這個模型當中我們認為定義的開發步驟。其中對于測試來說我們最常見的一種級別分類如下:
1,單元測試(UT unit test):在軟件測試中單元指的就是組成軟件最小的底層代碼結構,一般就是類,函數,組件。(當下的軟件測試行業,不會可以要求測試人員對源代碼進行測試,誰開發誰測試)
小區的單元,小模塊進行測試
就是對底層的源代碼進行測試,組成構成當前源代碼最小的部分,常見的有三種類型:類,函數,組件(不明白代碼沒事,找到集合,最小的組成部分)。不管界面多漂亮 ,只管底層的代碼對不對,邏輯結果對比不對。
2,集成測試(IT system ingertation test):
將不同的多個單元模塊組合在一起,然后驗證它們之間溝通的“橋梁”是否能正常工作(換成人話:接口測試 )。單元是最小部件,集成就時組合在一起。
例一:小汽車,雨刷,擋風玻璃。組合三米長的雨刷和擋風玻璃在一起不行了。
例二:兩人沒結婚前沒事,一結婚在一起天天吵架。
3,系統測試(ST system test):這是當前行業做的最多的一種測試,有測試人員充當用戶然后對軟件的功能主體進行測試。
4,驗收測試:
核心:為了讓用戶為這個軟件進行買單(不是為了挑毛病,)
例子:我是包工頭,在外邊幾經周折接了一個小工程,前期需要投錢進去比如100萬,把樓蓋出來了,然后找讓我蓋樓的(托關系才接到的活)人來驗收,看看我蓋的怎么樣,當我讓他驗收時是希望她找到毛病還是不希望。肯定是不希望。我不可能自己花了100萬然后跟他說你給我挑挑毛病吧,那不是我有毛病嗎。
(1)α測試---內測(公司內部,測試開發在一起)
(2)β測試---公測(提問題,反饋,郵箱反饋,獎勵)
(3)UAT(user acceptance test)測試---由客戶派出本公司業務精通人員來使用該軟件,從而對功能進行測試。
客戶花錢買軟件,客戶覺得你們懂技術但不一定懂我們的業務,所以客戶要站在自己的業務需求角度,派出本公司業務精通人員來對軟件進行使用測試(場景)。
系統測試分類
1,功能測試:驗證當前的軟件主體功能是否可用。
你告訴我好用不行 我得驗證。
2,兼容性測試:驗證當前軟件在不同的環境下是否還可以使用。
Windouw /Linux,瀏覽器,客戶端:(pad,電視,手機,電腦)
3,安全測試:驗證軟件是否只是能授權用戶提供功能使用。
銀行卡,密碼保護,次數限定。
4,性能測試:
相對于當前軟件消耗的資源,它的產出能力。
性能:高大上。
例子:我作為一個人在這里需要扯著嗓子吼著給你們講課,你可以有這么兩個選項。
第一個:你讓我一天吃三頓飯,我能給你吼一天。
第二種:你讓我一天吃兩頓飯,讓我給你吼兩天。
對比一下,哪一個效率更高一些?第二種效率高一些,人還是我這個人。
總結:1234打游戲升級一樣,對于剛入行 就做功能測試,是立身之本,然后做兼容,做安全,最后一步做性能測試。
總結
以上是生活随笔為你收集整理的什么是软件测试 ?软件测试的意义是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArcGIS如何拼接两张栅格图像
- 下一篇: JSP+ssm计算机毕业设计创意产品众筹