軟件開發(fā)的內(nèi)容是:需求、設(shè)計(jì)、編程和測試!
需求:不僅僅是用戶需求,應(yīng)該是開發(fā)中遇到的所有的需求。比如,你首先要知道做這個(gè)項(xiàng)目是為了解決什么問題;測試案例中應(yīng)該輸入什么數(shù)據(jù)......為了清楚地知道這些需求,你經(jīng)常要和客戶、項(xiàng)目經(jīng)理等交流。
設(shè)計(jì):編碼前,肯定有個(gè)計(jì)劃告訴你要做什么,結(jié)構(gòu)是怎樣等等。你一定要按照這個(gè)來做,否則可能會(huì)一團(tuán)糟。
編程:如果在項(xiàng)目截止日,你的程序不能跑起來或達(dá)不到客戶的要求,你就拿不到錢。
測試:目的是讓你知道,什么時(shí)候算是完成了。如果你聰明,你就應(yīng)該先寫測試,這樣可以及時(shí)知道你是否真地完成了。否則,你經(jīng)常會(huì)不知道,到底有哪些功能是真正完成了,離預(yù)期目標(biāo)還差多遠(yuǎn)。
軟件開發(fā)中,客戶和開發(fā)人員都有自己的基本權(quán)利和義務(wù)。
客戶:
定義每個(gè)用戶需求的商業(yè)優(yōu)先級(jí);
制訂總體計(jì)劃,包括用多少投資、經(jīng)過多長時(shí)間、達(dá)到什么目的;
在項(xiàng)目開發(fā)過程中的每個(gè)工作周,都能讓投資獲得最大的收益;
通過重復(fù)運(yùn)行你所指定的功能測試,準(zhǔn)確地掌握項(xiàng)目進(jìn)展情況;
能隨時(shí)改變需求、功能或優(yōu)先級(jí),同時(shí)避免昂貴的再投資;能夠根據(jù)各種變化及時(shí)調(diào)整項(xiàng)目計(jì)劃;
能夠隨時(shí)取消項(xiàng)目;項(xiàng)目取消時(shí),以前的開發(fā)工作不是一堆垃圾,已開發(fā)完的功能是合乎要求的,正在進(jìn)行或未完成的的工作則應(yīng)該是不難接手的。
開發(fā)人員:
知道要做什么,以及要優(yōu)先做什么;
工作有效率;
有問題或困難時(shí),能得到客戶、同事、上級(jí)的回答或幫助;
對工作做評(píng)估,并根據(jù)周圍情況的變化及時(shí)重新評(píng)估;
積極承擔(dān)工作,而不是消極接受分配;
一周40小時(shí)工作制,不加班。
計(jì)劃
對所要解決的問題進(jìn)行總體定義,包括了解用戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等3個(gè)方面研究并論證本軟件項(xiàng)目的可行性,編寫可行性研究報(bào)告,探討解決問題的方案,并對可供使用的資源(如計(jì)算機(jī)硬件、系統(tǒng)軟件、人力等)成本,可取得的效益和開發(fā)進(jìn)度作出估計(jì)。制訂完成開發(fā)任務(wù)的實(shí)施計(jì)劃。
分析
軟件需求分析就是回答做什么的問題。它是一個(gè)對用戶的需求進(jìn)行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語言(形式功能規(guī)約,即需求規(guī)格說明書)表達(dá)出來的過程。本階段的基本任務(wù)是和用戶一起確定要解決的問題,建立軟件的邏輯模型,編寫需求規(guī)格說明書文檔并最終得到用戶的認(rèn)可。需求分析的主要方法有結(jié)構(gòu)化分析方法、數(shù)據(jù)流程圖和數(shù)據(jù)字典等方法。本階段的工作是根據(jù)需求說明書的要求,設(shè)計(jì)建立相應(yīng)的軟件系統(tǒng)的體系結(jié)構(gòu),并將整個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng)或模塊,定義子系統(tǒng)或模塊間的接口關(guān)系,對各子系統(tǒng)進(jìn)行具體設(shè)計(jì)定義,編寫軟件概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)說明書,數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明書,組裝測試計(jì)劃。
設(shè)計(jì)
軟件設(shè)計(jì)可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。實(shí)際上軟件設(shè)計(jì)的主要任務(wù)就是將軟件分解成模塊是指能實(shí)現(xiàn)某個(gè)功能的數(shù)據(jù)和程序說明、可執(zhí)行程序的程序單元?梢允且粋(gè)函數(shù)、過程、子程序、一段帶有程序說明的獨(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ù)庫,常用方法還是結(jié)構(gòu)化程序設(shè)計(jì)方法。
編碼
軟件編碼是指把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序,即寫成以某一程序設(shè)計(jì)語言表示的"源程序清單"。充分了解軟件開發(fā)語言、工具的特性和編程風(fēng)格,有助于開發(fā)工具的選擇以及保證軟件產(chǎn)品的開發(fā)質(zhì)量。當(dāng)前軟件開發(fā)中除在專用場合,已經(jīng)很少使用二十世紀(jì)80年代的高級(jí)語言了,取而代之的是面向?qū)ο蟮拈_發(fā)語言。而且面向?qū)ο蟮拈_發(fā)語言和開發(fā)環(huán)境大都合為一體,大大提高了開發(fā)的速度。
測試
軟件測試的目的是以較小的代價(jià)發(fā)現(xiàn)盡可能多的錯(cuò)誤。要實(shí)現(xiàn)這個(gè)目標(biāo)的關(guān)鍵在于設(shè)計(jì)一套出色的測試用例(測試數(shù)據(jù)和預(yù)期的輸出結(jié)果組成了測試用例)。如何才能設(shè)計(jì)出一套出色的測試用例,關(guān)鍵在于理解測試方法。不同的測試方法有不同的測試用例設(shè)計(jì)方法。兩種常用的測試方法是白盒法測試對象是源程序,依據(jù)的是程序內(nèi)部的的邏輯結(jié)構(gòu)來發(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ù)是旨在已完成對軟件的研制(分析、設(shè)計(jì)、編碼和測試)工作并交付使用以后,對軟件產(chǎn)品所進(jìn)行的一些軟件工程的活動(dòng)。即根據(jù)軟件運(yùn)行的情況,對軟件進(jìn)行適當(dāng)修改,以適應(yīng)新的要求,以及糾正運(yùn)行中發(fā)現(xiàn)的錯(cuò)誤。編寫軟件問題報(bào)告、軟件修改報(bào)告。
一個(gè)中等規(guī)模的軟件,如果研制階段需要一年至二年的時(shí)間,在它投入使用以后,其運(yùn)行或工作時(shí)間可能持續(xù)五年至十年。那么它的維護(hù)階段也是運(yùn)行的這五年至十年期間。在這段時(shí)間,人們幾乎需要著手解決研制階段所遇到的各種問題,同時(shí)還要解決某些維護(hù)工作本身特有的問題。做好軟件維護(hù)工作,不僅能排除障礙,使軟件能正常工作,而且還可以使它擴(kuò)展功能,提高性能,為用戶帶來明顯的經(jīng)濟(jì)效益。然而遺憾的是,對軟件維護(hù)工作的重視往往遠(yuǎn)不如對軟件研制工作的重視。而事實(shí)上,和軟件研制工作相比,軟件維護(hù)的工作量和成本都要大得多。
在實(shí)際開發(fā)過程中,軟件開發(fā)并不是從第一步進(jìn)行到最后一步,而是在任何階段,在進(jìn)入下一階段前一般都有一步或幾步的回溯。在測試過程中的問題可能要求修改設(shè)計(jì),用戶可能會(huì)提出一些需要來修改需求說明書等。
計(jì)算機(jī):軟件開發(fā)專業(yè)主要培養(yǎng)德智體全面發(fā)展,具有一定計(jì)算機(jī)軟硬件維護(hù)、網(wǎng)絡(luò)組建、維護(hù)管理的高級(jí)實(shí)用技術(shù)型人才。通過本專業(yè)的學(xué)習(xí),能熟練掌握常用的計(jì)算機(jī)軟件的使用、維護(hù)與技巧;在硬件方面學(xué)生應(yīng)了解計(jì)算機(jī)硬件的發(fā)展,熟練掌握計(jì)算機(jī)組裝的方法,能熟練運(yùn)用應(yīng)用軟件檢測計(jì)算機(jī)性能、故障的范圍所在,掌握硬件故障的一般處理方法;在網(wǎng)絡(luò)方面,學(xué)生應(yīng)掌握目前流行網(wǎng)絡(luò)的技術(shù)特點(diǎn),掌握網(wǎng)絡(luò)工程、網(wǎng)絡(luò)維護(hù)、網(wǎng)絡(luò)安全及應(yīng)用方面的知識(shí)。能勝任一般網(wǎng)絡(luò)工程方案的設(shè)計(jì)、組建、網(wǎng)絡(luò)維護(hù)、及簡單網(wǎng)站的建設(shè)與維護(hù)。同時(shí),使學(xué)生了解由于IT技術(shù)的發(fā)展而引起的法律和道德方面的問題。
本專業(yè)畢業(yè)生適合的工作崗位是計(jì)算機(jī)程序設(shè)計(jì)師。適合于熟練地按照工程化的思路進(jìn)行軟件編制、軟件測試的工作崗位,能擔(dān)任各種企事業(yè)單位和各級(jí)工程建設(shè)部門、管理部門的計(jì)算機(jī)軟件和硬件維護(hù)、網(wǎng)絡(luò)的組建、維護(hù)等工作,也可從事計(jì)算機(jī)研究與應(yīng)用、軟件開發(fā)等方面的工作。就業(yè)范圍為:計(jì)算機(jī)軟件公司、具有軟件開發(fā)能力的大型企業(yè)及事業(yè)單位、大專院校和科研院所。
軟件設(shè)計(jì)思路和方法的一般過程,包括設(shè)計(jì)軟件的功能和實(shí)現(xiàn)的算法和方法、軟件的總體結(jié)構(gòu)設(shè)計(jì)和模塊設(shè)計(jì)、編程和調(diào)試、程序聯(lián)調(diào)和測試以及編寫、提交程序。
1 相關(guān)系統(tǒng)分析員和用戶初步了解需求,然后用WORD列出要開發(fā)的系統(tǒng)的大功能模塊,每個(gè)大功能模塊有哪些小功能模塊,對于有些需求比較明確相關(guān)的界面時(shí),在這一步里面可以初步定義好少量的界面。
2 系統(tǒng)分析員深入了解和分析需求,根據(jù)自己的經(jīng)驗(yàn)和需求用WORD或相關(guān)的工具再做出一份文檔系統(tǒng)的功能需求文檔。這次的文檔會(huì)清楚例用系統(tǒng)大致的大功能模塊,大功能模塊有哪些小功能模塊,并且還例出相關(guān)的界面和界面功能。
3 系統(tǒng)分析員和用戶再次確認(rèn)需求。
4 系統(tǒng)分析員根據(jù)確認(rèn)的需求文檔所例用的界面和功能需求,用迭代的方式對每個(gè)界面或功能做系統(tǒng)的概要設(shè)計(jì)。
5 系統(tǒng)分析員把寫好的概要設(shè)計(jì)文檔給程序員,程序員根據(jù)所例出的功能一個(gè)一個(gè)的編寫。
6 測試編寫好的系統(tǒng)。交給用戶使用,用戶使用后一個(gè)一個(gè)的確認(rèn)每個(gè)功能,然后驗(yàn)收。
舉個(gè)例子來看:
1 某公司想找人訂做一套人事管理軟件,從某種渠道上得知我們有提供這種服務(wù),所以聯(lián)系上了我們。
2 我們會(huì)派專門的軟件工程師到他們那里去了解我們要設(shè)計(jì)一個(gè)什么的東西給他們用,然后回來做個(gè)方案給他們,其中方案的內(nèi)容包括:我們開發(fā)出來的軟件大概的界面是怎樣?方便什么人使用?什么人可以使用什么功能?方便到什么程度?大概的硬件要求是怎樣等?
3 他們看了方案后,確定他們就是要做一套這樣的軟件,我就開始開發(fā)這套軟件。
4 我們把開發(fā)出來的軟件交用他們使用,其中在使用的過程中哪里使用不方便或哪里達(dá)不到要求,我們會(huì)第第一時(shí)間修改這些功能,直到他們要求的所有功能都能很完美的解決掉。
1、項(xiàng)目設(shè)計(jì)
項(xiàng)目設(shè)計(jì)的主導(dǎo)思想,我覺得可以理解為兩種,一種是完全設(shè)計(jì),一個(gè)是簡單設(shè)計(jì)。
完全設(shè)計(jì)是指在具體編寫代碼之前對軟件的各種方面都調(diào)查好,做好詳細(xì)的需求分析、編寫好全部的開發(fā)文檔,設(shè)計(jì)出程序全部流程后再開始寫代碼。 換句話說,就是全部的計(jì)劃好了,能看到最終的樣子,再開戰(zhàn)。這好像也是很多“軟件工程”書里要求的那樣。開始的時(shí)候,我覺得這種方法不錯(cuò)也。什么都計(jì)劃好了,照著做就是了。不過這里有個(gè)明顯的問題,就是誰來做這個(gè)完美的計(jì)劃?估計(jì)只有及其BT的人了,但是大部分人的想要完全設(shè)計(jì),并且沒有錯(cuò)誤,或者已經(jīng)有幾種后備的容錯(cuò)方案,并能準(zhǔn)確無誤的推行。以達(dá)到最終目標(biāo)。這樣的境界,沒有很多年的工作經(jīng)歷是不可能的。我也沒有這樣的本事,所以我也就放棄了這種想法。
簡單設(shè)計(jì):簡單設(shè)計(jì)一種概念,一種可以接受的簡單的設(shè)計(jì),最起碼數(shù)據(jù)庫已經(jīng)定下來,基本流程已經(jīng)確定的方案,來作為程序設(shè)計(jì)的開始,并隨時(shí)根據(jù)實(shí)際情況的進(jìn)展來修正具體的功能設(shè)計(jì),但這種功能修改不能是修改數(shù)據(jù)庫結(jié)構(gòu)。也就是說數(shù)據(jù)庫結(jié)構(gòu)是在編程之前經(jīng)過反復(fù)論證的。這種方法減少了前期設(shè)計(jì)的時(shí)間,把代碼編寫工作和部分設(shè)計(jì)工作放在了一起,實(shí)際縮短了項(xiàng)目開發(fā)的時(shí)間。如果說完全設(shè)計(jì)方法要求有很厲害的前期設(shè)計(jì)人員,那么簡單設(shè)計(jì)要求有很有設(shè)計(jì)頭腦的編程人員。編程人員不僅僅是K代碼的人而且要負(fù)責(zé)程序架構(gòu)的設(shè)計(jì)。所以對程序員的要求就很高了。 簡單設(shè)計(jì)的成功的一個(gè)基點(diǎn)是編程人員設(shè)計(jì)的邏輯結(jié)構(gòu)簡單并能根據(jù)需要來調(diào)整其邏輯結(jié)構(gòu),就是代碼結(jié)構(gòu)靈活,簡單設(shè)計(jì)帶來的另外一個(gè)變化就是會(huì)議會(huì)比較多,編程人員之間的交流就變的很重要,F(xiàn)在一般的中小型軟件公司基本上都是采用簡單設(shè)計(jì)的,除非那些很大型的軟件公司。
總結(jié),簡單設(shè)計(jì)考驗(yàn)的是開發(fā)人員的能力。完全設(shè)計(jì)考驗(yàn)的是前期設(shè)計(jì)人員和整個(gè)項(xiàng)目組完整能力。(各種文檔的編寫,開發(fā)人員一定會(huì)要寫一部分的。)
2、設(shè)計(jì)變化和需求變化
開發(fā)人員最怕的是什么呢?設(shè)計(jì)變化,還是需求變化?我覺得需求變化是最最致命的。當(dāng)你的一個(gè)項(xiàng)目數(shù)據(jù)庫都定下來后,而且已經(jīng)開發(fā)了若干個(gè)工作日,突然接到甲方公司提出,某個(gè)功能要改變,原先的需求分析要重新改,如果這個(gè)修改是涉及的數(shù)據(jù)庫的表結(jié)構(gòu)更改的話,那真是最致命的。這就意味著項(xiàng)目的某些部分得重新推倒重來,如果這個(gè)部分跟已完成的多個(gè)部分有牽連的話,那就后果更可怕了。所以當(dāng)碰到這種情況發(fā)生,作為項(xiàng)目經(jīng)理的你就應(yīng)該考慮先查責(zé)任人,究竟是自己的需求分析做的不夠好,還是客戶在認(rèn)同了需求分析后做出的修改,如果是后者的話,你完全可以要求客戶對他的這個(gè)修改負(fù)責(zé)任!那么,呵呵,客戶先生,對不起了,本次新增加的需求將歸入另外一個(gè)版本。如果是改變前面某個(gè)需求的定義,那么說不定就要推倒重來了,不過這個(gè)時(shí)候到不用太在意,畢竟錯(cuò)的是客戶。(項(xiàng)目正式開始前沒有沒有說清楚其需求)。所以,各位看客,在需求分析做好后,在開工之前一定要叫客戶認(rèn)可簽字,并且在合同上要注明,當(dāng)由客戶原因引起的需求改變而造成開發(fā)成本的增加,客戶要為此買單地。
如果在需求不變的情況之下,設(shè)計(jì)發(fā)生了變化,這個(gè)僅僅是我們內(nèi)部之間的矛盾,商量一下就能解決。在簡單設(shè)計(jì)中,因?yàn)榍捌诘脑O(shè)計(jì)是不完整的,那么當(dāng)進(jìn)入任何一個(gè)新的模塊進(jìn)行開發(fā)時(shí),都有可能引起設(shè)計(jì)的變化。開發(fā)人員的水平的高低就基本上決定了軟件的好壞。
3、代碼編寫
當(dāng)需求定下來數(shù)據(jù)庫也定下來后, 其實(shí)我們就可以進(jìn)行實(shí)質(zhì)性的編碼了,按照我的看法,一個(gè)人單獨(dú)編程最好,能隨時(shí)偷懶。(上網(wǎng),和MM聊聊),但是現(xiàn)在的軟件項(xiàng)目越來越大,工期也越來越緊,事實(shí)上我們一個(gè)小組里面,一般有3-5程序員,所以我們要強(qiáng)調(diào)團(tuán)隊(duì)合作性。那么你寫的代碼使得別人要能夠看懂,我們必須在實(shí)際的編寫代碼過程中要有詳細(xì)的編碼規(guī)范,編碼規(guī)范在很多書籍里面都提到過。但最起碼以下的一些規(guī)范是我們必須要遵守的:
一)源程序文件結(jié)構(gòu):
每個(gè)程序文件應(yīng)由標(biāo)題、內(nèi)容和附加說明三部分組成。
(1)標(biāo)題:文件最前面的注釋說明,其內(nèi)容主要包括:程序名,作者,版權(quán)信息,簡要說明 等,必要時(shí)應(yīng)有更詳盡的說明(將以此部分以空行隔開單獨(dú)注釋)。
(2)內(nèi)容控件注冊等函數(shù)應(yīng)放在內(nèi)容部分的最后,類 的定義按 private 、 protected 、 pubilic 、 __pubished 的順序,并盡量保持每一部分只有一個(gè),各部分中按數(shù)據(jù)、函數(shù)、屬性、事件的順序。
(3)附加說明:文件末尾的補(bǔ)充說明,如參考資料等,若內(nèi)容不多也可放在標(biāo)題部分的最后。
二)界面設(shè)計(jì)風(fēng)格的一致性:
由于采用可視化編程,所有的界面均與Win32方式類似,相應(yīng)采用的控件等也大都為Windows操作系統(tǒng)下的標(biāo)準(zhǔn)控件,而且參考了其他一些市面上相關(guān)的企業(yè)內(nèi)部管理的應(yīng)用軟件。
基于簡單易操作的原則,貼近用戶考慮,用戶界面采用Windows風(fēng)格的標(biāo)準(zhǔn)界面,操作方式亦同Windows風(fēng)格,這樣在實(shí)施過程,可以降低對客戶的培訓(xùn),也可以使用戶容易上手,簡單易學(xué)。
三)編輯風(fēng)格:
(1)縮進(jìn):縮進(jìn)以 Tab 為單位,一個(gè) Tab 為四個(gè)空格大小。全局?jǐn)?shù)據(jù)、函數(shù) 原型、標(biāo)題、附加說明、函數(shù)說明、標(biāo)號(hào)等均頂格書寫。
(2)空格:數(shù)據(jù)和函數(shù)在其類型,修飾(如 __fastcall 等)名稱之間適當(dāng)空格并據(jù)情況對 齊。關(guān)鍵字原則上空一格,不論是否有括號(hào),對語句行后加的注釋應(yīng)用適當(dāng)空格與語句隔開并盡可能對齊。
(3)對齊:原則上關(guān)系密切的行應(yīng)對齊,對齊包括類型、修飾、名稱、參數(shù)等各部分對齊。
另每一行的長度不應(yīng)超過屏幕太多,必要時(shí)適當(dāng)換行。
(4)空行:程序文件結(jié)構(gòu)各部分之間空兩行,若不必要也可只空一行,各函數(shù)實(shí)現(xiàn)之間一般空兩行。
(5)注釋:對注釋有以下三點(diǎn)要求:
A、必須是有意義;
B、必須正確的描述了程序;
C、必須是最新的。
注釋必不可少,但也不應(yīng)過多,以下是四種必要的注釋:
標(biāo)題、附加說明;
函數(shù)說明:對幾乎每個(gè)函數(shù)都應(yīng)有適當(dāng)?shù)恼f明,通常加在函數(shù)實(shí)現(xiàn)之前,在沒有函數(shù)實(shí)現(xiàn)部分的情況下則加在函數(shù)原型前,其內(nèi)容主要是函數(shù)的功能、目的、算法等說明,參數(shù)說明、返回 值說明等,必要時(shí)還要有一些如特別的軟硬件要求等說明;
在代碼不明晰或不可移植處應(yīng)有少量說明;
及少量的其它注釋。
四)命名規(guī)范:
堅(jiān)持采用匈牙利變量命名慣例,所有標(biāo)識(shí)符一律用英文或英文縮寫,杜絕采用拼音,標(biāo)識(shí)符中每個(gè)單詞首字母大寫,縮寫詞匯一般全部大寫,只在必要時(shí)加“_”間隔詞匯。
4、BUG修補(bǔ)
程序出現(xiàn)了BUG誰來修補(bǔ)呢,嘿嘿嘿……
最好的辦法是誰編寫誰修補(bǔ),誰改壞誰修補(bǔ)。一個(gè)人改壞的代碼一人去修。兩個(gè)人一起改壞的代碼兩人一起修。
5、開發(fā)人員的測試
開發(fā)人員的測試是保證代碼能正常運(yùn)行,在開發(fā)時(shí)候發(fā)現(xiàn)的錯(cuò)誤往往比較容易修正。(另外一個(gè)好處就是沒有人來罵你。因?yàn)橹挥心阕约褐?。但是一旦軟件到了測試小組那里出了問題,那么就多了很多時(shí)間來修正BUG,如果到了客戶哪里才發(fā)現(xiàn)的BUG,那么時(shí)間就更長了,開發(fā)人員本身受到的壓力也是到了最大話了?蛻->公司->測試小組->開發(fā)人員。 這個(gè)完全是倒金字塔型的,承受能力差的一環(huán)很容易出事情的。
另外開發(fā)人員的測試除了保證代碼能正常運(yùn)行以外,還有一個(gè)很重要的方面就是要保證上次能正常運(yùn)行的代碼,這次還是能正常運(yùn)行。如果做不到這點(diǎn),那么BUG就不斷的會(huì)出現(xiàn),很多BUG也會(huì)反復(fù)出現(xiàn)。于是軟件看上去就有修補(bǔ)不完的BUG了。如果出現(xiàn)這種情況,那么開發(fā)人員有必要再教育。一般公司教育的方式有四種。
第一種,扣工資,
第二種,加班,反復(fù)加班+精神攻擊。
第三種,開除。
第四種,調(diào)動(dòng)人員來幫助那個(gè)出了麻煩的家伙。 但愿看這個(gè)文章的人不要受到前面三種教育。
擴(kuò)展閱讀:
1.http://www.itisedu.com/phrase/200603282233345.html
2.http://anshannet.cn/soft.asp
3.http://www.whlanhai.com
4.http://www.lema360.com