可可簡歷網

位置:首頁 > 職場 > 工作總結

程式設計師的個人總結7篇

通過個人總結,我們可以發現自己在職業生涯中所做出的正確決策和明智選擇,意識到個人總結寫作的重要性,我們就能夠在工作和學習中不斷積累經驗,實現自我突破,下面是本站小編為您分享的程式設計師的個人總結7篇,感謝您的參閱。

程式設計師的個人總結7篇

程式設計師的個人總結篇1

我是一名程式設計師,在過去的一年裡,軟體研發部團結協作,以及在公司這充滿奮鬥的環境下,我以嚴肅認真的工作態度和百折不饒的精神,努力的完成了公司的各項工作,在軟體研發、團隊協作和個人成長上也取得了一定的成績。在公司一年的工作已經結束,特向公司總結匯報如下:

一、軟體研發

根據公司的安排,專案的需要。在自身的努力、伍經理的幫組,團隊的合作下,克服重重技術困難,增長了工作經驗,收穫豐盈:

1、asp開發

以前我在其他公司也做過一些開發,但是底層和架構與頁面樣式我都是沒有涉及到的。通過這一年在本公司的的這些專案程式中的鍛鍊,我成長了,我學會了很多很多。

首先,面嚮物件語言的收穫。對於當前程式設計的主流思想是物件,任何事物都可以用物件來表示。以前理解這些話很費解都是從表面上理解,沒有從中的體會,通過這次asp專案的開發,不管是資料還是外部一些條件我們都可以抽象成物件,都可以用物件來表示,具體可以用語言中的類方等。asp如此,c#如此java也同樣如此。

其次,具備獨立完成vb知識方面的能力。以前沒有做過vb的東西,加上這次asp的做,這次涉及到的領域也非常廣,常用的重要的都有涉及,並且還補充_ml,java實際操作中空白的部分。通過這一年的開發,我能勝任這方面的工作,能獨立完成這方面的工作。

再次,c#方面存在一些不足。localhost通過c#這次軟體的開發,也發現自己的不足,如基礎知識掌握不牢,缺乏程式設計整體思想。這些都是需要在工作中完善和改進的。

2、資料庫開發

資料庫是伴隨著專案以來用的最多最平凡的技術。以前對資料庫只是會一些簡單常用的操作,經過這一年專案的實戰,對資料庫的操作增加了一些豐富的經驗。為以後的工作和經驗的積累都奠定了堅實的基礎。同時在專案中還用到了oracel與access資料庫,這是我的收穫。

優點:

能熟練的運用資料庫技術進行開發。特別是對sql資料庫的操作,經過這麼長時間的積累,基本上能合理的設計和新建資料庫,同時在資料結構上也加強了對資料庫的理解。通過專案的實踐現在能熟練使用和編寫多種sql語句。還掌握了一些關於資料庫優化sql語句優化的方法,能進行一些簡單的優化。

缺點:

資料是一門比較先進的技術,並不是你會寫一些sql語句,能建幾個資料庫你就是資料庫工程師。要成為一個好的資料庫管理員是要經過長時間的工作積累。針對自己的不足,在以後的.工作和學習中多接觸,多運用新的知識點。充實自己的經驗和知識儲備。

二、團隊協作

上面的成功與收穫,除了自身努力外,以及公司的支援。是這個團隊鑄造了我。我們這個團隊也是因為有了我們這些拼搏協作的隊員,使得它成為一個具有務實、拼搏、創新精神的團隊。我與軟體研發小組是一個整體,這裡的團隊總結也就是我在這個團隊中的收穫。

務實:公司下發的任務,下發的工作,件件都是用心去做的。我們這個團隊中沒有一個人在工作的時候做了工作以外的事情,都是實實在在的做跟工作相關對公司有益的事情。相信在伍經理的帶領下現在是這樣,以後同樣也是這樣。

拼搏:公司給的每一個任務不管它多難,如果工作沒有完成我們會晚上加班,也要儘可能的完成當天的工作。如果工作實在忙,為了趕進度我們放棄週末休息時間也要儘可能的使專案提前。

創新:現在我們開始專案的時候都會進行研討,一般都會進行一個效率和邏輯的分析與討論,保證程式正確的前提儘可能的提高程式的效率。

互助:我們小組內只要任何一個人出現技術或其它的問題,我們都會彼此都會盡可能的去幫助他。不會因為某一個人而拖住整個專案滯後。

交流:我們在專案中會及時溝通自己的收穫,特別是一些針對性的技術問題。這樣可以省了很多重複研究的時間,這是一筆很可觀的時間。

在交流中只要我會的,我懂的,我不會去吝嗇。我會積極的去與你交流,我的團隊名言“人強團則強,人弱團則削”。

三、個人成長

通過公司這快一年的鍛鍊與學習我真的進步了很多,不管從技術上還是做事上,都不像以前那樣了。我在公司學到的懂得的使我飛速成長。

技術上:不管從語言上還是做事的邏輯上都得到了很大的的提高。現在在軟體小組裡面自己能獨立完成一部分工作,承擔自己的責任。

程式設計師的個人總結篇2

我於xxxx年9月11日成為本公司技術部的一名。net程式設計師,三個月的試用期轉眼就過去了。這段我人生中彌足珍貴的經歷,給我留下了精彩而美好的回憶。在這段時間裡您們給予了我足夠的關懷、支援和幫助,讓我充分感受到了領導們海納百川的胸襟,在對您們肅然起敬的同時,也為我有機會成為影響力線上的一員而驚喜萬分。

這段時間,在領導和同事們的關懷和指導下,我通過不懈努力,各方面均取得一定的進步,現將我的工作情況做如下彙報:

一、通過理論學習和日常工作積累經驗我的各方面有了很大的進步。

剛到公司不久,我便開始負責。net方面的網站開發和廣告平臺開發和維護,剛開始的時候對我來說確實壓力很大,因為各方面都還不熟悉,而且與之前的公司相比,節奏也有點快,不過我慢慢的習慣了環境,和同事相處的比較融洽,領導對我也比較關心,在公司裡工作就像是在一個幸福的大家庭裡一樣,我很快喜歡上了這裡。

我到公司不久,第一個專案是xxx公司網站,做這個專案的時候我遇到了幾個問題,我在以前公司做的時候沒有在這麼短的時候完成一個專案的,在效率上提高了我的能力。做這個專案的時候我也遇到了許多以前沒有遇到過的問題,我請教同事和朋友,還有藉助網路一一解決了難題。

之後,我將b2b廣告招商平臺進行了改版,開發了xxx智慧建站廣告平臺以及以後網站的維護工作。

接下來,我又做了一個比較棘手的專案xxx線上諮詢系統。為什麼說棘手呢,因為我以前沒有做過這方面的專案,而且我問遍了所有認識的朋友,搜遍了網路也沒有找到如何解決的方法,之後我翻書籍,接著搜尋網路。功夫不負有心人,終於我找到一個聊天室的小例子,但是功能差的太遠,於是我把這個示例一點點的研究,從一點也不懂到後來慢慢看懂,從對ajax技術一無所知到基本熟練運用。接下來我就開始自己開發,到最後終於把它開發了出來,雖然不是很完美,功能不是很強大,但是它是我辛苦的勞動結晶,我相信以後會把它開發的更強大,更完美。

二、明確崗位職能,認識個人技術能力不足。

經過三個多月的工作,雖然完成了一些專案的開發,我的技能也提高了很多,但是感覺我的技術還有待提高,所以我會在以後的工作中更加努力,努力提高自己的技術和各種不足,努力使自己成為一名稱職的職員。

三、提出自己努力計劃

1、學無止鏡,時代的發展瞬息萬變,各種學科知識日新月異。我將堅持不懈地努力學習各種技術知識,並用於指導實踐。

2、業精於勤而荒於嬉,在以後的工作中不斷學習知識,通過多看、多學、多練來不斷的提高自己的各項技能。

3、不斷鍛鍊自己的膽識和毅力,提高自己解決實際問題的能力,並在工作過程中慢慢克服急躁情緒,積極、熱情、細緻地的對待每一項工作。

4、努力提高自己的日常交際能力。

時光流轉間,我已到公司工作三個多月。非常感謝公司領導對我的信任,給予我體現自我、提高自我的機會。這三個多月的試用期工作經歷,使我的工作能力得到了由校園步入社會後幅度的提高。

在此,在對試用期的工作情況及心得體會做一彙報後,我想借此機會,正式向公司領導提出轉正請求。希望公司領導能對我的工作態度、工作能力和表現,以正式員工的要求做一個全面考慮,能否轉正,期盼回覆。我會以炙熱的工作熱情繼續投入到今後的工作當中,以自己踏實努力的工作,報公司知遇之恩!

程式設計師的個人總結篇3

1、完成的主要工作

1.1工程部pda運維繫統

我是4月末來到公司的,來到公司的初期主要是對工程部pda運維繫統進行了解,並對pda以後可能用到的一些技術進行研究,而後對現有的專案進行修改。系統包括3個主要功能模組,一個次要模組,主要模組有工單管理、訊息管理和系統升級。工單管理的修改系統升級可下載單個的檔案,可同過一個檔案升級

pda上線之前主要在有線的5個站點做實施工作,第一次做實施,以為只是簡單的教使用者怎麼用就可以了,但是真正做起來才知道,針對不同的使用者需要用不同的角度去講解,特別是年齡大的,要多講幾遍才行。

pda上線以後工作主要集中在pda的維護和修改上,由於距離上次實施時間較長,所以又進行了一次實施。每個站點使用pda的時間不同,花費在每個站點上的維護和實施時間較長,在實施和維護期間每個站點都提出了不同的問題,針對不同的問題修改了很長時間,其中修改最多的模組主要集中於工單管理模組和系統升級模組。系統在所有站點都開始使用以後主要針對站點提出的不同的問題進行解決和系統的改進,經過改進的系統很穩定,問題基本出現在由於訊號不好的原因導致升級失敗,由於卡停機導致系統不能正常登入。還有幾次是因為網路原因導致系統不能使用

1.2有線boos系統

pda運維專案穩定後主要做了些boos系統中的一些功能,資料庫資料的批量轉移,百萬條資料的批量的轉移功能。

寬頻系統的的諮詢查詢,根據使用者地址和時間進行查詢,修改寬頻大客戶atm資料查詢功能

boos系統網上營業廳繳費的遺漏查詢

網上營業廳二期產品卡消費

修改了付費頻道發票列印功能

全網稽查中主工單的列印。

2、收穫到的東西

2.1經驗上的收穫

來到公司8個月,學到了很多東西,不僅僅學到了學校裡沒有的技術,還學到了技術以外的更多的東西。

剛來公司的時候我一直想做java方面的專案,但是張總卻讓我做的專案,我很不解,感覺違背了當初的意向。通過和張總的談話讓我懂得,做一個好的軟體不在於語言,而是軟體本身的質量,軟體能不能給使用者的使用帶來方便、軟體的介面是否簡單大方,不讓人反感,軟體是否穩定,容易維護、容易擴充套件。利用語言做軟體只是一個程式設計師的基礎,更重要的是能發現問題、認識問題、解決問題,做一個好的軟體應該設身處地的站在使用者的角度考慮怎麼樣才能更有利於使用者的使用。

通過pda系統的實施也學到了不少的東西,由於是第一次做實施,沒有什麼經驗可言,把實施看的很簡單。通過本次實施我點的思想也有所改變,我認為實施主要是溝通,實施就是站在別人的角度去思考問題,只有站在別人的角度去思考才能在短時間內教會使用者使用。軟體的實施,並不是一件很容易的事,由於使用者的年齡和文化層次不同,我們要了解不同的人,針對不同的人實行不同的培訓方法,。還有一些人只是單純的聽講,碰到不會的不懂的問題不問,對於這種人要更細心的耐心的講解,通過本次實施,自己也積累了一些經驗,相信在以後的實施工作中,我會做的更好。

綜上所述,主要總結出以下幾點。

(1)語言只是做軟體的一種工具,更好的軟體是站在客戶的立場上用心的設計,讓使用者使用更方便、更快捷。

(2)利用技術實現軟體的功能只是軟體的表面,認識問題、分析問題、解決問題才是最重要的。

(3)養成總結與反思的習慣,並有意識地提煉日常工作成果,在實施上要認真的總結工作經驗,為以後的實施工作打基礎。

(4)不論是做事還是做程式,一定要有清晰的思路,要認真仔細的去做,要有耐心和心信。

2.2程式上的收穫

程式碼規範,注重交流

剛來到公司的時候程式碼不規範,該加註釋的不加註釋,經過同事杜明月的指導和程式碼對比發現了自己的不足,進而意識到程式碼書寫的規範與否會直接影響程式碼的易讀性,進而影響到軟體開發的效率。經過一段時間的修正,體會到如果自己寫的程式碼很爛會讓下一個改你程式的同事很是頭疼,所以一定要提高自己的素質,首先應該注意的要條理清楚、思路明晰、程式碼規範。

軟體開發不是一個人的事,在團隊中技術與交流同等重要,交流是團隊開發的基石,技術水平是專案堅固的保證。

測試不馬虎

一次系統升級,由於是剛剛改好的程式就要上機,就沒有好好測試,結果升級後部分pda出現了閃屏問題,造成了麻煩。經過那次升級意識到測試可能不一定需要很高的技術含量。但卻是個考驗細心,嚴謹的任務。甚至有的時候感到很繁瑣枯燥。但這個保證軟體質量的一個重要過程。

掌握進度,隨時彙報

在做程式的時候以後都應該時刻提醒自己反應情況,提出自己遇到的困難需要哪些幫助.遇到不會的,不懂的應該及時問.

我認為我適合的工作,因為我對手機很感興趣,所以首先要開發手機端的軟體,同時也開發其他的專案,因為開發其他專案的同時也會了解更多的業務,也會提高自己的綜合水平,我這個人又比較喜歡說話,喜歡交朋友.所以在開發程式以外,我也希望自己多做些實施方面的工作,這樣即能更好的瞭解需求又有助於提高自己的語言表達能力.

程式設計師的個人總結篇4

記得去年寫總結的時候心情很差,抱怨了很多當時的工作以及領導花生,那個時候的願望是找一份新工作。沒想到剛進入12月我

就找到了。

不得不說這一次求職我是認真的把它當作一個工程去做,客觀得對自己進行了定位,而且非常重要的是明確我想要的工作到底是什麼樣的。我需要的是讓我每天的8小時能夠享受工作的快樂。

投簡歷面試的過程非常折磨人,尤其是我的處境(每天很大壓力,完全是自我打磨的階段)。我清楚地記得面試現在這份工作那天是某個週六,我的經理娃娃和技術主管t同意我週末面試。一共4個小時,那絕對是一個互相爭取的過程。他們對於工作的熱情打動了我,覺得和這樣的團隊合作一定可以有火花。

真是幸運,當我正視錯誤,用行動做出改變的時候,找到了一份我要的工作。入職三週已經和團隊磨合得很好了,用同事的話說就是覺得我已經加入很久了。

這裡不得不說一句我們的團隊,一個老中青結合富有戰鬥力的集體,而且還不乏八卦調節生活。每個人都特別,合作也會有摩擦,但是整體運作非常協調,開發速度和效率都高。從他們身上我看到不同的工作態度,生活態度。這些對我的職業規劃都有著潛移默化的影響。領導“娃娃”也非常合適我目前階段對於領導的需求。如果說幾年前我初出茅廬需要的是一個有時間且肯耐心帶我的領導的話,現在的我需要的是一個可以給予我充分信任的上司。“娃娃”信

任我,從剛進入公司就如此。在熟悉產品階段我提出的問題和建議他都認真的聽了,而且給我時間讓我按照自己的想法作出修改。後來我也喜歡把新想法跟他說,當我們帶著創意去和老闆談的時候他是我堅強的後盾。

這一年下來我在純技術上的提高並不多,我們所面向的客戶並不要求尖端的技術。經驗主要體現在理解需求上面,如果說前兩年我還需要領導把需求說得很明白,還會為馬後炮而耿耿於懷。那麼今年應該算是個分水嶺。現在的我不需要領導花很久時間來講需求,也不用每一步都需要認可再做接下來的工作。總的來說就是技術和業務之間的距離越來越近,而且還可以想到客戶將來會需要什麼。

程式設計師的個人總結篇5

20xx年即將過去,新的一年即將來臨。為了在新的一年裡不斷的提高自己的工作效率,現將這一年的工作總結如下:

一、思想方面

嚴格按照一個程式設計師應有的素養來約束自己,愛崗敬業,具有強烈的責任崗和事業心,積極主動認真的學習專業知識,工作態度端正,聽從公司的安排,積極配合客戶完善數字化校園系統。

二、工作方面

熱愛自己的本職工作,能夠正確認真的對待每一項工作,工作投入,熱心為大家服務,認真遵守勞動紀律,按時上下班,有效利用工作時間,堅守崗位,需要加班完成工作的要按時加班加點,保證工作能夠按時完成。在這一年多的時間裡面,我本著把工作做的更好這樣一個目標,主動了解公司的開發專案流程,請教他們開發技術上的問題。

三、 工作心得

1. 在這一年多的時間裡面,我參與的都是團隊合作的專案,無論是自己還是同事,我們都將就團隊精神。在信任自己和他人的基礎上,思想統一,行動一致,這樣的團隊一定會攻無不克戰無不勝。我們的很多工作是一起完成的,在這個過程中,大家互相提醒和補充,大大提高了工作效率,所有的工作中溝通是最重要的,一定要把資訊處理的及時,有效和清晰。

2. 每一個專案在開始著手的第一步,一定要和客戶把需求溝通清除,只要瞭解專案的需求,才有可能真正做好一個專案。我們需要向客戶提出,要求客戶提供所有涉及該專案的資料,每次與客戶見面都需要熟悉業務與程式的程式設計師隨時記錄需求。

3. 工作中,將任務詳細化,詳細到每個頁面,甚至是一個頁面中的圖片什麼時候做好,做好到什麼程度,這樣把工作進度有計劃有方向的定下來,做事很有效率。

4. 每天的工作小結真的很重要,這讓我們每天都有計劃的知道自己幹了什麼,不是漫無目的的工作,所以我們應該養成,日記、週記、月記、年記的工作習慣。

5. 工作並不是一成不變的,也許有一天你要去其他崗位幫忙,所以同事之間的技術要相互學習,也許有一天,公司需要你發揮其他的技能幫忙,所以相互學習也是很重要的。

四、工作教訓

在公司工作的期間,我也發現了自己離一個符合公司要求的程式設計師還有很多差距,主要體現在工作技能與工作經驗的不夠,也是我以後要在工作中不斷磨練和提高自己的地方。仔細總結一下,自己在工作中主要有以下方面做的不夠好:

1. 工作的條理性不夠清晰,要分清主次和輕重緩急。

在開發時間很倉促的情況下,事情多了,就一定要有詳細而主次分明的計劃,哪 需要立即完成,哪些可以緩緩加班完成,在這方面還有很大的優化空間。

2. 對流程、業務需求不夠熟悉。

在工作中,發現因為流程或業務需求的問題而不知道如何下手的情況有點多,包括錯誤與缺漏還有當時設計考慮不到位的地方,對於這塊的控制力度顯然不夠,平時總是在開發,但說到底對業務很熟悉才是專案很好完成的前提。

3. 缺乏工作經驗。

4. 學習的知識不夠廣泛。

一個專案中,涉及的技術往往有很多種,知識多了,就會靈活變通,以後我也會加強這方面的學習。

五、工作計劃

要提高工作主動性,做事幹脆果斷,不拖泥帶水。工作要注重實效、注重結果,一切工作圍繞著目標完成。 要提高大局觀,是否能讓其他人的工作更順暢作為衡量工作的標尺。 把握一切機會提高專業能力,加強平時知識總結工作。精細化工作方式的思考和實踐。 虛心請教比我做的優秀的其他同事,向他們學習技術或經驗。

其實作為一名員工,所有的地方都是需要學習的,多聽、多看、多想、多做、多溝通,向每一個員工學習他們身上的優秀工作習慣,豐富的專業技能,配合著實際工作不斷的進步,不論在什麼環境下,我都相信付出總會有回報的。

程式設計師的個人總結篇6

過去的一年,軟體研發部團結協作,以及在公司這充滿奮鬥的環境下,我以嚴肅認真的工作態度和百折不饒的精神,努力的完成了公司的各項工作,在軟體研發、團隊協作和個人成長上也取得了一定的成績。在公司一年的工作已經結束,特向公司總結匯報如下:

一、軟體研發

根據公司的安排,專案的需要。在自身的努力、伍經理的幫組,團隊的合作下,克服重重技術困難,增長了工作經驗,收穫豐盈:

1、開發:

以前我在其他公司也做過一些開發,但是底層和架構與頁面樣式我都是沒有涉及到的。通過這一年在本公司的的這些專案程式中的鍛鍊,我成長了,我學會了很多很多。

首先,面嚮物件語言的收穫。對於當前程式設計的主流思想是物件,任何事物都可以用物件來表示。以前理解這些話很費解都是從表面上理解,沒有從深入的體會,通過這次專案的深入,不管是資料還是外部一些條件我們都可以抽象成物件,都可以用物件來表示,具體可以用語言中的類方等。如此,c#如此java也同樣如此。

其次,具備獨立完成知識方面的能力。以前沒有做過vb的東西,加上這次深入的做,這次涉及到的領域也非常廣,常用的重要的都有涉及,並且還補充_ml,__實際操作中空白的部分。通過這一年的開發,在方面我能勝任這方面的工作,能獨立完成這方面的工作。

2、資料庫開發:

資料庫是伴隨著專案以來用的最多最平凡的技術。以前對資料庫只是會一些簡單常用的操作,經過這一年專案的實戰,對資料庫的操作增加了一些豐富的經驗。為以後的工作和經驗的積累都奠定了堅實的基礎。同時在專案中還用到了oracel與access資料庫,這是我的收穫。

優點:能熟練的運用資料庫技術進行開發。特別是對sql資料庫的操作,經過這麼長時間的積累,基本上能合理的設計和新建資料庫,同時在資料結構上也加強了對資料庫的理解。通過專案的實踐現在能熟練使用和編寫多種sql語句。還掌握了一些關於資料庫優化sql語句優化的方法,能進行一些簡單的優化。

缺點:資料是一門比較先進的技術,並不是你會寫一些sql語句,能建幾個資料庫你就是資料庫工程師。要成為一個好的資料庫管理員是要經過長時間的工作積累。

二、團隊協作

上面的成功與收穫,除了自身努力外,以及公司的支援。是這個團隊鑄造了我。我們這個團隊也是因為有了我們這些拼搏協作的隊員,使得它成為一個具有務實、拼搏、創新精神的團隊。我與軟體研發小組是一個整體,這裡的團隊總結也就是我在這個團隊中的收穫。

拼搏:公司給的每一個任務不管它多難,如果工作沒有完成我們會晚上加班,也要儘可能的完成當天的工作。如果工作實在忙,為了趕進度我們放棄週末休息時間也要儘可能的使專案提前。

創新:現在我們開始專案的時候都會進行研討,一般都會進行一個效率和邏輯的分析與討論,保證程式正確的前提儘可能的提高程式的效率。

互助:我們小組內只要任何一個人出現技術或其它的問題,我們都會彼此都會盡可能的去幫助他。不會因為某一個人而拖住整個專案滯後。

交流:我們在專案中會及時溝通自己的收穫,特別是一些針對性的技術問題。這樣可以省了很多重複研究的時間,這是一筆很可觀的時間。

三、個人成長

通過公司這快一年的鍛鍊與學習我真的進步了很多,不管從技術上還是做事上,都不像以前那樣了。我在公司學到的懂得的使我飛速成長。不管從語言上還是做事的邏輯上都得到了很大的提高。現在在軟體小組裡面自己能獨立完成一部分工作,承擔自己的責任。

程式設計師的個人總結篇7

7.5.3系統測試和除錯

1.系統測試的意義及目的

系統測試是為了發現錯誤而執行程式的過程,成功的測試是發現了至今尚未發現的錯誤的測試。

測試的目的就是希望能以最少的人力和時間發現潛在的各種錯誤和缺陷。應根據開發各階段的需求、設計等文件或程式的內部結構精心設計測試例項,並利用這些例項來執行程式,以便發現錯誤。資訊系統測試應包括軟體測試、硬體測試和網路測試。硬體測試、網路測試可以根據具體的效能指標來進行,此處所說的測試更多的是指軟體測試。

系統測試是保證系統質量和可靠性的關鍵步驟,是對系統開發過程中的系統分析、系統設計和實施的最後複查。根據測試的概念和目的,在進行資訊系統測試時應遵循以下基本原則:

·應儘早並不斷地進行測試。測試不是在應用系統開發完之後才開始進行的。由於原始問題的複雜性、開發各階段的多樣性以及參加人員之間的協調等因素,使得在開發各個階段都有可能出現的錯誤。因此,測試應貫穿在開發的各個階段,儘早糾正錯誤,消除隱患。

·測試工作應該避免由原開發軟體的人或小組承擔,一方面,開發人員往往不願否認自己的工作,總認為自己開發的軟體沒有錯誤;另一方面,開發人員的錯誤很難由本人測試出來,很容易根據自己程式設計的思路來制定測試思路,具有侷限性。測試工作由專門人員來承擔會更客觀,更有效。

·設計測試方案的時候,不僅要確定輸入資料,而且要根據系統功能確定預期輸出結果。將實際輸出結果與預期結果進行比較就能發現測試物件是否正確。

·在設計測試例項時,不僅要設計有效合理的輸入條件,也要包含不合理、失效的輸入條件。測試的時候,人們往往習慣按照合理的、正常的情況進行測試,而忽略了對異常、不合理、意想不到的情況進行測試,而這些可能就是隱患。

·在測試程式時,不僅要檢驗程式是否做了該做的事,還要檢驗程式是否做了不該做的事。多餘的工作會帶來副作用,影響程式的效率,有時會帶來潛在的危害或錯誤。

·嚴格按照測試計劃來進行,避免測試的隨意性。測試計劃應包括測試內容、進度安排、人員安排、測試環境、測試工具和測試資料等。嚴格按照測試計劃進行測試可以保證進度,使各方面都得以協調進行。

·妥善儲存測試計劃和測試例子,將其作為軟體文件的組成部分,為維護提供方便。

·測試例子應是精心設計出來的,可以為重新測試或追加測試提供方便。當糾正錯誤、系統功能擴充後,都需要重新開始測試,而這些工作重複性很高,可以利用以前的測試例子,或在其基礎上修改,然後進行測試。

2.測試過程

測試是開發過程中一個獨立且非常重要的階段,測試過程基本上與開發過程平行進行。

一個規範化的測試過程通常包括以下基本的測試活動。

(1)擬定測試計劃。在制定測試計劃時,要充分考慮整個專案的開發時間和開發進度以及一些人為因素和客觀條件等,使得測試計劃是可行的。測試計劃的內容主要有:測試的內容、進度安排、測試所需的環境和條件、測試培訓安排等。

(2)編制測試大綱。測試大綱是測試的依據。它明確詳盡地規定了在測試中針對系統的每一項功能或特性所必須完成的基本測試專案和完成測試的標準。

(3)根據測試大綱設計和生成測試例子。在設計測試例子的時候,可綜合利用前面介紹的測試例子和設計技術,產生測試設計說明文件,其內容主要有被測專案、輸入資料、

測試過程、預期輸出結果等。

(4)實施測試。測試的實施階段是由一系列的測試周期組成的。在每個測試周期中,測試人員和開發人員將依據預先編制好的測試大綱和準備好的測試例子,對被測軟體或裝置進行完整的測試。

(5)生成測試報告。測試完成後,要形成相應的測試報告,主要對測試進行概要說明,列出測試的結論,指出缺陷和錯誤。另外,給出一些建議,如可採用的修改方法,各項修改預計的工作量及修改的負責人員。

3.測試策略和測試方法

軟體測試方法分人工測試和機器測試。

1)人工測試

人工測試指的是採用人工方式進行測試,目的是通過對程式靜態結構的檢查,找出編譯時不能發現的錯誤。經驗表明,組織良好的人工測試可以發現程式中30%~70%的編碼和邏輯設計錯誤。

人工測試又稱為程式碼審查,其內容包括檢查程式碼和設計是否一致,檢查程式碼邏輯表達是否正確和完整,檢查程式碼結構是否合理等。主要有3種方法。

·個人複查:指程式設計師本人對程式進行檢查。由於心理上的原因和思維慣性的影響,對自己的錯誤一般不容易發現,對功能理解的錯誤更不可能糾正。因此,這種方法主要針對小規模程式,效率不高。

·抽查:通常由3~5人組成測試小組,測試人員應是沒有參加該專案開發的有經驗的程式設計人員。在抽查之前,應先閱讀相關的軟體資料和源程式,然後由測試

人員扮演計算機的角色,將一批有代表性的測試資料沿程式的邏輯走一遍,監視程式的執行情況。人工檢測程式很慢,只能選擇少量簡單的例子。

·會審。測試人員的構成與抽查類似。在會審之前,測試人員應該充分閱讀相關資料,比如系統分析說明書、系統設計說明書、源程式等。測試人員應儘可能多地列出典型錯誤。在會審時,由程式設計人員逐句講解程式,測試人員逐個審查、提問。通過這種方式,往往可能使程式設計人員發現自己以前沒有意識到的錯誤,使問題暴露=會審後,要將發現的問題登記、分析、歸類。

·程式碼複審應該在被測軟體編譯成功之後。編譯都不通過的軟體,當然談不上覆審。在複審期間,應保證有足夠的時間,讓測試小組對問題進行充分的討論,這樣才能有效地提高測試效率,避免出錯。

2)機器測試

機器測試是把設計好的測試例子作用於被測程式,比較測試結果和預期結果是否一致。如果不一致,就說明可能存在錯誤。機器測試只能發現錯誤的症狀,無法對問題進行定位。

機器測試分為黑盒測試和白盒測試兩種。

(1)黑盒測試也稱為功能測試。將軟體看成黑盒子,在完全不考慮軟體內部結構和特性的情況下,測試軟體的外部特性。進行黑盒測試主要是為了發現以下幾類錯誤:

·是否有錯誤的功能或遺漏的功能?

·介面是否有誤?輸入是否正確接收?輸出是否正確?

·是否有資料結構或外部資料庫訪問錯誤?

·效能是否能夠接受?

·是否有初始化或終止性錯誤?

(2)白盒測試也稱為結構測試。將軟體看成透明的白盒。根據程式的內部結構和邏輯來設計測試例子,對程式的路徑和過程進行測試,檢查是否滿足設計的要求。其原則是:

·程式模組中的所有獨立路徑至少執行一次。

·在所有的邏輯判斷中,取“真”和取“假”的兩種情況至少都要執行一次。·每個迴圈都應在邊界條件和一般條件下各執行一次。

·測試程式內部資料結構的有效性等。

4.軟體測試步驟

軟體測試實際上可分成4步進行。

1)單元測試‘

單元測試也稱為模組測試,在模組編寫完成且無編譯錯誤後就可以進行。如果選用機器測試,一般用白盒測試法,多個模組可以同時進行。

測試一個模組時需要編寫一個驅動模組和若干個樁(stub)模組。驅動模組的功能是向被測試模組提供測試資料,驅動被測模組,並從被測模組中接收測試結果。樁模組的功能是模擬被測模組所呼叫的子模組,它接收被測模組的呼叫,檢驗呼叫引數,模擬被呼叫的子模組功能,把結果送回被測模組。

2)組裝測試

組裝測試也稱為整合測試,就是把模組按系統設計說明書的要求組合起來進行測試。

即使所有模組都通過了測試,但在組裝之後,仍可能會出現問題:穿過模組的資料被丟失;一個模組的功能對其他模組造成有害的影響;各個模組組裝起來沒有達到預期的功能;全域性資料結構出現問題;另外,對於單個模組來說其誤差可以接受,但模組組合後,可能會出現誤差累積,最後到不能接受的程度,所以需要組裝測試。

通常,組裝測試有兩種方法:一種是分別測試各個模組,再把這些模組組合起來進行整體測試,即非增量式整合;另一種是把下一個要測試的模組組合到已測試好的模組中,測試完後再將下一個需要測試的模組組合起來,進行測試,逐步把所有模組組合在一起,並完成測試,即增量式整合。非增量式整合可以對模組進行並行測試,能充分利用人力,並加快工程進度。但這種方法容易混亂,出現錯誤不容易查詢和定位。增量式測試的範圍逐步擴大,錯誤容易定位,而且已測試的模組可在新的條件下再測試,使測試更徹底。

3)確認測試

經過組裝測試之後,軟體就被整合起來,介面方面的問題已經解決,將進入軟體測試的最後一個環節——確認測試。確認測試的任務就是進一步檢查軟體的功能和效能是否與使用者要求的一致。系統方案說明書描述了使用者對軟體的要求,所以是軟體有效性驗證的標準,也是確認測試的基礎。

確認測試,首先要進行有效性測試以及軟體配置審查,然後進行驗收測試和安裝測試,經過管理部門的認可和專家鑑定後,軟體即可交給使用者使用。

4)系統測試

系統測試是將已經確認的軟體、計算機硬體、外設和網路等其他因素結合在一起,進行資訊系統的各種組裝測試和確認測試,其目的是通過與系統的需求相比較,發現所開發的系統與使用者需求不符或矛盾的地方。系統測試是根據系統方案說明書來設計測試例子的,常見的系統測試主要有恢復測試、安全性測試、強度測試、效能測試、可靠性測試、安裝測試。

5.除錯’

除錯的任務就是根據測試時發現的錯誤,找出原因和具體的位置,進行改正。除錯工作主要由程式開發人員來進行,誰開發的程式就由誰來進行除錯。

目前常用的除錯方法有如下幾種:

·試探法。除錯人員分析錯誤的症狀,猜測問題的所在位置,利用在程式中設定輸出

語句,分析暫存器和儲存器的內容等手段來獲得錯誤的線索,一步步地試探和分析出錯誤所在。這種方法效率很低,適合於結構比較簡單的程式。

·回溯法。除錯人員從發現錯誤症狀的位置開始,人工沿著程式的控制流程往回跟蹤程式碼,直到找出錯誤根源為止。這種方法適合於小型程式,對於大規模程式,由於其需要回溯的路徑太多而變得不可操作。

·對分查詢法。這種方法主要用來縮小錯誤的範圍,如果已經知道程式中的變數在若干位置的正確取值,可以在這些位置上給這些變數以正確值,觀察程式執行的輸出結果。如果沒有發現問題,則說明從賦予變數一個正確值開始到輸出結果之間的程式沒有錯,問題可能出在除此之外的程式中,否則錯誤就在所考察的這部分程式中,對含有錯誤的程式段再使用這種方法,直到把故障範圍縮小到比較容易診斷為止。

·歸納法。歸納法就是從測試所暴露的問題出發,收集所有正確或不正確的資料,分析它們之間的關係,提出假設的錯誤原因,用這些資料來證明或反駁,從而查出錯誤所在。

·演繹法。根據測試結果,列出所有可能的錯誤原因。分析已有的資料,排除不可能和彼此矛盾的原因。對餘下的原因,選擇可能性最大的,利用已有的資料完善該假設,使假設更具體。用假設來解釋所有的原始測試結果,如果能解釋這一切,則假設得以證實,也就找出了錯誤;否則,要麼是假設不完備或不成立,要麼有多個錯誤同時存在,需要重新分析,提出新的假設,直到發現錯誤為止。