測(cè)試和開(kāi)發(fā)的區(qū)別和關(guān)系是什么
說(shuō)起軟件開(kāi)發(fā)與測(cè)試,大概很多人都不清楚二者的關(guān)系和區(qū)別吧,今天小編就帶大家看看 軟件測(cè)試和軟件開(kāi)發(fā)的區(qū)別,一起來(lái)學(xué)習(xí)!
軟件開(kāi)發(fā)與軟件測(cè)試的區(qū)別
軟件測(cè)試主要是發(fā)現(xiàn)問(wèn)題并查出BUG,發(fā)現(xiàn)軟件中的錯(cuò)誤,再整理成資料。為軟件開(kāi)發(fā)開(kāi)發(fā)人員。軟件開(kāi)發(fā)主要由開(kāi)發(fā)人員負(fù)責(zé),編碼工作和一系列文檔,開(kāi)發(fā)人員中也有很多種,像程序員、系統(tǒng)構(gòu)架師、項(xiàng)目經(jīng)理、系統(tǒng)分析師。他們職責(zé)也是不同的。軟件測(cè)試主要由測(cè)試人員負(fù)責(zé),查出軟件中的問(wèn)題告訴開(kāi)發(fā)人員他們進(jìn)行修改。軟件開(kāi)發(fā)是一個(gè)創(chuàng)造的過(guò)程。要構(gòu)造出一個(gè)新的軟件。 軟件測(cè)試是一個(gè)維護(hù)的過(guò)程。一般來(lái)說(shuō),新開(kāi)發(fā)出一個(gè)新的軟件一定是有錯(cuò)誤或漏洞的,需要經(jīng)過(guò)各種測(cè)試去發(fā)現(xiàn)問(wèn)題、解決問(wèn)題,直到完全沒(méi)有問(wèn)題之后再進(jìn)入下一個(gè)環(huán)節(jié)。故而 一般是先開(kāi)發(fā)后測(cè)試。 軟件開(kāi)發(fā)工程師需要會(huì)編寫(xiě)代碼實(shí)現(xiàn)軟件功能, 軟件測(cè)試工程師則除了要知道如何開(kāi)發(fā)軟件之外,還需要熟悉測(cè)試的方法和具備一些測(cè)試的能力,最好是能夠糾正錯(cuò)誤。在薪水收入方面,軟件開(kāi)發(fā)的跨度非常大,一般1000-4、5萬(wàn)/月不等 軟件測(cè)試的薪資則相對(duì)穩(wěn)定,一般為2000-6000/月, 而職業(yè)年限上, 軟件開(kāi)發(fā)一般為3-5年 ,軟件測(cè)試則有可能做到退休。
軟件開(kāi)發(fā)和測(cè)試的關(guān)系
1、沒(méi)有軟件開(kāi)發(fā)也就沒(méi)有測(cè)試,軟件開(kāi)發(fā)為軟件測(cè)試提供對(duì)象。
2、軟件開(kāi)發(fā)和軟件測(cè)試都作為軟件生命周期的重要組成部分
3、軟件開(kāi)發(fā)和軟件測(cè)試都是軟件過(guò)程之中的重要活動(dòng)。
4、軟件測(cè)試是保證軟件開(kāi)發(fā)的產(chǎn)物質(zhì)量的重要手段。
軟件測(cè)試的介紹
軟件測(cè)試(英語(yǔ):Software Testing),描述一種用來(lái)促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過(guò)程。換句話說(shuō),軟件測(cè)試是一種實(shí)際輸出與預(yù)期輸出間的審核或者比較過(guò)程。軟件測(cè)試的經(jīng)典定義是:在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過(guò)程。
軟件測(cè)試發(fā)展史
軟件測(cè)試是伴隨著軟件的產(chǎn)生而產(chǎn)生的。早期的軟件開(kāi)發(fā)過(guò)程中軟件規(guī)模都很小、復(fù)雜程度低,軟件開(kāi)發(fā)的過(guò)程混亂無(wú)序、相當(dāng)隨意,測(cè)試的含義比較狹窄,開(kāi)發(fā)人員將測(cè)試等同于“調(diào)試”,目的是糾正軟件中已經(jīng)知道的故障,常常由開(kāi)發(fā)人員自己完成這部分的工作。對(duì)測(cè)試的投入極少,測(cè)試介入也晚,常常是等到形成代碼,產(chǎn)品已經(jīng)基本完成時(shí)才進(jìn)行測(cè)試。到了上世紀(jì)80年代初期,軟件和IT行業(yè)進(jìn)入了大發(fā)展,軟件趨向大型化、高復(fù)雜度,軟件的質(zhì)量越來(lái)越重要。這個(gè)時(shí)候,一些軟件測(cè)試的基礎(chǔ)理論和實(shí)用技術(shù)開(kāi)始形成,并且人們開(kāi)始為軟件開(kāi)發(fā)設(shè)計(jì)了各種流程和管理方法,軟件開(kāi)發(fā)的方式也逐漸由混亂無(wú)序的開(kāi)發(fā)過(guò)程過(guò)渡到結(jié)構(gòu)化的開(kāi)發(fā)過(guò)程,以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試為特征。人們還將“質(zhì)量”的概念融入其中,軟件測(cè)試定義發(fā)生了改變,測(cè)試不單純是一個(gè)發(fā)現(xiàn)錯(cuò)誤的過(guò)程,而且將測(cè)試作為軟件質(zhì)量保證(SQA)的主要職能,包含軟件質(zhì)量評(píng)價(jià)的內(nèi)容,Bill Hetzel在《軟件測(cè)試完全指南》(Complete Guide of Software Testing)一書(shū)中指出:“測(cè)試是以評(píng)價(jià)一個(gè)程序或者系統(tǒng)屬性為目標(biāo)的任何一種活動(dòng)。測(cè)試是對(duì)軟件質(zhì)量的度量。”這個(gè)定義至今仍被引用。軟件開(kāi)發(fā)人員和測(cè)試人員開(kāi)始坐在一起探討軟件工程和測(cè)試問(wèn)題。
軟件測(cè)試已有了行業(yè)標(biāo)準(zhǔn)(IEEE/ANSI ),1983年IEEE提出的軟件工程術(shù)語(yǔ)中給軟件測(cè)試下的定義是:“使用人工或自動(dòng)的手段來(lái)運(yùn)行或測(cè)定某個(gè)軟件系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。這個(gè)定義明確指出:軟件測(cè)試的目的是為了檢驗(yàn)軟件系統(tǒng)是否滿足需求。它再也不是一個(gè)一次性的,而且只是開(kāi)發(fā)后期的活動(dòng),而是與整個(gè)開(kāi)發(fā)流程融合成一體。軟件測(cè)試已成為一個(gè)專業(yè),需要運(yùn)用專門的方法和手段,需要專門人才和專家來(lái)承擔(dān)。
進(jìn)入上世紀(jì)90年代,軟件行業(yè)開(kāi)始迅猛發(fā)展,軟件的規(guī)模變的非常大,在一些大型軟件開(kāi)發(fā)過(guò)程中,測(cè)試活動(dòng)需要花費(fèi)大量的時(shí)間和成本,而當(dāng)時(shí)測(cè)試的手段幾乎完全都是手工測(cè)試,測(cè)試的效率非常低;并且隨著軟件復(fù)雜度的提高,出現(xiàn)了很多通過(guò)手工方式無(wú)法完成測(cè)試的情況,盡管在一些大型軟件的開(kāi)發(fā)過(guò)程中,人們嘗試編寫(xiě)了一些小程序來(lái)輔助測(cè)試,但是這還是不能滿足大多數(shù)軟件項(xiàng)目的統(tǒng)一需要。于是,很多測(cè)試實(shí)踐者開(kāi)始嘗試開(kāi)發(fā)商業(yè)的測(cè)試工具來(lái)支持測(cè)試,輔助測(cè)試人員完成某一類型或某一領(lǐng)域內(nèi)的測(cè)試工作,而測(cè)試工具逐漸盛行起來(lái)。人們普遍意識(shí)到,工具不僅僅是有用的,而且要對(duì)今天的軟件系統(tǒng)進(jìn)行充分的測(cè)試,工具是必不可少的。測(cè)試工具可以進(jìn)行部分的測(cè)試設(shè)計(jì)、實(shí)現(xiàn)、執(zhí)行和比較的工作。通過(guò)運(yùn)用測(cè)試工具,可以達(dá)到提高測(cè)試效率的目的。測(cè)試工具的發(fā)展,大大提高了軟件測(cè)試的自動(dòng)化程度,讓測(cè)試人員從繁瑣和重復(fù)的測(cè)試活動(dòng)中解脫出來(lái),專心從事有意義的測(cè)試設(shè)計(jì)等活動(dòng)。采用自動(dòng)比較技術(shù),還可以自動(dòng)完成測(cè)試用例執(zhí)行結(jié)果的判斷,從而避免人工比對(duì)存在的疏漏問(wèn)題。設(shè)計(jì)良好的自動(dòng)化測(cè)試,在某些情況下可以實(shí)現(xiàn) “ 夜間測(cè)試 ” 和 “ 無(wú)人測(cè)試 ” 。在大多數(shù)情況下,軟件測(cè)試自動(dòng)化可以減少開(kāi)支,增加有限時(shí)間內(nèi)可執(zhí)行的測(cè)試,在執(zhí)行相同數(shù)量測(cè)試時(shí)節(jié)約測(cè)試時(shí)間。 而測(cè)試工具的選擇和推廣也越來(lái)越受到重視。在軟件測(cè)試工具平臺(tái)方面,商業(yè)化的軟件測(cè)試工具已經(jīng)很多,如捕獲/回放工具、Web測(cè)試工具、性能測(cè)試工具、測(cè)試管理工具、代碼測(cè)試工具等等,這些都有嚴(yán)格的版權(quán)限制且價(jià)格較為昂貴,但由于價(jià)格和版權(quán)的限制無(wú)法自由使用,當(dāng)然,一些軟件測(cè)試工具開(kāi)發(fā)商對(duì)于某些測(cè)試工具提供了Beta測(cè)試版本以供用戶有限次數(shù)使用。幸運(yùn)的是,在開(kāi)放源碼社區(qū)中也出現(xiàn)了許多軟件測(cè)試工具,已得到廣泛應(yīng)用且相當(dāng)成熟和完善。
軟件開(kāi)發(fā)的介紹
軟件開(kāi)發(fā)是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過(guò)程。軟件開(kāi)發(fā)是一項(xiàng)包括需求捕捉、需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試的系統(tǒng)工程。軟件一般是用某種程序設(shè)計(jì)語(yǔ)言來(lái)實(shí)現(xiàn)的。通常采用軟件開(kāi)發(fā)工具可以進(jìn)行開(kāi)發(fā)。軟件分為系統(tǒng)軟件和應(yīng)用軟件,并不只是包括可以在計(jì)算機(jī)上運(yùn)行的程序,與這些程序相關(guān)的文件一般也被認(rèn)為是軟件的一部分。 軟件設(shè)計(jì)思路和方法的一般過(guò)程,包括設(shè)計(jì)軟件的功能和實(shí)現(xiàn)的算法和方法、軟件的總體結(jié)構(gòu)設(shè)計(jì)和模塊設(shè)計(jì)、編程和調(diào)試、程序聯(lián)調(diào)和測(cè)試以及編寫(xiě)、提交程序。
軟件開(kāi)發(fā)階段劃分
計(jì)劃
對(duì)所要解決的問(wèn)題進(jìn)行總體定義,包括了解用戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等3個(gè)方面研究并論證本軟件項(xiàng)目的可行性,編寫(xiě)可行性研究報(bào)告,探討解決問(wèn)題的方案,并對(duì)可供使用的資源(如計(jì)算機(jī)硬件、系統(tǒng)軟件、人力等)成本,可取得的效益和開(kāi)發(fā)進(jìn)度作出估計(jì),制訂完成開(kāi)發(fā)任務(wù)的實(shí)施計(jì)劃。
分析
軟件需求分析就是對(duì)開(kāi)發(fā)什么樣的軟件的一個(gè)系統(tǒng)的分析與設(shè)想。它是一個(gè)對(duì)用戶的需求進(jìn)行去粗取精、去偽存真、正確理解,然后把它用軟件工程開(kāi)發(fā)語(yǔ)言(形式功能規(guī)約,即需求規(guī)格說(shuō)明書(shū))表達(dá)出來(lái)的過(guò)程。本階段的基本任務(wù)是和用戶一起確定要解決的問(wèn)題,建立軟件的邏輯模型,編寫(xiě)需求規(guī)格說(shuō)明書(shū)文檔并最終得到用戶的認(rèn)可。需求分析的主要方法有結(jié)構(gòu)化分析方法、數(shù)據(jù)流程圖和數(shù)據(jù)字典等方法。本階段的工作是根據(jù)需求說(shuō)明書(shū)的要求,設(shè)計(jì)建立相應(yīng)的軟件系統(tǒng)的體系結(jié)構(gòu),并將整個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng)或模塊,定義子系統(tǒng)或模塊間的接口關(guān)系,對(duì)各子系統(tǒng)進(jìn)行具體設(shè)計(jì)定義,編寫(xiě)軟件概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)說(shuō)明書(shū),數(shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說(shuō)明書(shū),組裝測(cè)試計(jì)劃。在任何軟件或系統(tǒng)開(kāi)發(fā)的初始階段必須先完全掌握用戶需求,以期能將緊隨的系統(tǒng)開(kāi)發(fā)過(guò)程中哪些功能應(yīng)該落實(shí)、采取何種規(guī)格以及設(shè)定哪些限制優(yōu)先加以定位。系統(tǒng)工程師最終將據(jù)此完成設(shè)計(jì)方案,在此基礎(chǔ)上對(duì)隨后的程序開(kāi)發(fā)、系統(tǒng)功能和性能的描述及限制作出定義。
設(shè)計(jì)
軟件設(shè)計(jì)可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。實(shí)際上軟件設(shè)計(jì)的主要任務(wù)就是將軟件分解成模塊是指能實(shí)現(xiàn)某個(gè)功能的數(shù)據(jù)和程序說(shuō)明、可執(zhí)行程序的程序單元??梢允且粋€(gè)函數(shù)、過(guò)程、子程序、一段帶有程序說(shuō)明的獨(dú)立的程序和數(shù)據(jù),也可以是可組合、可分解和可更換的功能單元。模塊,然后進(jìn)行模塊設(shè)計(jì)。概要設(shè)計(jì)就是結(jié)構(gòu)設(shè)計(jì),其主要目標(biāo)就是給出軟件的模塊結(jié)構(gòu),用軟件結(jié)構(gòu)圖表示。詳細(xì)設(shè)計(jì)的首要任務(wù)就是設(shè)計(jì)模塊的程序流程、算法和數(shù)據(jù)結(jié)構(gòu),次要任務(wù)就是設(shè)計(jì)數(shù)據(jù)庫(kù),常用方法還是結(jié)構(gòu)化程序設(shè)計(jì)方法。
編碼
軟件編碼是指把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序,即寫(xiě)成以某一程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”。充分了解軟件開(kāi)發(fā)語(yǔ)言、工具的特性和編程風(fēng)格,有助于開(kāi)發(fā)工具的選擇以及保證軟件產(chǎn)品的開(kāi)發(fā)質(zhì)量。
當(dāng)前軟件開(kāi)發(fā)中除在專用場(chǎng)合,已經(jīng)很少使用二十世紀(jì)80年代的高級(jí)語(yǔ)言了,取而代之的是面向?qū)ο蟮拈_(kāi)發(fā)語(yǔ)言。而且面向?qū)ο蟮拈_(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)環(huán)境大都合為一體,大大提高了開(kāi)發(fā)的速度。
測(cè)試
軟件測(cè)試的目的是以較小的代價(jià)發(fā)現(xiàn)盡可能多的錯(cuò)誤。要實(shí)現(xiàn)這個(gè)目標(biāo)的關(guān)鍵在于設(shè)計(jì)一套出色的測(cè)試用例(測(cè)試數(shù)據(jù)與功能和預(yù)期的輸出結(jié)果組成了測(cè)試用例)。如何才能設(shè)計(jì)出一套出色的測(cè)試用例,關(guān)鍵在于理解測(cè)試方法。不同的測(cè)試方法有不同的測(cè)試用例設(shè)計(jì)方法。兩種常用的測(cè)試方法是白盒法測(cè)試對(duì)象是源程序,依據(jù)的是程序內(nèi)部的的邏輯結(jié)構(gòu)來(lái)發(fā)現(xiàn)軟件的編程錯(cuò)誤、結(jié)構(gòu)錯(cuò)誤和數(shù)據(jù)錯(cuò)誤。結(jié)構(gòu)錯(cuò)誤包括邏輯、數(shù)據(jù)流、初始化等錯(cuò)誤。用例設(shè)計(jì)的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果。白盒法和黑盒法依據(jù)的是軟件的功能或軟件行為描述,發(fā)現(xiàn)軟件的接口、功能和結(jié)構(gòu)錯(cuò)誤。其中接口錯(cuò)誤包括內(nèi)部/外部接口、資源管理、集成化以及系統(tǒng)錯(cuò)誤。黑盒法用例設(shè)計(jì)的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。
維護(hù)
維護(hù)是指在已完成對(duì)軟件的研制(分析、設(shè)計(jì)、編碼和測(cè)試)工作并交付使用以后,對(duì)軟件產(chǎn)品所進(jìn)行的一些軟件工程的活動(dòng)。即根據(jù)軟件運(yùn)行的情況,對(duì)軟件進(jìn)行適當(dāng)修改,以適應(yīng)新的要求,以及糾正運(yùn)行中發(fā)現(xiàn)的錯(cuò)誤。編寫(xiě)軟件問(wèn)題報(bào)告、軟件修改報(bào)告。
一個(gè)中等規(guī)模的軟件,如果研制階段需要一年至二年的時(shí)間,在它投入使用以后,其運(yùn)行或工作時(shí)間可能持續(xù)五年至十年。那么它的維護(hù)階段也是運(yùn)行的這五年至十年期間。在這段時(shí)間,人們幾乎需要著手解決研制階段所遇到的各種問(wèn)題,同時(shí)還要解決某些維護(hù)工作本身特有的問(wèn)題。做好軟件維護(hù)工作,不僅能排除障礙,使軟件能正常工作,而且還可以使它擴(kuò)展功能,提高性能,為用戶帶來(lái)明顯的經(jīng)濟(jì)效益。然而遺憾的是,對(duì)軟件維護(hù)工作的重視往往遠(yuǎn)不如對(duì)軟件研制工作的重視。而事實(shí)上,和軟件研制工作相比,軟件維護(hù)的工作量和成本都要大得多。
在實(shí)際開(kāi)發(fā)過(guò)程中,軟件開(kāi)發(fā)并不是從第一步進(jìn)行到最后一步,而是在任何階段,在進(jìn)入下一階段前一般都有一步或幾步的回溯。在測(cè)試過(guò)程中的問(wèn)題可能要求修改設(shè)計(jì),用戶可能會(huì)提出一些需要來(lái)修改需求說(shuō)明書(shū)等。
猜你感興趣:
3.測(cè)一測(cè)你是否需要右腦開(kāi)發(fā)