任何事物都是有缺陷的,軟件也不例外。
計(jì)算機(jī)是由人類來發(fā)明的,計(jì)算機(jī)軟件也是由人設(shè)計(jì)編寫的。是人就會(huì)犯錯(cuò)誤,這個(gè)是不爭的事實(shí),所以計(jì)算機(jī)軟件也必定會(huì)存在各種各樣的問題。
1、軟件缺陷案例
(1)、2018 年 10 月 29 日,印度尼西亞獅航一架波音 737 MAX 8 從首都雅加達(dá)起飛 13 分鐘后,在附近海域墜毀,機(jī)上 189 人無一幸免。2019 年 3 月 10 日,埃塞俄比亞航空一架波音 737 MAX 8 從首都亞的斯亞貝巴起飛后約 6 分鐘,飛機(jī)墜落,8 名機(jī)組人員和 149 名乘客無人生還。兩起空難與飛機(jī)自動(dòng)防失速系統(tǒng)“機(jī)動(dòng)特性增強(qiáng)系統(tǒng)”(MCAS)有關(guān);
(2)、愛國者導(dǎo)彈防御系統(tǒng)時(shí)鐘的一個(gè)很小的計(jì)時(shí)錯(cuò)誤積累起來到14小時(shí)后,跟蹤系統(tǒng)不再準(zhǔn)確,導(dǎo)致28名士兵死亡;
(4)、千年蟲問題導(dǎo)致?lián)p失已達(dá)數(shù)千億美元;
(5)、閏年蟲導(dǎo)致閏年2月29日1500多輛出租車時(shí)間性鎖表故障;
(6)、12306春運(yùn)崩潰······
這幾個(gè)都是軟件缺陷引起的例子,除了這些還有很多。隨著軟件越來越復(fù)雜,支持的功能越來越多,軟件的問題也會(huì)越來越多,這很好理解。比如我做了10件事,那么可能只有1件事會(huì)出問題,但是如果我做了100件事,那么很有可能不只有10件事有問題。這就是我們經(jīng)常說到的:做的多,錯(cuò)的多。
2、軟件測試的重要性
錯(cuò)誤從來不分大小,只是錯(cuò)誤所帶來的影響分大小。有些錯(cuò)誤影響很小,可能微乎其微,但有些錯(cuò)誤很大,世人皆知。我們沒辦法準(zhǔn)確的預(yù)知問題的影響到底有多大(這點(diǎn)在軟件上尤其明顯,可能一個(gè)小小的標(biāo)點(diǎn)符號,都可能造成系統(tǒng)的崩潰),所有我們必須經(jīng)盡可能的在軟件面向用戶使用的時(shí)候減少軟件的問題(沒有任何一個(gè)人能保證一款軟件沒有任何問題)。這就是一個(gè)軟件測試人員需要完成的工作,要盡可能的發(fā)現(xiàn)軟件缺陷,并推動(dòng)問題的解決。
任何的產(chǎn)品,都不希望出現(xiàn)質(zhì)量問題。如何發(fā)現(xiàn)軟件缺陷,是一個(gè)合格的軟件測試的評判標(biāo)準(zhǔn),如何發(fā)現(xiàn)潛在的軟件缺陷,是一個(gè)優(yōu)秀的軟件測試的職責(zé),也是每一個(gè)軟件測試從業(yè)人員的目標(biāo)。
3、軟件測試分類:
目前業(yè)內(nèi)大致將軟件測試劃分如下:
A、黑盒測試、白盒測試
B、單元測試、集成測試、系統(tǒng)測試
C、手工測試、自動(dòng)化測試
D、功能測試、性能測試、安全測試、接口測試
4、其余相關(guān)問題:
1、軟件產(chǎn)品規(guī)格說明書往往是軟件缺陷存在最多的地方,主要原因有哪幾種?
(1)、軟件產(chǎn)品還沒有設(shè)計(jì)開發(fā),只能完全靠想象去描述,導(dǎo)致軟件中的特性不夠清晰。
(2)、需求變化不一致性,用戶的需求會(huì)不斷變化,若在說明書中沒有得到正確描述,容易引起矛盾。
(3)、整個(gè)開發(fā)隊(duì)伍中缺乏充分溝通,設(shè)計(jì)師、項(xiàng)目經(jīng)理和開發(fā)人員得到的信息差異過多。
(4)、不夠重視規(guī)格說明書。
2、單元測試、系統(tǒng)測試、集成測試的區(qū)別:
不同的測試階段,針對的測試問題是不一樣的。
(1)、單元測試:程序內(nèi)部代碼和結(jié)構(gòu)問題。
(2)、集成測試:模塊和模塊之間的接口和參數(shù)傳遞規(guī)則的問題。
(3)、系統(tǒng)測試:整個(gè)系統(tǒng),模擬用戶最終使用時(shí)可能出現(xiàn)的問題。