理論上講,做軟件測試的要求有什么就要懂什么,不是什么人都可以做的。但實(shí)際上測試工程師是有初、中、高三級之分的。而初級工程師所需要的知識不多,一般只需要學(xué)過(guò)簡(jiǎn)單的理論即可。中、高級相信需要一段過(guò)渡時(shí)期的,它們都必須以工具為主。
至于教材,可以說(shuō)所有的計算機教材都是其中的一部分,就差你是什么方向的測試工作。一般來(lái)說(shuō),開(kāi)始的時(shí)候,你只需要一本《軟件測試理論》入門(mén)即可。有空可以看看《測試的藝術(shù)》一書(shū)(得益網(wǎng)有得下載)。
什么數據庫\開(kāi)發(fā)語(yǔ)言,這些與軟件測試都是什么關(guān)系???
至于這個(gè)問(wèn)題,首先要說(shuō)明,軟件測試一般可分為:?jiǎn)卧獪y試、集成測試、系統測試、驗收測試。單元測試一方面是直接對代碼進(jìn)行直讀,所以它要求必需懂得開(kāi)發(fā)語(yǔ)言,另一方面它要寫(xiě)驅動(dòng)和樁,所以也要懂開(kāi)發(fā)語(yǔ)言。(一般單元測試都是要開(kāi)發(fā)人員扶助的)。而數據庫,簡(jiǎn)單來(lái)說(shuō)每當我們要驗證一條記錄的所有信息是否完整,都需要進(jìn)入數據庫中查看,查看是否有漏某個(gè)字段;而從更高層次來(lái)講,它涉及到系統性能調優(yōu)問(wèn)題。
軟件測試基礎學(xué)習需要掌握哪些內容?首先,要有寬泛的計算機基礎知識。微機原理,數據結構,數據庫,操作系統原理,編譯原理,邏輯,編程語(yǔ)言,網(wǎng)絡(luò ),等等,都要系統地學(xué)習過(guò)。都精通不大可能,因為人的興趣都不相同,但是這些功課的基本知識點(diǎn)是應當了解的。
我們在談到職業(yè)的類(lèi)別的時(shí)候,我們可以說(shuō)C程序員,C#程序員,Java程序員,而沒(méi)有C測試員,C#測試員,Java測試員,程序員可以只擅長(cháng)某一門(mén)編程語(yǔ)言,測試員卻不行。為什么呢?
測試員是代表用戶(hù)的,在做測試的時(shí)候,他(她)需要考慮到方方面面的事情。例如對于一個(gè)用C寫(xiě)的上網(wǎng)撥號程序,測試員需要考慮:
(1) 程序的功能是否正確;(要求計算機知識)
(2) 是否符合用戶(hù)的使用習慣;(要求界面設計知識和換位思考能力)
(3) 性能是否滿(mǎn)足要求,例如長(cháng)時(shí)間使用;穩定性;(要求深入的計算機知識)
(4) 是否能夠滿(mǎn)足用戶(hù)可能的不同操作系統的要求;(要求計算機知識)
(5) 如果在全球發(fā)布,是否滿(mǎn)足不同語(yǔ)言和文化的需求;(要求軟件國際化測試知識)
(6) 如何搭建測試環(huán)境;(動(dòng)手能力,硬件知識)
(7) 做代碼檢查;(比較深入的C語(yǔ)言知識)
(8) …
所以,各方面都了解一點(diǎn),你在做測試的過(guò)程當中你會(huì )感覺(jué)順手得多。如果某寫(xiě)方面還差一些,沒(méi)有關(guān)系,計算機行業(yè)的特點(diǎn)就是邊做邊學(xué),只要是個(gè)有心人,學(xué)習是很快的。
其次,要掌握一門(mén)編程語(yǔ)言。原因很簡(jiǎn)單:一行代碼不會(huì ),你始終是門(mén)外漢。
具備計算機操作基礎:這點(diǎn)對于計算機專(zhuān)業(yè)的學(xué)生沒(méi)有什么大問(wèn)題的,會(huì )使用電腦操作、會(huì )簡(jiǎn)單Office軟件。
如果不會(huì )呢,可以自己在網(wǎng)上找資料自學(xué),很簡(jiǎn)單。具備軟件測試基礎知識:軟件測試基礎理論知識。
實(shí)踐需要理論知識指導。我們可以從相關(guān)書(shū)籍或者網(wǎng)上找到軟件測試基礎理論知識,具有詳細的理論解釋。
具備一定的數據庫操作技術(shù):對于常用的數據庫,簡(jiǎn)單的操作要具備。學(xué)習數據庫可以自己安裝一個(gè)數據庫,常練習。
具備一定的邏輯推理能力:這點(diǎn)主要偏向于寫(xiě)測試用例。測試用例是軟件測試的核心。
寫(xiě)測試用例,可以參考網(wǎng)絡(luò )一些比較經(jīng)典的例子,模仿寫(xiě)。寫(xiě)多了經(jīng)驗就有了。
掌握軟件測試缺陷管理工具:QC、Mantis、JIAR等。軟件測試離不開(kāi)缺陷管理。
軟件測試缺陷管理工具有效管理缺陷、提高軟件質(zhì)量。這方面的知識建議從網(wǎng)絡(luò )或者書(shū)籍途徑學(xué)習。
掌握軟件測試工具:Loadrunner、ruby、QTP等,學(xué)習測試工具提高測試效率,這也有助于你測試職業(yè)生涯的規劃。學(xué)會(huì )一門(mén)開(kāi)發(fā)腳本語(yǔ)言:學(xué)會(huì )開(kāi)發(fā)腳本語(yǔ)言有助于學(xué)習軟件測試工具。
根據自己的興趣和基礎選擇學(xué)習。
需要以下材料
1、軟件測試基礎知識:
測試計劃編寫(xiě)、設計測試用例、編寫(xiě)測試報告、編寫(xiě)BUG報告單、跟蹤BUG修復情況、還需要良好的溝通能力、以及各種測試階段所使用的測試方法、單元測試、功能測試、集成測試、系統測試等等、CMMI /ISO9001
2、各種測試工具的使用:
我們在測試的工作中為了能夠提高工作效率進(jìn)程會(huì )用到很多工具、QTP、LR、QC、TD、Bugfree、VSS、SVN等等工具、雖然說(shuō)工具不是萬(wàn)能的但是工具能為我們提高工作效率所以不能吧工具當神一樣看待、但是必須得會(huì )熟練的使用
3、操作系統相關(guān)知識:
Windows、linux、uinx這些都必須會(huì )使用、而且不僅僅是簡(jiǎn)單的操作、一般的服務(wù)管理、注冊表編輯、命令行操作都需要會(huì )、可以想象下一個(gè)連apache服務(wù)都不會(huì )安裝配置的人、誰(shuí)能想象你可以做好基于apache環(huán)境的測試工作、什么?不知道怎么查看磁盤(pán)壓力、IO數據。windows linux都有提供自帶的工具可用于查看這些數據、perfmon、top什么的。
4、數據庫知識:
現在Oracle的DBA待遇比一般的開(kāi)發(fā)人員待遇還高就知道數據庫在企業(yè)中的重要性了、作為測試人員雖然不需要有DBA的能力、但是基本的數據庫操作你必須得會(huì )把、不管是Oracle、DB2、MSsql還是mysql最少都應該能熟悉使用其中的一二。
5、計算機硬件知識:
做過(guò)性能測試的朋友都知道在性能測試過(guò)程中硬件性能也是一個(gè)非常重要的指標、CPU、內存、IO、帶寬等等、如果你是做硬件測試的。那么就更不用說(shuō)了。交換機、路由器、防火墻這些設備都需要有所了解。
6、網(wǎng)絡(luò )協(xié)議:
如果你還知道TCP和UDP有什么不一樣的話(huà)請趕快去補充點(diǎn)知識吧、互聯(lián)網(wǎng)時(shí)代、一切都通過(guò)網(wǎng)絡(luò )傳輸、常用協(xié)議必須得了解、曾經(jīng)面試了一個(gè)測試工程師做了2年的測試居然不知道自己測試軟件使用什么協(xié)議、這樣的人是你的話(huà)你敢招么?
7、開(kāi)發(fā)語(yǔ)言即代碼編寫(xiě)能力:
雖然不會(huì )寫(xiě)代碼也能做測試、但是如果你想做到高級測試工程師以上、那么代碼編寫(xiě)能力就是必選項、如果不會(huì )寫(xiě)代碼、那么你不可能成為高級測試。高級測試工程師的一部分工作就是在寫(xiě)測試工具。雖然測試也需要寫(xiě)代碼但不需要和開(kāi)發(fā)一樣那么精通某一門(mén)語(yǔ)言、可是測試卻需要了解很多門(mén)開(kāi)發(fā)語(yǔ)言(舉一個(gè)簡(jiǎn)單的例子:你現在所在的項目從C++語(yǔ)言、2年后你換工作了、新公司的開(kāi)發(fā)語(yǔ)言是java或者是VB什么的)所以在開(kāi)發(fā)語(yǔ)言中測試需要更廣的學(xué)習。
8、行業(yè)知識:
行業(yè)知識之所以寫(xiě)在最后面是因為前面的7條我們都可以通過(guò)學(xué)習來(lái)掌握、但是唯獨行業(yè)知識卻只能通過(guò)工作經(jīng)驗來(lái)積累、不要說(shuō)你去看幾本書(shū)就知道通信行業(yè)、醫療行業(yè)、或者是航天行業(yè)、你認為在書(shū)本上面能學(xué)到么?
由于行業(yè)知識的特殊性所以建議朋友們不要頻繁的跳槽、經(jīng)驗的積累是需要時(shí)間來(lái)沉淀的。
9、具有一定的美學(xué)觀(guān):
這個(gè)說(shuō)起來(lái)比較拗口一點(diǎn)、簡(jiǎn)單來(lái)說(shuō)不管是開(kāi)發(fā)活動(dòng)還是測試活動(dòng)、最后的目標就是將產(chǎn)品推向市場(chǎng)、而且得到用戶(hù)的認可。所以如果產(chǎn)品在需求分析階段就出現了偏離用戶(hù)航道、那么就算測試 開(kāi)發(fā)做得再好這個(gè)項目也是一樣會(huì )失敗。所以各位如果有幸能夠參加需求評審的話(huà)、請不要吝嗇你的言論。
10、請不要忘記時(shí)刻學(xué)習著(zhù):
這點(diǎn)我相信大家應該都能理解所以不用寫(xiě)什么:僅此一點(diǎn)“不學(xué)習就會(huì )落后”
總結:說(shuō)了那么多技能或者是說(shuō)是需要掌握的技術(shù)、如果你沒(méi)有一顆發(fā)現缺陷之美的心態(tài)、沒(méi)有一顆以提高質(zhì)量為前提來(lái)投入工作中、那么就算你其他做得再好也不過(guò)是萬(wàn)千軟件測試從業(yè)人員中的一枚。測試活動(dòng)大部分用于發(fā)現缺陷、而發(fā)現缺陷之后的工作尤為重要:怎么樣從發(fā)現缺陷到提高質(zhì)量。
1. 具備計算機操作基礎:這點(diǎn)對于計算機專(zhuān)業(yè)的學(xué)生沒(méi)有什么大問(wèn)題的,會(huì )使用電腦操作、會(huì )簡(jiǎn)單Office軟件。如果不會(huì )呢,可以自己在網(wǎng)上找資料自學(xué),很簡(jiǎn)單。
2. 具備軟件測試基礎知識:軟件測試基礎理論知識。實(shí)踐需要理論知識指導。我們可以從相關(guān)書(shū)籍或者網(wǎng)上找到軟件測試基礎理論知識,具有詳細的理論解釋。
3. 具備一定的數據庫操作技術(shù):對于常用的數據庫,簡(jiǎn)單的操作要具備。學(xué)習數據庫可以自己安裝一個(gè)數據庫,常練習。
4. 具備一定的邏輯推理能力:這點(diǎn)主要偏向于寫(xiě)測試用例。測試用例是軟件測試的核心。寫(xiě)測試用例,可以參考網(wǎng)絡(luò )一些比較經(jīng)典的例子,模仿寫(xiě)。寫(xiě)多了經(jīng)驗就有了。
5. 掌握軟件測試缺陷管理工具:QC、Mantis、JIAR等。軟件測試離不開(kāi)缺陷管理。軟件測試缺陷管理工具有效管理缺陷、提高軟件質(zhì)量。這方面的知識建議從網(wǎng)絡(luò )或者書(shū)籍途徑學(xué)習。
6. 掌握軟件測試工具:Loadrunner、ruby、QTP等,學(xué)習測試工具提高測試效率,這也有助于你測試職業(yè)生涯的規劃。
7. 學(xué)會(huì )一門(mén)開(kāi)發(fā)腳本語(yǔ)言:學(xué)會(huì )開(kāi)發(fā)腳本語(yǔ)言有助于學(xué)習軟件測試工具。根據自己的興趣和基礎選擇學(xué)習。
首先需要了解的就是計算機系統組成介紹,包括計算機系統的組成、計算機系統抽象層次結構、軟件的定義、軟件的基本分類(lèi)。
要熟悉操作系統的定義和主要功能,常用的操作系統。還要熟悉進(jìn)制轉換,包括數制、十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制以及它們之間的轉換。
熟悉邏輯代數的定義、基本邏輯關(guān)系與運算、邏輯變量。掌握計算機網(wǎng)絡(luò )基礎,包括認識網(wǎng)絡(luò )、網(wǎng)絡(luò )協(xié)議、分層思想、常見(jiàn)的網(wǎng)絡(luò )分層模型、各層對應功能和協(xié)議。
其次要掌握軟件的生命周期,熟悉軟件開(kāi)發(fā)過(guò)程模型,包括瀑布模型,快速原型模型、螺旋模型。掌握軟件測試過(guò)程模型,包括V模型、W模型。
為接下來(lái)軟件測試系統化的學(xué)習打好基礎。還要掌握軟件測試的定義,熟悉軟件測試的目的、軟件測試的意義,掌握軟件測試工作流程和實(shí)際軟件工作流程。
通過(guò)對軟件測試概論的學(xué)習,對軟件測試工作流程做到熟悉,培養未來(lái)測試工作中的良好習慣。另外還需要掌握軟件缺陷定義,熟悉缺陷產(chǎn)生的原因和軟件缺陷第二定義,掌握缺陷報告編寫(xiě)。
通過(guò)對軟件缺陷相關(guān)知識的學(xué)習,學(xué)會(huì )日常工作中缺陷報告的提交,明確bug的嚴重程度及優(yōu)先級。更多科普就在IT優(yōu)就業(yè)。
軟件測試是一門(mén)新興行業(yè),平均薪酬不錯,而且入門(mén)簡(jiǎn)單。需要掌握一定的開(kāi)發(fā)語(yǔ)言基礎,相關(guān)網(wǎng)絡(luò )和數據庫的基礎知識,以及主要的軟件測試理論。基礎學(xué)習的話(huà)有人引導就會(huì )相當簡(jiǎn)單,因此建議最好找一個(gè)做測試工作的朋友指導學(xué)習效率最高。如果是完全自學(xué),建議安排好時(shí)間,幾方面知識學(xué)習同時(shí)開(kāi)始:
1.軟件測試基礎理論和方法。這塊的東西學(xué)起來(lái)其實(shí)不多,重要的是實(shí)際的應用。主要掌握黑白盒測試、測試策略、測試方法、測試設計、測試報告等相關(guān)理論。在網(wǎng)上或書(shū)店隨便找一份軟件測試學(xué)習的書(shū)籍都夠用了。
2.網(wǎng)絡(luò )和數據庫基礎知識。現在的軟件基本都離不開(kāi)網(wǎng)絡(luò )和數據庫應用。所以這兩塊的基礎知識也是必須掌握的。不需要太深,網(wǎng)絡(luò )知道互聯(lián)網(wǎng)發(fā)展,現代網(wǎng)絡(luò )架構,IP分配知識,網(wǎng)絡(luò )七層協(xié)議等,數據庫要會(huì )基本的增刪改查語(yǔ)句操作。這個(gè)在網(wǎng)上找一些資料和練習題做一做就可以了。
3.開(kāi)發(fā)語(yǔ)言基礎。這個(gè)很重要。測試要深入發(fā)展,掌握至少一門(mén)開(kāi)發(fā)語(yǔ)言是很必要的。實(shí)際測試的技能需求是大于開(kāi)發(fā)的,除了常用開(kāi)發(fā)語(yǔ)言,最好是能掌握一門(mén)腳本語(yǔ)言,作為測試自動(dòng)化能力拓展的基礎。這是通向高級測試的必備技能。這塊需要投入很大,但不需要在工作初期要求太高,可以再工作中不斷提升。自己選定一門(mén)開(kāi)發(fā)語(yǔ)言和腳本語(yǔ)言,持續學(xué)習即可。
1)熟悉計算機基礎知識;
(2)熟悉操作系統、數據庫、中間件、程序設計語(yǔ)言基礎知識;
(3)熟悉計算機網(wǎng)絡(luò )基礎知識;
(4)熟悉軟件工程知識,理解軟件開(kāi)發(fā)方法及過(guò)程;
(5)熟悉軟件質(zhì)量及軟件質(zhì)量管理基礎知識;
(6)熟悉軟件測試標準;
(7)掌握軟件測試技術(shù)及方法;
(8)掌握軟件測試項目管理知識;
(9)掌握C語(yǔ)言以及C++或Java語(yǔ)言程序設計技術(shù);
(10)了解信息化及信息安全基礎知識;
(11)熟悉知識產(chǎn)權相關(guān)法律、法規;
(12)正確閱讀并理解相關(guān)領(lǐng)域的英文資料。
通過(guò)本考試的合格人員能在掌握軟件工程與軟件測試知識的基礎上,運用軟件測試管理方法、軟件測試策略、軟件測試技術(shù),獨立承擔軟件測試項目;具有工程師的實(shí)際工作能力和業(yè)務(wù)水平。
軟件測試是一個(gè)入門(mén)簡(jiǎn)單、但深入難的工作
入門(mén)的時(shí)候只要會(huì )看懂中文、理解能力沒(méi)問(wèn)題就可以按照測試用例來(lái)執行用例了
進(jìn)一步之后需要會(huì )的知識會(huì )越來(lái)越多
1、操作系統的知識(什么軟件都是運行在操作系統之上的、一般的操作必須要會(huì ))
2、數據庫知識(現在還能找到多少不需要數據庫的大型軟件捏?)
3、計算機網(wǎng)絡(luò )(通信呀通信、千萬(wàn)不要TCP和UDP都分不清楚)
4、計算機硬件(你要是C/S架構的測試或者是做性能測試、那么計算機硬件都是必修課了、總得知道IO是什么IOPS又是啥)
5、各種測試工具的使用、什么QC/TD/BUGfree/QTP/LR之類(lèi)的 不需要樣樣精通但是必須要熟練使用
6、軟件測試基礎知識(這年頭沒(méi)有知識是萬(wàn)萬(wàn)不能的、軟件測試基礎知識其實(shí)買(mǎi)幾本書(shū)好好看看就能學(xué)個(gè)差不多了)
7、開(kāi)發(fā)語(yǔ)言(做到高級軟件測試的人都是會(huì )寫(xiě)點(diǎn)小工具的)
8、測試環(huán)境配置:這個(gè)要說(shuō)下、我在做配置管理的時(shí)候發(fā)現很多測試人員居然連自己的測試環(huán)境都配置不好、一個(gè)連自己的測試環(huán)境都不會(huì )配置的人會(huì )成為一個(gè)合格的測試么。(你要測試web的apache、tomcat、iis之類(lèi)的得會(huì )配置吧)
PS:希望你不要被我寫(xiě)的這么多東西嚇到了、這些知識是在軟件測試的進(jìn)化過(guò)程中慢慢積累起來(lái)的、不是所有人都一開(kāi)始就會(huì )了、你是計算機專(zhuān)業(yè)畢業(yè)的。那么計算機硬件、網(wǎng)絡(luò )、操作系統、數據庫什么的都應該在學(xué)校的時(shí)候有學(xué)到的、所以應該不是問(wèn)題
最后:祝你好運
【IT168 技術(shù)文章】 一、軟件測試概述 軟件測試是軟件開(kāi)發(fā)過(guò)程的重要組成部分,是用來(lái)確認一個(gè)程序的品質(zhì)或性能是否符合開(kāi)發(fā)之前所提出的一些要求。
軟件測試的目的,第一是確認軟件的質(zhì)量,其一方面是確認軟件做了你所期望的事情(Do the right thing),另一方面是確認軟件以正確的方式來(lái)做了這個(gè)事件(Do it right)。第二是提供信息,比如提供給開(kāi)發(fā)人員或程序經(jīng)理的反饋信息,為風(fēng)險評估所準備的信息。
第三軟件測試不僅是在測試軟件產(chǎn)品的本身,而且還包括軟件開(kāi)發(fā)的過(guò)程。如果一個(gè)軟件產(chǎn)品開(kāi)發(fā)完成之后發(fā)現了很多問(wèn)題,這說(shuō)明此軟件開(kāi)發(fā)過(guò)程很可能是有缺陷的。
因此軟件測試的第三個(gè)目的是保證整個(gè)軟件開(kāi)發(fā)過(guò)程是高質(zhì)量的。 軟件質(zhì)量是由幾個(gè)方面來(lái)衡量的:一、在正確的時(shí)間用正確的的方法把一個(gè)工作做正確(Doing the right things right at the right time.)。
二、符合一些應用標準的要求,比如不同國家的用戶(hù)不同的操作習慣和要求,項目工程中的可維護性、可測試性等要求。三、質(zhì)量本身就是軟件達到了最開(kāi)始所設定的要求,而代碼的優(yōu)美或精巧的技巧并不代表軟件的高質(zhì)量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。
四、質(zhì)量也代表著(zhù)它符合客戶(hù)的需要(Quality also means “meet customer needs”.)。作為軟件測試這個(gè)行業(yè),最重要的一件事就是從客戶(hù)的需求出發(fā),從客戶(hù)的角度去看產(chǎn)品,客戶(hù)會(huì )怎么去使用這個(gè)產(chǎn)品,使用過(guò)程中會(huì )遇到什么樣的問(wèn)題。
只有這些問(wèn)題都解決了,軟件產(chǎn)品的質(zhì)量才可以說(shuō)是上去了。 測試人員在軟件開(kāi)發(fā)過(guò)程中的任務(wù): 1、尋找Bug; 2、避免軟件開(kāi)發(fā)過(guò)程中的缺陷; 3、衡量軟件的品質(zhì); 4、關(guān)注用戶(hù)的需求。
總的目標是:確保軟件的質(zhì)量。二、常用的軟件測試方法 1.黑盒測試 黑盒測試顧名思義就是將被測系統看成一個(gè)黑盒,從外界取得輸入,然后再輸出。
整個(gè)測試基于需求文檔,看是否能滿(mǎn)足需求文檔中的所有要求。黑盒測試要求測試者在測試時(shí)不能使用與被測系統內部結構相關(guān)的知識或經(jīng)驗,它適用于對系統的功能進(jìn)行測試。
黑盒測試的優(yōu)點(diǎn)有: 1)比較簡(jiǎn)單,不需要了解程序內部的代碼及實(shí)現; 2)與軟件的內部實(shí)現無(wú)關(guān); 3)從用戶(hù)角度出發(fā),能很容易的知道用戶(hù)會(huì )用到哪些功能,會(huì )遇到哪些問(wèn)題; 4)基于軟件開(kāi)發(fā)文檔,所以也能知道軟件實(shí)現了文檔中的哪些功能; 5)在做軟件自動(dòng)化測試時(shí)較為方便。 黑盒測試的缺點(diǎn)有: 1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達到總代碼量的30%; 2)自動(dòng)化測試的復用性較低。
2.白盒測試 白盒測試是指在測試時(shí)能夠了解被測對象的結構,可以查閱被測代碼內容的測試工作。它需要知道程序內部的設計結構及具體的代碼實(shí)現,并以此為基礎來(lái)設計測試用例。
如下例程序代碼:HRESULT Play( char* pszFileName ){if ( NULL == pszFileName )return;if ( STATE_OPENED == currentState ){PlayTheFile();}return;}讀了代碼之后可以知道,先要檢查一個(gè)字符串是否為空,然后再根據播放器當前的狀態(tài)來(lái)執行相應的動(dòng)作。可以這樣設計一些測試用例:比如字符串(文件)為空的話(huà)會(huì )出現什么情況;如果此時(shí)播放器的狀態(tài)是文件剛打開(kāi),會(huì )是什么情況;如果文件已經(jīng)在播放,再調用這個(gè)函數會(huì )是什么情況。
也就是說(shuō),根據播放器內部狀態(tài)的不同,可以設計很多不同的測試用例。這些是在純粹做黑盒測試時(shí)不一定能做到的事情。
白盒測試的直接好處就是知道所設計的測試用例在代碼級上哪些地方被忽略掉,它的優(yōu)點(diǎn)是幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質(zhì)量,發(fā)現代碼中隱藏的問(wèn)題。 白盒測試的缺點(diǎn)有: 1)程序運行會(huì )有很多不同的路徑,不可能測試所有的運行路徑; 2)測試基于代碼,只能測試開(kāi)發(fā)人員做的對不對,而不能知道設計的正確與否,可能會(huì )漏掉一些功能需求; 3)系統龐大時(shí),測試開(kāi)銷(xiāo)會(huì )非常大。
3.基于風(fēng)險的測試 基于風(fēng)險的測試是指評估測試的優(yōu)先級,先做高優(yōu)先級的測試,如果時(shí)間或精力不夠,低優(yōu)先級的測試可以暫時(shí)先不做。有如下一個(gè)圖,橫軸代表影響,豎軸代表概率,根據一個(gè)軟件的特點(diǎn)來(lái)確定:如果一個(gè)功能出了問(wèn)題,它對整個(gè)產(chǎn)品的影響有多大,這個(gè)功能出問(wèn)題的概率有多大?如果出問(wèn)題的概率很大,出了問(wèn)題對整個(gè)產(chǎn)品的影響也很大,那么在測試時(shí)就一定要覆蓋到。
對于一個(gè)用戶(hù)很少用到的功能,出問(wèn)題的概率很小,就算出了問(wèn)題的影響也不是很大,那么如果時(shí)間比較緊的話(huà),就可以考慮不測試。基于風(fēng)險測試的兩個(gè)決定因素就是:該功能出問(wèn)題對用戶(hù)的影響有多大,出問(wèn)題的概率有多大。
其它一些影響因素還有復雜性、可用性、依賴(lài)性、可修改性等。測試人員主要根據事情的輕重緩急來(lái)決定測試工作的重點(diǎn)。
4. 基于模型的測試 模型實(shí)際上就是用語(yǔ)言把一個(gè)系統的行為描述出來(lái),定義出它可能的各種狀態(tài),以及它們之間的轉換關(guān)系,即狀態(tài)轉換圖。模型是系統的抽象。
基于模型的測試是利用模型來(lái)生成相應的測試用例,然后根據實(shí)際結果和原先預想的結果的差異來(lái)測試系統,過(guò)程如下圖所示。三、軟件測試的類(lèi)型 常見(jiàn)的軟件測試類(lèi)型有: BVT 。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.712秒