理論上講,做軟件測(cè)試的要求有什么就要懂什么,不是什么人都可以做的。但實(shí)際上測(cè)試工程師是有初、中、高三級(jí)之分的。而初級(jí)工程師所需要的知識(shí)不多,一般只需要學(xué)過(guò)簡(jiǎn)單的理論即可。中、高級(jí)相信需要一段過(guò)渡時(shí)期的,它們都必須以工具為主。
至于教材,可以說(shuō)所有的計(jì)算機(jī)教材都是其中的一部分,就差你是什么方向的測(cè)試工作。一般來(lái)說(shuō),開(kāi)始的時(shí)候,你只需要一本《軟件測(cè)試?yán)碚摗啡腴T即可。有空可以看看《測(cè)試的藝術(shù)》一書(得益網(wǎng)有得下載)。
什么數(shù)據(jù)庫(kù)\開(kāi)發(fā)語(yǔ)言,這些與軟件測(cè)試都是什么關(guān)系???
至于這個(gè)問(wèn)題,首先要說(shuō)明,軟件測(cè)試一般可分為:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。單元測(cè)試一方面是直接對(duì)代碼進(jìn)行直讀,所以它要求必需懂得開(kāi)發(fā)語(yǔ)言,另一方面它要寫驅(qū)動(dòng)和樁,所以也要懂開(kāi)發(fā)語(yǔ)言。(一般單元測(cè)試都是要開(kāi)發(fā)人員扶助的)。而數(shù)據(jù)庫(kù),簡(jiǎn)單來(lái)說(shuō)每當(dāng)我們要驗(yàn)證一條記錄的所有信息是否完整,都需要進(jìn)入數(shù)據(jù)庫(kù)中查看,查看是否有漏某個(gè)字段;而從更高層次來(lái)講,它涉及到系統(tǒng)性能調(diào)優(yōu)問(wèn)題。
軟件測(cè)試工程師需要具備哪些技能?
1、軟件工程技能 你必須了解軟件軟件工程(設(shè)計(jì)、開(kāi)發(fā)和簡(jiǎn)單測(cè)試),應(yīng)用,系統(tǒng),自動(dòng)測(cè)試編程,及操作系統(tǒng),數(shù)據(jù)庫(kù),網(wǎng)絡(luò)系統(tǒng)和協(xié)議的設(shè)計(jì)和使用。
2、交流技巧 如果想確定軟件缺陷,你應(yīng)當(dāng)能夠指出什么時(shí)候的缺陷算是缺陷。
3、組織技能 如果你在別人都頭腦發(fā)昏的時(shí)候保持清醒,你就可能是一個(gè)好的軟件測(cè)試工程師。在網(wǎng)絡(luò)時(shí)代軟件測(cè)試是一項(xiàng)有壓力的復(fù)雜性工作,但如果你能從這些紛繁中找到一種途徑,它就是一項(xiàng)回報(bào)豐厚的事業(yè)。
4、實(shí)踐技能 當(dāng)一個(gè)工作需要經(jīng)驗(yàn),而你又需要一個(gè)工作去豐富你的經(jīng)驗(yàn)時(shí)該怎么辦?這并不完全是一個(gè)兩難的問(wèn)題,你可能采用幾種方式去獲得實(shí)際經(jīng)驗(yàn)。
5、態(tài)度 除了技術(shù)水平,你需要理解和采取適當(dāng)?shù)膽B(tài)度去做軟件測(cè)試。
1)熟悉計(jì)算機(jī)基礎(chǔ)知識(shí); (2)熟悉操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件、程序設(shè)計(jì)語(yǔ)言基礎(chǔ)知識(shí); (3)熟悉計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí); (4)熟悉軟件工程知識(shí),理解軟件開(kāi)發(fā)方法及過(guò)程; (5)熟悉軟件質(zhì)量及軟件質(zhì)量管理基礎(chǔ)知識(shí); (6)熟悉軟件測(cè)試標(biāo)準(zhǔn); (7)掌握軟件測(cè)試技術(shù)及方法; (8)掌握軟件測(cè)試項(xiàng)目管理知識(shí); (9)掌握C語(yǔ)言以及C++或Java語(yǔ)言程序設(shè)計(jì)技術(shù); (10)了解信息化及信息安全基礎(chǔ)知識(shí); (11)熟悉知識(shí)產(chǎn)權(quán)相關(guān)法律、法規(guī); (12)正確閱讀并理解相關(guān)領(lǐng)域的英文資料。
通過(guò)本考試的合格人員能在掌握軟件工程與軟件測(cè)試知識(shí)的基礎(chǔ)上,運(yùn)用軟件測(cè)試管理方法、軟件測(cè)試策略、軟件測(cè)試技術(shù),獨(dú)立承擔(dān)軟件測(cè)試項(xiàng)目;具有工程師的實(shí)際工作能力和業(yè)務(wù)水平。
1)熟悉計(jì)算機(jī)基礎(chǔ)知識(shí);
(2)熟悉操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件、程序設(shè)計(jì)語(yǔ)言基礎(chǔ)知識(shí);
(3)熟悉計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí);
(4)熟悉軟件工程知識(shí),理解軟件開(kāi)發(fā)方法及過(guò)程;
(5)熟悉軟件質(zhì)量及軟件質(zhì)量管理基礎(chǔ)知識(shí);
(6)熟悉軟件測(cè)試標(biāo)準(zhǔn);
(7)掌握軟件測(cè)試技術(shù)及方法;
(8)掌握軟件測(cè)試項(xiàng)目管理知識(shí);
(9)掌握C語(yǔ)言以及C++或Java語(yǔ)言程序設(shè)計(jì)技術(shù);
(10)了解信息化及信息安全基礎(chǔ)知識(shí);
(11)熟悉知識(shí)產(chǎn)權(quán)相關(guān)法律、法規(guī);
(12)正確閱讀并理解相關(guān)領(lǐng)域的英文資料。
通過(guò)本考試的合格人員能在掌握軟件工程與軟件測(cè)試知識(shí)的基礎(chǔ)上,運(yùn)用軟件測(cè)試管理方法、軟件測(cè)試策略、軟件測(cè)試技術(shù),獨(dú)立承擔(dān)軟件測(cè)試項(xiàng)目;具有工程師的實(shí)際工作能力和業(yè)務(wù)水平。
第一章1、軟件測(cè)試的定義:IEEE給出的定義——軟件測(cè)試是使用人工和自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。
《軟件測(cè)試技術(shù)基礎(chǔ)》——軟件測(cè)試是為了盡快盡早地發(fā)現(xiàn)在軟件產(chǎn)品中所存在的各種軟件缺陷而展開(kāi)的貫穿整個(gè)軟件開(kāi)發(fā)生命周期、對(duì)軟件產(chǎn)品(包括階段性產(chǎn)品)進(jìn)行驗(yàn)證和確認(rèn)的活動(dòng)過(guò)程。2、軟件測(cè)試的目的軟件質(zhì)量:1.發(fā)現(xiàn)系統(tǒng)的錯(cuò)誤2. 驗(yàn)證系統(tǒng)是否滿足需求3. 為產(chǎn)品放行提供依據(jù)4. 改進(jìn)開(kāi)發(fā)流程對(duì)于企業(yè)來(lái)說(shuō):回避軟件發(fā)布后由于潛在的軟件缺陷和錯(cuò)誤造成的隱患所帶來(lái)的商業(yè)風(fēng)險(xiǎn)。
測(cè)試的重要目的之一:發(fā)現(xiàn)軟件中的缺陷3、軟件測(cè)試對(duì)象階段性文檔(1 2 3):1需求規(guī)格說(shuō)明書 2概要設(shè)計(jì)規(guī)格說(shuō)明書 3詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明書4源程序 5系統(tǒng)最終產(chǎn)品文檔(6 7):6用戶手冊(cè) 7幫助文檔4、軟件質(zhì)量保證人員與軟件測(cè)試人員同:兩個(gè)崗位旨在提高軟件的質(zhì)量異:軟件測(cè)試人員SQC1關(guān)心過(guò)程的產(chǎn)物2剖析開(kāi)發(fā)出的軟件質(zhì)量保證人員SQA1全面質(zhì)量管理 2過(guò)程改進(jìn)5、軟件測(cè)試的原則1.所有的軟件測(cè)試都應(yīng)追溯到用戶需求2.盡早地、不斷地進(jìn)行測(cè)試3.嚴(yán)格執(zhí)行測(cè)試計(jì)劃4.注重測(cè)試用例的設(shè)計(jì)5.程序員應(yīng)該避免測(cè)試自己的程序6.增量測(cè)試,由小到大7.注意集群現(xiàn)象(二八定理)8.完全測(cè)試是不可能的9.測(cè)試維護(hù)集群現(xiàn)象(二八定理)Pareto原則:測(cè)試發(fā)現(xiàn)的錯(cuò)誤中80%很可能起源于20%的模塊中。6、測(cè)試用例IEEE標(biāo)準(zhǔn)610(1990)的定義:測(cè)試用例是一組測(cè)試輸入、執(zhí)行條件和預(yù)期結(jié)果的集合。
其目的是要滿足一個(gè)特定的目標(biāo),比如執(zhí)行一條特的程序路徑或檢驗(yàn)是否符合一個(gè)特定的需求。一組測(cè)試用例包含:1、用例的編號(hào) 2、測(cè)試標(biāo)題 3、用例級(jí)別 4、預(yù)置條件5、操作步驟 6、預(yù)期結(jié)果7、軟件測(cè)試環(huán)境軟件測(cè)試環(huán)境= 軟件+ 硬件+ 網(wǎng)絡(luò)+ 歷史數(shù)據(jù)8、軟件缺陷軟件從需求、設(shè)計(jì)、編碼、測(cè)試一直到交付用戶公開(kāi)使用后的過(guò)程中,都可能產(chǎn)生和發(fā)現(xiàn)缺陷。
需求階段最多,運(yùn)行維護(hù)時(shí)花費(fèi)代價(jià)最高。9、軟件測(cè)試分類1)、按測(cè)試技術(shù)上分類(是否查看代碼)黑盒測(cè)試:在程序接口進(jìn)行測(cè)試,它只是檢查程序功能是否按照規(guī)格說(shuō)明書的規(guī) 定正常用。
也被稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。白盒測(cè)試(測(cè)試代碼):要完全了解程序結(jié)構(gòu)和處理過(guò)程,它按照程序內(nèi)部邏輯測(cè)試程序,檢驗(yàn)程序中每條通路是否按預(yù)定要求正確工作。
也被稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試?;液袦y(cè)試:介于黑盒測(cè)試與白盒測(cè)試之間的測(cè)試,即要像黑盒測(cè)試那樣關(guān)注輸出對(duì)于輸入的正確性;同時(shí)也關(guān)注內(nèi)容表現(xiàn),但這種關(guān)注不像白盒測(cè)試那樣詳細(xì)、完整,只是通過(guò)一些表征性的現(xiàn)象、事件、標(biāo)志判斷內(nèi)部的運(yùn)行狀態(tài)。
避免過(guò)度測(cè)試,精簡(jiǎn)冗余用例。2)、按測(cè)試方式上分類(是否運(yùn)行程序)靜態(tài)測(cè)試:是指不運(yùn)行程序,對(duì)程序和文檔進(jìn)行分析與檢查;靜態(tài)測(cè)試技術(shù)又稱為靜態(tài)分析技術(shù)。
信息技術(shù)的飛速發(fā)展,使軟件產(chǎn)品應(yīng)用到社會(huì)的各個(gè)領(lǐng)域,軟件產(chǎn)品的質(zhì)量自然成為人們共同關(guān)注的焦點(diǎn)。
不論軟件的生產(chǎn)者還是軟件的使用者,均生存在競(jìng)爭(zhēng)的環(huán)境中,軟件開(kāi)發(fā)商為了占有市場(chǎng),必須把產(chǎn)品質(zhì)量作為企業(yè)的重要目標(biāo)之一,以免在激烈的競(jìng)爭(zhēng)中被淘汰出局。 用戶為了保證自己業(yè)務(wù)的順利完成,當(dāng)然希望選用優(yōu)質(zhì)的軟件。
質(zhì)量不佳的軟件產(chǎn)品不僅會(huì)使開(kāi)發(fā)商的維護(hù)費(fèi)用和用戶的使用成本大幅增加,還可能產(chǎn)生其他的責(zé)任風(fēng)險(xiǎn),造成公司信譽(yù)下降,繼而沖擊股票市場(chǎng)。在一些關(guān)鍵應(yīng)用 (如民航訂票系統(tǒng)、銀行結(jié)算系統(tǒng)、證券交易系統(tǒng)、自動(dòng)飛行控制軟件、軍事防御和核電站安全控制系統(tǒng)等) 中使用質(zhì)量有問(wèn)題的軟件,還可能造成災(zāi)難性的后果。
軟件危機(jī)曾經(jīng)是軟件界甚至整個(gè)計(jì)算機(jī)界最熱門的話題。為了解決這場(chǎng)危機(jī),軟件從業(yè)人員、專家和學(xué)者做出了大量的努力。
現(xiàn)在人們已經(jīng)逐步認(rèn)識(shí)到所謂的軟件危機(jī)實(shí)際上僅是一種狀況,那就是軟件中有錯(cuò)誤,正是這些錯(cuò)誤導(dǎo)致了軟件開(kāi)發(fā)在成本、進(jìn)度和質(zhì)量上的失控。 有錯(cuò)是軟件的屬性,而且是無(wú)法改變的,因?yàn)檐浖怯扇藖?lái)完成的,所有由人做的工作都不會(huì)是完美無(wú)缺的。
問(wèn)題在于我們?nèi)绾稳ケ苊忮e(cuò)誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯(cuò)誤,使程序中的錯(cuò)誤密度達(dá)到盡可能低的程度。 給軟件帶來(lái)錯(cuò)誤的原因很多,具體地說(shuō),主要有如下幾點(diǎn): ①、交流不夠、交流上有誤解或者根本不進(jìn)行交流 在應(yīng)用應(yīng)該做什么或不應(yīng)該做什么的細(xì)節(jié)(應(yīng)用的需求)不清晰的情況下進(jìn)行開(kāi)發(fā)。
②、軟件復(fù)雜性 圖形用戶界面(gui),客戶/服務(wù)器結(jié)構(gòu),分布式應(yīng)用,數(shù)據(jù)通信,超大型關(guān)系型數(shù)據(jù)庫(kù)以及龐大的系統(tǒng)規(guī)模,使得軟件及系統(tǒng)的復(fù)雜性呈指數(shù)增長(zhǎng),沒(méi)有現(xiàn)代軟件開(kāi)發(fā)經(jīng)驗(yàn)的人很難理解它。 ③、程序設(shè)計(jì)錯(cuò)誤 向所有的人一樣,程序員也會(huì)出錯(cuò)。
④、需求變化 需求變化的影響是多方面的,客戶可能不了解需求變化帶來(lái)的影響,也可能知道但又不得不那么做。需求變化的后果可能是造成系統(tǒng)的重新設(shè)計(jì),設(shè)計(jì)人員的日程的重新安排,已經(jīng)完成的工作可能要重做或者完全拋棄,對(duì)其他項(xiàng)目產(chǎn)生影響,硬件需求可能要因此改變,等等。
如果有許多小的改變或者一次大的變化,項(xiàng)目各部分之間已知或未知的依賴性可能會(huì)相互影響而導(dǎo)致更多問(wèn)題的出現(xiàn),需求改變帶來(lái)的復(fù)雜性可能導(dǎo)致錯(cuò)誤,還可能影響工程參與者的積極性。 ⑤、時(shí)間壓力 軟件項(xiàng)目的日程表很難做到準(zhǔn)確,很多時(shí)候需要預(yù)計(jì)和猜測(cè)。
當(dāng)最終期限迫近和關(guān)鍵時(shí)刻到來(lái)之際,錯(cuò)誤也就跟著來(lái)了。 ⑥、自負(fù)人更喜歡說(shuō):'沒(méi)問(wèn)題','這事情很容易','幾個(gè)小時(shí)我就能拿出來(lái)' 太多不切實(shí)際的‘沒(méi)問(wèn)題’,結(jié)果只能是引入錯(cuò)誤。
⑦、代碼文檔貧乏 貧乏或者差勁的文檔使得代碼維護(hù)和修改變的異常艱辛,其結(jié)果是帶來(lái)許多錯(cuò)誤。 事實(shí)上,在許多機(jī)構(gòu)并不鼓勵(lì)其程序員為代碼編寫文檔,也不鼓勵(lì)程序員將代碼寫得清晰和容易理解,相反他們認(rèn)為少寫文檔可以更快的進(jìn)行編碼,無(wú)法理解的代碼更易于工作的保密(“寫得艱難必定讀的痛苦”)。
⑧、軟件開(kāi)發(fā)工具 可視化工具,類庫(kù),編譯器,腳本工具,等等,它們常常會(huì)將自身的錯(cuò)誤帶到應(yīng)用軟件中。 就象我們所知道的,沒(méi)有良好的工程化作為基礎(chǔ),使用面向?qū)ο蟮募夹g(shù)只會(huì)使項(xiàng)目變得更復(fù)雜。
為了更好地解決這些問(wèn)題,軟件界做出了各種各樣的努力。 人們?cè)?jīng)認(rèn)為更好的程序語(yǔ)言可以使我們擺脫這些困擾,這推動(dòng)了程序設(shè)計(jì)語(yǔ)言的發(fā)展,更多的語(yǔ)言開(kāi)始流行,為了使程序更易于理解開(kāi)發(fā)了結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,如pl/1,pascal等;為了解決實(shí)時(shí)多任務(wù)需求開(kāi)發(fā)了結(jié)構(gòu)化多任務(wù)程序設(shè)計(jì)語(yǔ)言,如modula,ada等;為了提高重用性開(kāi)發(fā)了面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,如simlasa等;為了避免產(chǎn)生不正確的需求理解,開(kāi)發(fā)形式化描述語(yǔ)言,如hal/s等,這使得建立基于自然語(yǔ)言的描述成為可能,人們以形式化語(yǔ)言來(lái)描述需求;為了支持大型數(shù)據(jù)庫(kù)應(yīng)用,開(kāi)發(fā)了可視化工具,如visual studio、power builder等。
程序語(yǔ)言對(duì)提高軟件生產(chǎn)效率起到了一定的積極作用,但它對(duì)整個(gè)軟件質(zhì)量尤其是可靠性的影響,與其他因素相比作用較小。 可能是因?yàn)槌绦蛘Z(yǔ)言基于嚴(yán)格的語(yǔ)法和語(yǔ)義規(guī)則,人們企圖用形式化證明方法來(lái)證明程序的正確性。
將程序當(dāng)作數(shù)學(xué)對(duì)象來(lái)看待,從數(shù)學(xué)意義上證明程序是正確的是可能的。 數(shù)學(xué)家對(duì)形式化證明方法最有興趣,在論文上談起來(lái)非常吸引人,但實(shí)際價(jià)值卻非常有限,因?yàn)樾问交C明方法只有在代碼寫出來(lái)之后才能使用,這顯然太遲了,而且對(duì)于大的程序證明起來(lái)非常困難。
受到其他行業(yè)項(xiàng)目工程化的啟發(fā),軟件工程學(xué)出現(xiàn)了,軟件開(kāi)發(fā)被視為一項(xiàng)工程,以工程化的方法來(lái)進(jìn)行規(guī)劃和管理軟件的開(kāi)發(fā)。 針對(duì)需求不確定的應(yīng)用,可以使用漸進(jìn)和迭代類的開(kāi)發(fā)模型。
還可以采用快速應(yīng)用程序開(kāi)發(fā)(rad)和協(xié)同應(yīng)用程序開(kāi)發(fā)(jad)技術(shù),由軟件開(kāi)發(fā)者和用戶代表共同參與開(kāi)發(fā)軟件規(guī)范。rad和jad的基本思路是開(kāi)發(fā)者和用戶共同設(shè)計(jì)系統(tǒng)中的屏幕,開(kāi)發(fā)者迅速地把實(shí)現(xiàn)這些屏幕的最基本功能編寫好,然后把它們交給用戶看,然后用戶和開(kāi)發(fā)者回顧這些屏幕以確認(rèn)它們達(dá)到了用戶的要求,這個(gè)周期一直持續(xù)到系統(tǒng)的基本部分。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:3.496秒