軟件測試項目總結范文
時間:2023-03-23 01:45:26
導語:如何才能寫好一篇軟件測試項目總結,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
關鍵詞:項目驅動法;軟件測試;教學方法
作者簡介:趙曉君(1979-),女,河南南陽人,鄭州輕工業學院軟件學院,講師;黃艷(1976-),女,河南信陽人,鄭州輕工業學院軟件學院,副教授。(河南 鄭州 450002)
基金項目:本文系鄭州輕工業學院校級青年教師教學改革項目的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)07-0101-02
隨著軟件產業的快速發展,軟件系統的規模越來越大,功能實現也越來越復雜,導致軟件中存在的缺陷數量大大增加,這些缺陷將會帶來各種損失,甚至出現災難性的后果。因此,如何保證軟件質量已成為所有使用軟件和開發軟件的人們關注的焦點。軟件測試作為軟件工程的一個重要組成部分,是目前用來驗證軟件是否能夠滿足用戶需求功能的唯一有效方法,是保證和提高軟件質量的重要環節。為適應軟件產業的發展趨勢和滿足軟件測試人才的大量需求,目前已經有許多大學在軟件工程專業添加軟件測試課程或者添加軟件測試專業方向。
軟件測試專業包含多門專業課程,有“軟件測試理論”、“軟件測試技術”和“軟件缺陷管理”等,其中,“軟件測試理論”課程重點為初學測試的同學講解測試的基礎理論知識,主要包括軟件測試基本理論、軟件測試方法和技術等,在多門專業課程中占有舉足輕重的地位。
一、“軟件測試理論”教學現狀
“軟件測試理論”課程重點介紹軟件測試的基本理論,因此整個課程主要以教師講授為主,在教學的過程中存在以下問題:
1.教學內容理論性較強,難以調動學生學習的主動性
對于初學軟件測試的學生,首先要向其講授相關測試理論,使其建立系統的測試理念。
但是學測試的學生大都是理科生,喜歡操作性強的課程,“軟件測試理論”課程的理論性太強,需要背誦很多概念性的知識,這對于他們來說是比較困難,不能激發學習的主動性,教學效果不理想。
2.測試方法和技術案例實際應用價值不足,學生很迷茫
測試方法和技術是“軟件測試理論”課程學習的重點和難點,這部分內容僅靠老師的講解和書本上的案例很難讓學生深入理解掌握測試技術的內涵,學生在學習這部分知識時會產生迷茫:學習這些知識有什么用處,在具體的項目測試中,應該怎樣應用這些知識?沒有實際的項目案例做支撐,學生會失去繼續學習下去的興趣。
針對上面的問題,本文提出將項目驅動法應用于“軟件測試理論”課程的教學中,學生在進行項目實踐的同時,根據需要學習軟件測試相關理論知識,這樣有助于提高學生的學習主動性,有助于理論知識的牢固掌握,有助于提高學生的實踐技術能力,改善該課程的教學效果。
二、項目驅動法
項目驅動法是目前中國教育領域中一種比較新的教育教學方法。
所謂項目驅動法,是師生通過共同實施一個完整的項目工作而進行的教學活動,它既是一種課程模式,又是一種教學方法。[1]這里的項目根據課程教學內容的不同所包含的涵義也不同。在“軟件測試理論”課程教學中,項目即指一個已經開發完成的軟件測試工作。通常,項目教學都是實踐導向的和任務驅動式的教學。
在項目驅動模式的教學活動中,教師根據學生現有的知識水平和項目經驗選擇一個合適的項目,以項目實施為主線展開教學活動,把課程相關的知識點的講解融入項目操作的每個步驟中。在項目實施的過程中,以學生為中心,教師主要做組織和指導工作,學生在整個項目的實施過程中處于探索知識的情景中,充分發揮主動性、積極性和創新精神,綜合運用所學的知識和技能解決實際問題,最終達到有效地將所學知識系統化深入化的目的。
這種模式從根本上將傳統課堂中老師滿堂灌轉變為“學生為主體,教師為主導”的教學模式。同時,學生通過一個具體項目的實踐,感受到了真實項目管理的思想和團隊協作的必要性,提高了學生的創新能力和項目實踐能力。擁有真實項目的實踐經驗使得學生在擇業時擁有很大競爭優勢。
將項目驅動法應用于“軟件測試理論”課程教學中,在課程理論教學中加入一個完整的項目測試實踐環節,通過項目實踐能夠很好地激發學生的學習主動性,使學生經歷了一個“先做,遇到問題,再學,解決問題,再做,獲得經驗”的學習過程,最終完成一個完整的軟件測試實踐,同時也學到了“軟件測試理論”課程應該掌握的理論知識。這樣,既解決了軟件測試理論課程理論性太強的問題,又解決了測試方法和技術案例實際應用價值不足的問題;而且豐富了學生的實踐經驗,提高了軟件測試理論課程的教學效果。
三、“軟件測試理論”課程教學目標和教學內容
1.教學目標
通過本門課程的學習和實踐,理解軟件測試理論與原則;掌握主流測試技術和方法,熟悉測試用例的編制、熟悉軟件測試的基本流程,熟悉軟件測試過程中各類技術文檔的編制規范,并能靈活運用測試技術解決實際問題。
對于一個具體項目軟件,每一個學生都能夠順利完成如下手工測試流程:根據軟件需求規格說明書撰寫測試計劃,設計測試用例、進行測試環境配置和測試數據準備工作、執行各種測試,撰寫缺陷報告、跟蹤并修復缺陷、進行測試評測,最后提交測試總結報告,達到軟件企業對測試專業人才的要求。
2.教學內容
“軟件測試理論”課程的教學內容主要包括軟件測試基本理論、軟件測試基本技術、軟件測試過程和軟件測試工具。[2]
軟件測試基本理論包括軟件測試、軟件缺陷和測試用例的基本概念,測試的目的、測試模型、測試分類和測試流程。
軟件測試基本技術包括白盒測試和黑盒測試;其中白盒測試包括靜態測試和動態測試,動態測試又包括程序插樁、邏輯覆蓋、基本路徑測試等;黑盒測試包括等價類劃分、邊界值分析、因果圖法、判定表法、場景法等。這些基本技術都是在進行測試用例設計時使用的。
軟件測試過程是指執行測試的過程,通常分為四個階段:單元測試、集成測試、系統測試和驗收測試。
軟件測試工具有多種:功能測試工具、性能測試工具和測試管理工具等。
四、項目驅動法的應用方案
1.項目的設計
實施項目驅動法,首先需要設計項目。項目的設計與選取直接影響到該教學模式的教學效果及學生的學習興趣?!败浖y試理論”課程項目的選取與其他課程又有所不同,學生要進行的操作是對現有的或者已經開發完成的軟件的測試工作,因此在設計項目時應遵循以下幾條原則:
第一,項目是現有的軟件或已經開發完成的軟件,軟件中有部分明顯錯誤,有部分隱藏錯誤;明顯錯誤有助于提高學生的測試積極性,隱藏錯誤有助于啟發學生進行更深入的測試。
第二,項目具有典型性,代表大部分軟件的共性。通過該項目的測試,學生可以掌握大多數軟件的測試流程和測試方法。
第三,項目中有多種情景元素,符合使用多種測試技術和方法,有助于學生在進行項目測試的同時,學習使用多種測試技術設計測試用例的方法。
第四,項目大小和難易適中。每個項目組的人數控制在3~5個人,設計的項目能使學生通過努力在一定的時間內完成。
根據以上原則,本課程目前選擇的項目是《企業薪酬管理系統》。
2.項目驅動法的實施
本課程通過讓學生進行企業薪酬管理系統完整的測試流程實踐的同時,講解測試需求編寫、測試計劃編寫、測試用例設計、測試環境配置、測試執行、缺陷跟蹤和管理、測試報告撰寫等內容。課程授課方式主要是分階段講解測試過程和測試要求,每一個階段開始,老師先講原理,選擇部分內容做例子進行講解,然后學生比照例子跟著做;階段內容完成時,學生提交完成的文檔,老師選擇典型的問題進行講評,然后進行下一個階段的內容,如此類推直至測試結束。
企業薪酬管理系統測試流程設計如圖1所示。
本課程課時為60學時,根據圖1系統測試流程圖安排,基于項目驅動法的“軟件測試理論”課程安排如表1所示。
在課程進行的過程中,必須嚴格按照項目的測試流程進行,測試流程為:先獲取項目測試需求,撰寫測試計劃,設計測試用例,執行測試,提交缺陷報告并跟蹤修復缺陷,最后提交測試總結報告。課程結束,要求學生提交項目測試報告,測試報告包括多個文檔,整個流程中每個階段的工作必須有撰寫規范的文檔提交,如:測試計劃、測試用例、測試執行報告、缺陷報告和測試總結報告等等。
測試報告既體現了教師項目教學的結果,也體現了學生對測試知識技能的掌握水平。通過評價學生作品,找出學生在學習過程中的薄弱環節,進一步改進項目驅動教學的教學安排,使其能夠發揮最大的教學效果。
五、結束語
本文針對軟件學院軟件工程專業的培養對象和教學特點,把真實項目引入“軟件測試理論”課程課堂教學中,采用項目驅動教學法,從項目的需求評審、測試計劃、測試用例設計、測試執行、缺陷報告、測試評測到測試總結一個完整的測試流程,交給學生組建測試團隊,按照流程進行任務分配和管理,最終完成整個項目的測試工作。通過一個完整項目測試流程的完成,有效提高學生的學習和實踐能力、解決問題的能力、團隊協作能力等,使學生在掌握軟件測試的各種測試技術和基本流程的同時,積累了一定的項目測試經驗,為他們今后的就業打下了良好的基礎。
參考文獻:
篇2
關鍵詞:軟件測試;測試工具;測試管理;企業需求
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2014)32-7664-02
Abstract: In order to reverse the misunderstanding in College of Software Testing Talents Training, through explains the intension of software testing,proposes the teaching was in the software testing course necessary and feasible, as long as the change of thoughts, simulation test case of enterprises in the process of teaching, students' comprehensive quality training, can cultivatecomprehensive talent of software testing by enterprise love.
Key words: Software testing; test tool; test management; enterprise demand
自上世紀80年代,伴隨著軟件行業的發展需要,軟件測試的基礎理論和實用技術開始形成,經過三十多年的發展,軟件測試在軟件開發行業中的角色越來越重要,我們目前評價軟件測試,它即需要工具和技術的支持,更需要有科學的管理體制,它既要保證軟件能夠健壯運行,又要保證軟件的功能完全符合客戶的需求,一個好的測試隊伍,是軟件開發必不可少的依靠,尤其是復雜的軟件項目,開發和測試要親如手足,才能保證項目的順利進行。
目前高校的軟件相關專業的畢業生,大約有1/5的人在5年之內從事過或最終從事軟件測試相關的職業,這是一個相當大的比重,同時也反應出社會上對軟件測試職業的缺口很大,眾所周知,高等教育往往落后于企業的實際發展,這種“厚基礎,寬口徑”的辦學宗旨已經盛行了很多年,當然,在許多專業領域,這種以不變應萬變的培養體系是最明智的選擇,但在計算機軟件教學領域,因為這個學科的發展速度幾乎超乎人類的想象,因此我們必須讓學生在校園里感受到計算機企業中對計算機技術的需求方向,這樣才不至于在學生走出校園時無所適從。軟件測試職業的職位待遇穩步提升,而且其職業壽命要遠遠長于軟件開發,從學生的職業規劃角度來看,在高校進行軟件測試中高級人才的培養是一條可行之路。
1 高校開設軟件測試課程的必要性
事實上,在高校計算機教學體系中開設軟件測試課程,并不單單是為了迎合企業的需求,軟件測試是軟件工程課程的延伸,是軟件開發課程的補充,是軟件管理課程的實踐。
軟件測試課程的基礎學科涉及數學、計算機導論、軟件工程、計算機組成、管理學和信息技術等,如果沒有這些學科的支撐,軟件測試無法深入學習。
軟件測試課程的開設,對高校計算機軟件專業的學生來講,是有著非常大的意義的,目前很多大型的軟件企業并不擔心開發人員的招聘,而對熟練掌握軟件測試技術和管理方法的高級測試人員求賢若渴,這一方向的職業缺口確實非常之大,究其原因就是目前幾乎所有高校的軟件相關專業都開設了軟件開發從技術到管理的全套課程,而軟件測試的相關課程幾乎為零,這樣的學生走出去,很難迅速掌握測試的理念,也無力制定宏觀測試計劃,不得不從測試行業最低端的測試員開始做起,這對于高校畢業生來講這是一種人才的浪費,在高校的計算機課程體系加入軟件測試內容已經迫在眉睫。
在任何一個行業,從業人員對行業的成熟度區分,是企業招聘首先要考慮的問題,我們經常在招聘信息中看到“有工作經驗”這樣的條款,在軟件測試行業也是如此,一般給出5種分級:1級我們稱之為用戶級測試人員,這一級別的測試人員直接扮演客戶的角色來使用軟件,看是否能發現問題;2級是軟件測試操作員,這類人群受過一定程度軟件測試的專門訓練,可以執行上級下達的具體測試任務;3級是軟件測試技術員,這一職位人群有很多軟件測試的經驗,能夠非常熟練的使用某些軟件測試專門技術,能夠設計測試用例;4級是軟件測試系統工程師,他們具有相當廣泛的計算機相關專業知識,熟悉軟件開發,熟練掌握所有軟件測試技術,并具有項目管理經驗;5級是軟件測試總工程師,總工程師負責管理整個軟件測試項目,具有掌控全局的能力和技術。
高校軟件測試人才的培養,其目標要向3級人才靠近,并且這些人才有向4級或5級成長的持續發展能力。
2 軟件測試教學中需要重視的兩個問題
2.1扭轉重開發,輕測試的偏見思想
很多人輕視軟件測試,認為軟件測試無需具備很高的技能,是沒有前途的工作,缺乏創造性,很多高校也存在重開發,輕測試的思想,學生在這種觀點的熏陶下,也對測試工作存在偏見,其中對軟件測試工作有三個認識誤區尤為突出:首先,軟件測試是軟件開發完成之后才進行的,只是軟件編碼的最后一個階段,其地位可有可無。其次,軟件測試不需要具備很高的專業技能,工作乏味枯燥,不具創造性,最后,軟件投入使用后一旦出現BUG,測試人員要負主要責任。
事實上,首先,一個好的軟件測試團隊,在軟件需求分析階段就已經開始測試了,開發人員理解的客戶需求是否正確,要由測試人員監控和保證,測試工作和開發工作是并行的,尤其在軟件項目開始的時候,監控和防范一個微小的問題或隱患,是為了防止軟件成型后出現無法挽回的缺陷。其次,軟件測試是一項綜合技能能強的工作,運用測試工具的能力,與人溝通的能力,有效管理的能力,書寫文案的能力等等,做好軟件測試工作絕對不是想象的那么簡單,而且一旦具備了綜合測試的素質,將是受用終身的資本。最后,軟件測試規范實施后,軟件仍然可能出現BUG,這是開發和測試人員應該共同面對的現實問題,測試人員只能保證BUG越來越少,越來越不影響系統的健壯運行。
2.2強調管理與技術并重
軟件測試的規范實施需要測試技術和管理方法兩方面的支撐,如果不具備專業的測試技術,只能做一些簡單的功能測試,如果不具備宏觀管理計劃的能力,只能處于被指揮狀態進行片面測試的實施,現在軟件測試真正缺少的是技術和管理兼備的人才,高校的學生素質非常適合軟件測試高端人才的培養。高校的培養中,要讓學生深刻理解,我們培養的學生不是只能低頭做測試任務,而是要能指揮測試工作,這絕對不是件簡單的工作,需要全面的技能和完善的人格,只有這樣的人才,才能帶領出出色的測試隊伍。
教學中,增加實訓環節,給學生安排豐富的實例和習題,最好采用實際軟件項目的測試案例,讓學生在學校感受到企業中一樣的工作環境,并安排和企業中一樣的測試崗位,讓學生體會溝通和管理的必要,在獨立處理問題的過程中激發學生的學習興趣,促進理論和實踐教學的結合,把對學生的應用能力的培養融匯于教學中。
3 軟件測試專業課程設計的目標和原則
軟件測試專業要全方位的培養和提高學生的基礎理論、實踐能力、設計能力、實踐訓練等綜合素質。重視管理、人文、經濟等知識的學習。
3.1軟件測試專業課程設計的目標
高校軟件測試培養目標要以市場為導向,培養具有一定的設計測試計劃方案的、具有管理能力,能平衡整個測試項目各方面因素的軟件人才,這些人才要具備軟件開發的整體認識,能制定和執行測試,能利用測試工具完成一定測試任務。
本專業課程的重點包括:軟件缺陷生命周期管理;軟件測試基本概念的內涵;主流測試工具的應用;進行全面的系統測試的方法;注課程以實訓為主,重動手能力的培養等。 具體課程要涵蓋:熟練掌握至少一種數據庫應用技術及一門軟件開發語言;了解軟件開發過程中軟件測試的重要性;掌握主流的自動化測試工具;科學管理測試隊伍。
3.2軟件測試專業課程設計的原則
課程的設計要體現與時俱進的精神,以企業的實際項目為依托,主要原則包括:
1)開展項目教學,項目教學具有針對性、研究性、啟發性和實踐性等。項目的選擇要知識涵蓋全面,要能夠激起學生的學習興趣。
2)制定專業課程計劃、課程大綱和教學方案等,課程計劃提倡電子化、網絡化和課堂教學并用,建設校企合作的專兼結合的教學團隊,開設以項目為載體的教育大綱,用以指導課程教學工作的開展。
3)建立測試工程內容的課程結構模式,把真正的測試項目開展到課堂上來,或者讓學生在學習期間進入企業進行崗前培訓,充分安排工程實踐,引進軟件測試的工程師資格認證,同時逐步建立科學的工程教育檢驗和質量評估體系。
理論與實踐并重,課程需要涵蓋單元測試、集成測試、性能測試、功能測試與系統測試。注重設計和管理的執行過程。為學生創造可自由而主動的學習氛圍。以學生為出發點,在軟件測試中融會貫通大學里學習的軟件相關課程,在項目驅使下培養主動學習的能力。采用分組討論學習方式,結合實際項目,把學生組織為若干小組,在教師指導下完成工作。不斷提升學校教師的專能,提供系統學習和階段性培訓機制。
4 總結
軟件測試課程在高校的教學中,沒有現成的經驗和模式,需要我們根據行業的發展隨時調整,以社會需求為導向,以培養行業
中高級人才為目標,以項目實訓教學為依托,邊進行邊思考,逐步發展,逐步穩定,所以我們要以發展的眼光,靈活的策略來微調教學過程的細節,測試無處不在,高校進行軟件測試的教學改革也是一種測試,只要我們采用嚴謹的工程控制策略,科學管理,總結規律,必然能取得高校進行軟件測試課程探索的勝利。
參考文獻:
[1] Ron Patton.軟件測試[M].北京:機械工業出版社,2002.
[2] Myers G J.軟件測試的藝術(中文版)[M].王峰,陳杰,譯.北京:機械工業出版社,2006.
篇3
關鍵詞:軟件測試,質量管理,軟件工程
中圖分類號:O213.1 文獻標識碼:A 文章編號:
1 軟件測試類別及作用簡介
軟件測試按作用分類,主要可以分為功能測試,性能測試,安全測試等,按測試階段劃分則可分為單元測試,集成測試,系統測試,驗收測試,回歸測試等。按是否涉及源代碼測試又可分為黑盒測試,白盒測試。
下面按作用介紹幾類常見的測試:
功能測試:主要按照系統功能說明書軟件設計書等資料,驗證軟件每個功能的正確性,易用性。主要目的是保證軟件功能可用,用戶使用過程中有一個良好的使用體驗。
性能測試:是一種非功能性測試,主要測試軟件產品運行的各項性能指標是否達標。如系統反應速度,系統負載能力,系統使用過程中對計算機各類資源的占用情況等,主要是測試系統的健壯程度。最常見的是測試軟件功能的反應速度。同樣對保障用戶使用體驗有重要作用。通常使用自動化工具得到測試系統的性能指標,筆者使用的工具為Loadrunner(LR)。
安全性測試:這是經常被忽視的測試方式。很多用戶軟件使用安全意識淡薄,在用戶未提出安全測試的情況下,有些軟件開發公司為節約成本也會刻意回避這個問題。軟件安全與否并不直接影響用戶的使用體驗。軟件安全測試主要從數據訪問,權限管理,防攻擊能力,破壞性測試等幾個方面測試軟件系統的安全。政府部門所使用的軟件系統通常,這樣的項目進行安全測試很有必要。
2 軟件測試與質量管理關系
任何項目實施都需要有質量管理,否則工程產品將無法使用。軟件工程更是如此,在軟件工程中軟件測試是軟件質量管理的重要手段也是質量管理流程的重要一環。其實不管軟件測試怎樣分類,具體的流程怎樣操作,軟件測試的目的就是為了保障軟件的質量。從公司組織層面項目質量管理從制度上對測試流程的完整性加以保障,從項目實施層面,項目內部的質量管理應為軟件產品即將的測試做出準備提供便利。
在多種軟件工程管理模型中,都將軟件測試做為單獨的過程納入到管理體中來,比如CMMI軟件成熟度模型,是將軟件測試放在產品驗證過程域中的,同產評審一起,強調軟件測試對產品驗證作用。
3 測試組織的建立
人們經常有開發做的較弱的人做測試的印象。這是錯誤的,主要是由很多軟件公司不愿意調撥開發水平高的人在測試上造成的。其實測試人員作為公司于客戶之間軟件質量最后的守門員,不僅要保證產品功能正確,還要從用戶角度對軟件產品提出使用建議,根據經驗預測用戶可能的使用方式以及評價,同時還需同項目經理,開發人員溝通。因此不僅要具備測試理論知識,還需要具備項目經驗,熟悉產品業務,了解項目各環節工作,同時具備編碼,操作系統,數據庫,計算機硬件等方面的有關知識,恰是要求知識構成最全面的崗位。
通常建議測試組應包括至少一名經驗豐富的人員。測試組的人數根據公司開發人員總數,公司產品的成熟度確定。如果公司產品已經較為成熟,有固定框架的話,測試人員數量可維持在開發人員總數的十分之一,否則應大于這個數量。
測試組可由測試組長,或者叫測試經理帶領幾名測試人員組成。測試經理負責測試計劃,測試過程監控,測試產品驗證等工作。測試人員按要求開展測試工作。
4 測試流程簡介
(1)測試工作啟動階段,項目經理提交需求規格說明書和項目計劃。測試經理根據提交文檔編寫測試計劃。需求內應包括用戶方確認的系統使用環境。
(2)工程管理部對測試計劃進行評審。評審通過進入測試流程。不通過則將文檔返回項目經理根據項目情況重新計劃,直至通過。
(3)系統經過項目經理檢查,滿足送測要求時,項目經理填寫測試申請單,提交概要設計說明書、詳細設計說明書和系統demo,澄清測試需求,明確測試環境。其中demo非必須提交。
(4)項目經理指派人員同測試組建立專門的信息交流接口,協調測試過程中的有關事宜。
(5)測試人員執行測試。
(6)記錄測試過程中出現的系統缺陷和問題。填寫問題跟蹤記錄表,并交由項目經理確認。
(7)工程管理部根據測試結果決定系統是否系統具備條件。如果不具備條件,則將督促開發人員完善系統并重新執行測試流程。
(8)測試經理編寫測試報告并總結。測試活動結束。
流程如圖:
以上測試流程主要按瀑布開發模型內的測試流程描述,如果選用別的開發方法,則可以根據情況將流程簡化后加入開發中的每次迭代內。
5 結束語
測試工作是保障軟件產品質量的重要手段,本文大多內容來自筆者工作經驗的總結,僅供參考,有失偏駁之處,還請多加指正。
參考資料
[1] 佩騰 軟件測試 機械工業出版社
篇4
關鍵詞:軟件測試;案例教學;教學內容
中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2010)09-2275-02
Teaching Methods of Software Testing Technology
GAO Zhi-sheng
(School of Mathematic and Computer, Xihua University, Chengdu 610039, China)
Abstract: Software testing is a course that teaches the software testing methods and means. Case teaching methods that runs through the whole software testing process with a single case is proposed. The corresponding teaching contents and experiment requirements are also introduced. Through the teaching methods, the studying interesting, the initiative and the capability of finishing the practical software testing projects are really improved.
Key words: software testing; case teaching; teaching contents
軟件開發過程中的質量問題是關系到軟件和軟件組織生存的重大問題,得到了越來越多的重視。目前在高校的軟件工程專業普遍開設有軟件測試相關課程。但是在具體教學實踐中,教師普遍感覺到有許多不如意的地方[1],具體表現在教學內容與具體應用脫節,學生對軟件測試認識有誤區,學生學習積極性不強、認為軟件測試是文字性課程,軟件測試過程如何展開,如何選擇測試工具,如何在教學中貫徹軟件測試管理思想等。
近年來關于怎樣進行軟件測試教學,引起了相關專家的重視和討論[1-4]。本文在總結前人的經驗基礎上,結合作者近幾年在軟件測試技術課程教學中的實踐提出了以一個具體項目案例貫穿整個教學過程,理論與實踐緊密結合的教學方法。
1 教學的目的和教學方法
軟件測試技術課程是本校軟件工程專業的一門專業必修課程,通過軟件知識體系的學習,使學生了解軟件測試的發展現狀,認識軟件測試的重要性,掌握軟件測試的方法和技術,熟悉軟件測試過程管理,從而具有獨立承擔軟件測試項目的實施能力,具有測試計劃、管理、實現和軟件質量保障的能力[3]。
針對以上教學目的,我們在軟件測試技術教學過程中引入一個具體測試項目案例貫穿整個教學過程的教學方法。第一課時,我們組織學生自由進行分組,每組5個人左右,每組確定一個名稱。要求每個小組在課程的前幾周完成同一個模擬題目“大學圖書館管理系統”的軟件開發。系統完成后,然后各個小組交叉進行測試對方開發的軟件系統。隨著課程的進度,主要要求學生完成軟件系統的單元測試,集成測試,功能測試和系統測試。單一的案例貫穿整個軟件項目測試過程的案例教學方法的優點是:
1)軟件測試的前期課程有“Java EE編程技術”,同時我們選擇圖書館管理系統作為開發對象,學生從技術上和業務需求上都具備快速完成該系統的能力。
2)相同的開發對象,互相測試對方開發的系統,有利于形成競爭,有利于調動學生的學習積極性。同時也有利于教師對學生完成的結果進行點評和組織課堂討論。
3)整個軟件測試課程,學生能夠完成對一個具體項目的全部測試過程,有利于促進學生系統地掌握軟件測試的技術方法,組織和過程。
2 教學過程
我們的教學過程主要包括以下5個階段,最初的幾周主要講解軟件測試原理,同時這個階段學生主要完成指定項目,然后是4個主要的軟件測試技術:單元測試,集成測試,功能測試和性能測試。軟件測試課程也會講解其他如回歸,壓力等其它測試技術,下面是我們課程重點講授的內容和要求。
2.1 軟件測試原理
本階段主要講授軟件測試技術的基本概念,使學生掌握基本的軟件測試原理。包括軟件測試的重要性,軟件評測師的職業規劃,軟件質量的概念等基本概念,重點講授的內容是白盒測試及用例的設計和黑盒測試及用例的設計兩個章節。白盒測試主要包括邏輯覆蓋和基本路徑覆蓋兩種用例設計方法,邏輯覆蓋又分為語句、判定、條件、判定/條件、組合、路徑覆蓋等。黑盒測試的重點內容是等價類劃分,邊界值分析,因果圖,決策表和場景法。
本階段對學生的實踐要求是開發“大學圖書館管理系統”,由上課老師為學生統一提供系統的需求規格說明書,該系統的主要功能如圖1所示。要求學生結合對本校圖書借閱系統的使用和需求規格說明書,采用Java EE技術進行開發,系統采用典型的4層結構進行設計,如圖2所示,即運行在客戶端計算機上的客戶層組件、運行在Java EE服務器上的Web層組件、業務層組件和運行在EIS服務器上的企業信息系統(EIS)層軟件[4]。系統開發采用JSF+EJB3.0的架構,Glassfish為應用服務器,MySql提供數據庫服務。
2.2 單元測試
單元測試是對軟件最小組成單元的測試,是軟件開發過程中進行的最基本的測試。單元測試主要按照程序內部的結構測試程序,檢驗程序中的每條通路是否都能按預定要求正確工作。單元測試主要考慮各個模塊接口的輸入和輸出,模塊內部的數據結構,模塊的邊界條件,模塊的基本路徑和模塊的出錯處理。單元測試階段還講授代碼規范性檢查,代碼覆蓋率的檢查,代碼復雜度的計算和內存泄漏的檢查等。
完成單元測試的基本原理的學習后,要求學生交叉完成圖書館管理系統的單元測試,主要抽取系統中的核心函數進行測試。完成測試后要求每個小組提供單元測試計劃,單元測試用例和單元測試報告3個報告文檔。得到所有報告后,組織一次課堂討論,展示優秀小組的成果,分析原因總結經驗。單元測試工具要求采用JUnit,代碼規范和代碼質量分析采用Logitscope, Pruify用于分析代碼的內存問題。
2.3 集成測試
軟件各個單元通過單元測試之后,需要檢查各個單元之間的相互接口是否正確,就是集成測試。軟件集成測試主要考慮的問題是模塊間的數據傳遞是否正確,一個模塊的功能是否會對另一個模塊的功能產生錯誤的影響,全局數據結構是否有問題,塊組合起來的功能是否能滿足要求,集成后累積誤差是否被放大等[5]。關于軟件集成測試的原則、策略和用例設計等相關原理可參考其它相關文獻。
教授完集成測試相關原理后,我們要求每個小組負責人組織完成系統的集成測試。集成測試以一個EJB、Servlet或者JSF為基本單元,工具選擇Cactus和HttpUnit。完成集成測試后要求每個小組提交集成測試計劃、集成測試設計文檔和集成測試分析報告。收齊所有小組成果,組織學生進行討論。
2.4 功能測試
功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到用戶要求的功能。主要考慮系統的各個功能,一般從軟件產品的界面、架構出發,按照需求編寫測試用例,測試產品時是否達到用戶使用的需求。本階段主要讓學生采用WinRunner完成系統的功能測試,進行功能測試之前首先完成測試計劃和測試用例的設計。然后完成WinRunner的6個步驟:識別程序的GUI,建立測試腳本,完善測試腳本,在新版應用程序執行測試腳本,分析測試結果和回報缺陷。
2.5 性能測試
典型的性能測試主要是從系統的響應時間、吞吐量、系統資源利用率、并發用戶數、HTTP事務處理數/秒、會話數/秒和連接建立時間等方面衡量系統的性能。性能測試主要有壓力測試,容量測試和強度測試等。針對圖書館管理系統的特點,我們要求學生理解性能測試的重要性和困難性,掌握性能測試的基本概念和技術。在此技術上,我們要求學生使用LoadRunner完成系統的壓力測試。主要步驟是測試需求分析,制定測試策略和方案(重點是設計測試場景),使用VuGen創建腳本,在Controller中創建場景,運行場景,分析結果。完成后提交測試策略和方案報告,腳本和圖書館管理系統壓力測試報告。
3 結論
一個合格的軟件評測師要求具有編程能力、開發能力、溝通能力、管理能力、逆向思維能力等多種能力。怎樣在大學軟件測試技術教學中培養既有理論又能實踐的軟件測試從業人員是本文研究的動機。我們提出的基于同一案例貫穿整個軟件測試技術教學過程的教學方法,通過學生互測對方開發的軟件系統,相互對比,相互促進同時組織課堂討論,有效營造了主動學習的氣氛,增強了學生的學習積極性,培養了學生主動思考問題的能力。該方法是一個值得借鑒的軟件測試技術教學方法。
參考文獻:
[1] 李繪卓,唐峻,范勇.基于案例的軟件測試實驗教學[J].電腦知識與技術,2009,27(5):7820-7821.
[2] 屠紅蕾.軟件測試教學的點滴體會[J].計算機教育,2008(10):124-125.
[3] 李亞.“軟件測試”教學探索與實踐[J].計算機教育,2008(6):14-15.
篇5
關鍵詞 軟件測試 教學改革 能力培養 教學過程 課程置換
中圖分類號:G424 文獻標識碼:A
Exploring about the Reform of Software Testing Course
in the Application-oriented Institutions
PANG Haibo, LI Zhanbo
(Software Technology School of Zhengzhou University, Zhengzhou, He'nan 450002)
Abstract This paper analyzes the software testing industry, and a number of issues that exist in teaching, summed up the software companies for software testing requirements and industry demand conditions talent for talent, summed up the software testing professionals should have the basic knowledge and quality requirements, focusing on the improve student software testing theory, technical capacity, a new model of software testing from the curriculum reform, teaching, engineering practice, school-enterprise cooperation and replacement programs, etc., to stimulate students' enthusiasm and motivation to learn and improve training quality of software testers.
Key words software testing; teaching reform; ability training; teaching process; course change
近年來,中國軟件產業保持了飛速發展的趨勢,軟件產品的質量備受所有用戶特別是IT行業用戶的關注。軟件測試作為軟件開發過程中重要的一環,對保證軟件質量具有至關重要的意義,同時也是控制軟件質量的重要手段之一。目前,國內許多軟件開發企業對軟件開發仍然存在“重開發、輕測試”的思想,因此,盡快建立完善軟件測試人才的系統培養環境、提高軟件測試人才的培養質量,為軟件產業的健康發展提供智力支持已成為軟件測試專業課程和教學改革的主要目標之一。
本文首先分析了我國軟件測試行業和教學存在的若干問題以及IT企業對軟件測試人才的素質要求,接著討論了軟件測試專業課程的設置和定位問題,結合筆者的工作實際以及校企聯合開展大學生軟件測試技能競賽的效果,對軟件測試教學過程提出了一些建議。
1 軟件測試行業和教學現狀
軟件生產方式已經越來越趨向于大規模集成化生產,這一生產方式確立了軟件產品的質量控制與質量管理在軟件生產中至關重要的地位。調查顯示,我國軟件開發企業普遍缺少測試人員,而專職軟件測試人員與開發人員的比率更是偏低,遠遠達不到國外1:1甚至2:1的比例,整個軟件行業從業人員比例結構很不合理。主要由于企業認知和軟件測試人員的培養過程存在以下一些問題和不足而導致:
1.1 重開發,輕測試
很多企業和學生認為,軟件開發比軟件測試重要,軟件測試相關工作職位待遇不如軟件開發。他們認為軟件測試從業人員不需要深入的專業知識,只要會寫程序就能夠勝任軟件測試工作,從事軟件測試類的工作沒有前途,所以大部分傾向于做開發人員,而不喜歡做測試。同樣,絕大多數學生認為軟件測試比軟件開發容易,沒有較高的技術含量,只是能夠找出軟件中的錯誤就可以了。甚至有相當一部分軟件測試人員認為軟件的質量的好壞是開發人員的事情,與軟件測試人員沒有關系。
1.2 底子薄、基礎差
大部分開設計算機課程的學校,學生都是到大學二年級后半學期才開始接觸軟件測試課程,缺少對軟件測試課程的系統學習,甚至很多學生只學習軟件工程課程,根本接觸不到軟件測試課程。
對離散數學、程序設計、軟件工程等軟件測試基礎課程的學習效果差。例如,軟件測試中黑盒測試用例的設計方法大都以數學知識為依據的,決策表驅動分析法與因果圖法對應命題邏輯知識。盡管學生之前已經學習這些課程了,但是由于受行業認知的限制,學生經常忽略一些重要的知識,導致在后續測試課程學習中感到力不從心,最終還是不能夠穩固掌握軟件測試的相關知識和技能。
軟件測試貫穿軟件開發的全部過程,軟件測試的大部分階段都要求測試人員能夠編寫代碼并且進行調試,比如,在單元測試階段和進行白盒測試的時候都需要檢查和測試代碼,這就對軟件測試學院提出了更高的要求,要求學生不但要了解軟件測試技術,還要能夠熟練對代碼進行分析和調試,甚至更多的時候要求測試人員能夠自己編寫代碼進行專項測試。但是,由于先導課程的課程設計、實踐和考查的脫節,導致學生寫代碼能力較弱,不能靈活運用軟件測試中的技術和方法。
1.3 重技術、輕理論
現代社會快節奏的影響和急功近利心情的驅使,學生通常希望學習一些能夠馬上使用的技術,而不愿意去學習復雜和理論性較強的工程管理內容。軟件測試計劃、軟件測試管理等工程管理課程抽象和教條,并且理論性較強,教師如果單純通過課堂教學,學生很難真正掌握這些內容,他們不能將所學知識馬上轉換為應用,或者不能立刻看到成效,會慢慢地失去對這些課程的興趣和熱情。同時,考慮到軟件測試需要與具體的開發模式和行業背景相結合,在學習階段容易受授課模式和知識結構的限制,學生覺得學無所用,將來也很難結合具體場合恰當使用測試手段。
1.4 重個人,輕團隊
軟件的大規模集成化生產意味著個人獨立勞動已經不能勝任大型軟件的開發,并且對團體軟件開發中的協作和溝通提出了更高的要求。軟件測試作為軟件開發過程中一個不可或缺的環節,也需要測試團隊分工合作。目前教學更多地采用教師講、學生聽這一學習模式,沒有實現雙向互動學習,老師總是面面俱到地傳授測試專業知識和技術,希望學生能夠學得更全面。然而,當代學生普遍以自我為中心,缺少基本的溝通和團隊協作能力,單獨的個體又不能獨當一面,最終導致軟件測試工作不能順利進行。
2 軟件測試人員素質要求及課程設置定位
軟件測試人員的工作職責是理解軟件產品的功能和性能需求,在軟件開發中擔任“質量管理”角色,這種職責對軟件測試人員在技術、管理能力和個人綜合素質等方面提出了更高的要求。主要包括以下方面:(1)全面技術能力。測試人員必須站在工程技術的角度對需要開發的產品進行理解,以工程技術產品應用為目的構造合適的測試用例進行測試。這就要求測試人員必須掌握軟件生命周期、開發流程、軟件質量管理知識,熟悉離散數學、工程經濟等基礎知識,熟悉各種系統平臺、數據庫、常用軟件和網絡等軟硬件,掌握主流測試工具與測試管理工具,還有具備編程能力和相關行業的法規和外語等知識。(2)責任心。做測試工作,需要思維嚴密,具有懷疑與破壞的精神,測試人員要打破常規思路進行軟件測試,能夠設計一些非常規測試用例對軟件進行破壞性測試。(3)細心與耐心。軟件測試工作中發現缺陷的環節除了依仗測試人員的專業技術知識之外,還與測試人員的細心及耐心程度有很大關系。軟件測試工作相比較軟件開發工作而言,更加繁瑣和枯燥,如果沒有足夠的細心和耐心,就會留下很多潛伏的缺陷。(4)良好的溝通與組織協調能力。軟件測試不僅僅是測試人員和測試團隊內部的事情,軟件測試人員要能夠與項目經理、開發人員、客戶、市場人員等不同角色人員進行良好溝通,保持密切配合。這就要求測試人員具備良好的溝通技巧,當發現問題的時候,能夠積極有效組織協調開發人員、客戶等各方面來解決問題,并且能夠精準表達自己的觀點。
軟件測試人員的素質培養,需要從構建合理的軟件課程著手。課程體系構建根據測試內涵來分析相應的知識、技能、素質要求,以軟件測試這一職業所需的知識和技能為先導,強調當前及未來就業崗位所需基礎知識和基本技能的掌握運用,體現知識、能力、素質培養的統一。精選教學內容進行整合與優化,使課程模塊化,明確每個模塊化課程對知識和技能的培養要求,構建以掌握技術理論和技術應用為培養目的的課程體系,實現知識和技能同步培養和提高。
3 軟件測試教學過程的改進
教學過程是對軟件測試人員技能和素質培養的關鍵環節,教學方法起著至關重要的作用。教師在教學過程中應注意幾方面:
3.1 正確認識開發和測試的關系,激發學生學習動力
針對學生認為軟件測試不如軟件開發重要,或者認為軟件測試類崗位不如軟件開發類崗位有前途等片面認識,教師應注意正確引導。通常在第一節課上教師應該結合功能測試、性能測試等具體案例介紹軟件測試的重要性,讓學生了解該課程的重要性、必要性和當前的行業動態。另外,要讓學生認識到測試工作的豐富層次和內涵,了解測試人員應該具備的知識和技能更加多樣,做測試工作比做開發更有挑戰性。最后,要給學生介紹行業對測試人員的需求,讓學生更清楚了解軟件測試工作的待遇和發展前景,樹立從事軟件測試工作的決心和信心,激發他們學習軟件測試的主觀能動性。
3.2 案例法教學貫穿全過程
針對軟件測試課程中測試計劃、管理等理論性較強的工程化管理知識部分,需要結合實際案例進行教學,因為單純課堂教條式的教學很難讓學生深刻掌握這些知識的精髓并應用于實際工作,更甚至會讓學生失去學習軟件測試的興趣。因此,應在教學過程中引領學生由易入難自己動手實踐,激發學生的學習主動性與熱情。通過課堂討論或分組討論的方式活躍課堂氣氛,在討論的過程中,讓學生擔任不同角色,模擬實際管理過程,切身感受管理知識的應用價值,同時,不同角色的輪換擔任還可以鍛煉學生的溝通能力,樹立團隊意識。教師要適時進行引導與總結,指導學生按照工程化的文檔模板規范將思考分析的結果進行記錄,在鍛煉學生分析、解決問題能力的同時養成良好的學習工作習慣。
對于技術性較強的知識,也要注意實際案例的引入。加大實際案例實驗學時的的分配,引入規模適中的工程實例,讓學生利用所學的測試技術對實例設計測試計劃,測試用例,執行測試,分析和討論測試結果,發現測試存在的問題,通過這樣的實踐教學活動,更容易讓學生產生成就感,激發學生興趣。
3.3 注重工程實踐課程和參與競賽
根據軟件測試行業對人才素質需求定位測試專業方向人才培養目標。由于軟件測試課程與軟件開發課程的不同,軟件測試實驗教學應該設立實驗、實訓和實習等多層次的工程實踐課程,通過讓學生參與實際工程項目,提高學生專業技術應用、分析問題和解決問題的能力。同樣,教師需要設計和引入規模適中的工程實踐項目,要求學生現學現賣,完成制定測試計劃、設計測試用例、執行測試和評估測試的全過程。通過項目的鍛煉,學生分析問題和解決問題的能力會逐漸得到提高。
鼓勵學生多參加軟件測試技能競賽等實戰性的實踐活動,提高學生的觀察、思考、交流、實踐和協作能力。本團隊組織學生參加河南省計算機學會主辦的首屆大學生軟件測試技能大賽,成績斐然:三個代表隊分別獲得了特等獎、一等獎和二等獎。事實證明,競賽類的實踐活動,能夠極大激發學生自己動手進行軟件測試的興趣,同時在動手操作的過程中培養了學生的創新能力,促進了學生思維的縱深發展;學生對軟件測試課程的學習熱情和積極性空前高漲,學習的自覺性極大提高。
3.4 開展校企合作和課程置換
校企合作的目的就是通過學校與軟件企業進行多方面的合作,建立企業實習基地,讓學生能夠親身參與企業軟件的開發和測試過程,校企合作是軟件測試人才培養最有效的辦法。在計算機行業,校企合作有著至關重要的作用,學生通過參與企業實際產品的開發和測試,可以更好更快地融入到軟件開發過程中。學生不但能夠將所學的綜合知識進行實際應用,還能對軟件開發有一個更加深刻的認識。與企業交流不只是學生的事情,教師參與其中也是十分必要,教師到企業實習,參與軟件項目的測試,緊跟技術發展步伐,才能把握授課方向,才能以自身參與的項目為實例進行授課。
課程置換是將企業成熟的軟件測試培訓課程和教學體系替換掉學校的部分軟件測試課程,將企業以應用為目的的教學方式、科學、系統和實用的課程內容引入學校教學?!八街梢怨ビ瘛?,課程置換就是要結合學校教學和企業培訓的優勢方法和資源,彌補傳統學校教學方式存在的不足,緊緊結合市場需求,提高學生各個方面的能力。 同時,課程置換將學歷教育和職業教育相結合,學生在獲得學歷證書的同時,還能獲得相關企業行業證書和一線實踐經驗,從而為學生畢業后服務于企業奠定良好的基礎。
4 結束語
軟件測試的重要性得到越來越廣泛的認可,創造一種課程內容改革的引導機制,探索一套切實有效的大學生學習和實踐相結合的學習模式,轉變教師對傳統軟件測試課程的教育教學觀念,推動軟件測試教學改革,才是提高軟件測試學生的專業技能和創新能力,最終提高學生的核心競爭力的根本途徑。
參考文獻
[1] 鐘素芬,葉明芷.軟件測試應用性人才培養模式的探索與實踐[J].北京聯合大學學報,2007(9):90-91.
[2] 孫金華.軟件測試人才培養與課程構建的探索[J].計算機時代,2009(6):68-71.
[3] 柳永坡.軟件測試大學教程:軟件測試課程專業教材[J].計算機教育,2010(12):158.
篇6
【關鍵詞】軟件測試;應用型人才;培養模式;課程群
據前程無憂網數據顯示,去年國內軟件測試人才缺口高達20萬,今年有望突破30萬人。目前國內軟件測試和開發人員比例大約在1:4-1:5,而國外測試和開發人員比例為1:1,微軟測試人員和開發人員的比例已達到2:1。軟件測試人才正在成為我國軟件行業目前最緊缺的人才之一。隨著我國軟件產業的迅速發展,軟件測試人才的地位正在逐年提升,這種供需矛盾將變得越發突出。
目前,國內軟件測試人才的培訓[1]主要有三種機構:企業、高等院校和IT培訓機構。企業培養的人才大多是通過參與項目自己摸索的軟件開發人員,由于缺乏對軟件測試全面的認識,在測試思想、技能、思維方式、溝通能力等方面都需要進一步提高。高校培養出來的人才具備一定理論知識,但動手能力較差,進入企業后需要再培養,不能立即到崗。培訓機構則能彌補前兩種方式的不足,但價格昂貴。
一、軟件測試課程教學現狀
(一)學生學習枯燥,興趣低
軟件測試是計算機專業課,課程內容理論性和操作性都很強,并且需要學習了解的自動化測試工具種類繁多。目前各個高校在開設這門課程時,大多數還停留在理論教學階段。教師準備好課件,學生拿著課本,首先給出書上官方的定義和自己的解釋,然后結合一些課本上或自己參與的項目,給出實例證明這些理論。學生容易感到內容空洞、枯燥乏味,學習時就缺少主動性,難對這門課程產生興趣。
(二)軟件測試實驗開展不充分,學生實踐能力弱
軟件測試知識點眾多,理論內容的授課量占絕大部分[2],實驗課時數僅占到四分之一左右。由于實驗時間、實踐環境有限,日常實驗教學都是驗證性的小實驗。由于沒有一個實際的面向企業的項目支撐,很多測試過程難以進行,比如集成測試、性能測試、驗收測試等等。通過對從事軟件測試方向工作的畢業生就業情況調查發現,軟件企業認為軟件測試課程理論豐富,但還存在學生實踐能力不足、測試工程師職業素質有待進一步提高等諸多問題。
(三)教師缺乏實際軟件測試經驗
軟件測試行業發展迅速,軟件測試工具種類多,更新快。軟件測試這門課程實踐性較強,高校計算機教師大多數軟件項目開發測試經驗不足[3],對軟件公司軟件項目研發測試過程沒有切身的體會。教師在講授這門課程時沒有實際的軟件項目案例可以操作,實踐教學顯得吃力,很難給學生軟件測試方面的經驗知識。
面對軟件測試人才的社會需求緊迫性和軟件測試教學現狀,人才培養單位應該擴大軟件測試人才培養規模,總結軟件測試知識點,改革教學方法,培養學生興趣,提高教學質量。
二、軟件測試工程師職業能力需求
為更好地培養學生的軟件測試工程師職業素質[4][5] [6],提高學生的就業率和用人單位的滿意度,充分分析軟件測試工程師的職業能力要求。
(一)素質要求[4][5]
1、具有團隊合作精神。
2、有較強的責任感及進取精神。
3、細心、耐心,具備逆向思維。
4、技術方面的基本素質,熟悉系統的應用,熟悉辦公軟件的應用,熟悉基本的測試流程;熟悉測試管理工具的應用。
5、具有測試人員的學習能力、領悟能力。
6、對行業具有信心,對測試的信心,相信軟件一直存在BUG。
7、良好的英語閱讀和寫作。
8、良好的語言及文字表達。
9、較好的溝通技巧。
10、懷疑精神具有測試人員必須保持的懷疑態度。
11、捕獲用戶觀點的能力,強烈的質量追求,對細節的關注。
(二)專業能力要求[6]
1、對Windows、Linux、Unix等大型主流操作系統的熟練掌握能力。
2、具備快速進行應用系統部署和測試環境搭建的能力。
3、測試人員必須掌握目前主流的程序設計語言,比如C、C++、JAVA、C#、VB等多種平臺下的一種或者多種語言,具備進行簡單應用開發的能力。
4、熟練掌握SQL Server、Oracle、DB2等一種或多種數據庫系統的使用,熟悉使用SQL語言。
5、對信息安全知識的基本掌握。
6、必須深刻理解和熟練掌握軟件測試基礎理論與技術。
7、精通各種測試技術,能夠手工或利用相關工具進行單元測試。
8、能夠進行測試用例設計、測試執行、編寫缺陷報告。
9、熟悉軟件測試流程和測試過程管理,能夠編寫測試計劃,具備組織測試工作的能力。
10、掌握測試管理相關知識和軟件。
11、掌握和熟練使用當前主流的功能、性能自動化測試工具以及測試管理工具,具備編寫測試腳本、進行功能和性能測試自動化測試的能力。
(三)知識結構要求
1、軟件知識:數據結構、操作系統、面向對象程序設計、數據庫原理、C程序設計語言、WEB技術、數據倉庫與數據挖掘、軟件工程。
2、硬件知識:數字邏輯、微機原理與接口、計算機組成原理、計算機系統結構。
3、網絡知識:計算機網絡技術、計算機網絡安全。
4、人文、社會學基礎:原理、道德與法律、中華民族歷史、大學語文、大學英語。
5、數學基礎:高等數學、線性代數、概率統計。
三、軟件測試課程設計理念和思路
根據軟件測試工程的職業能力要求,對軟件測試課程我們重新把握課程的設計理念和思路。
(一)課程設計理念
1、與企業共建基于工作過程的課程體系
根據專業辦學的定位及特色,《軟件測試》課程的設計理念是以軟件測試員/測試工程師崗位需求為依據,以培養學生使用自動化測試技術進行軟件測試的職業能力為主要目標,以測試工作的典型工作任務為導向,堅持以能力為本位的設計原則,制定突出企業應用能力和素養的課程標準,構建基于工作過程的系統化課程體系。課程組通過開展課程標準研討會和技術培訓會等形式,聽取企業專家的建議,修訂軟件測試課程的內容,保證課程內容與企業用人需求同步;在課程功能上注重學生應用能力的培養,構建以掌握軟件測試應用能力為特征的理實一體化的教學內容,做到強化技能、提升業務素質,提高學生的就業競爭力和實際工作能力。
2、和相關課程構成課程群,實現企業應用項目開發過程的案例教學環境
立足于培養滿足企業應用的軟件項目開發需要的應用型人才,本課程以真實的軟件實例項目測試任務和過程為依據,以現代教學理念為指導,精心進行教學設計。
在構建課程體系[7]時,由專業建設及教學指導委員會,充分調查分析不斷變化的市場,以企業應用軟件項目開發為切入點,構建基于軟件項目開發過程平臺。將《Java面向對象程序設計》、《數據庫原理及應用》、《軟件工程》、《軟件測試》、《軟件項目綜合實訓》這5門課程,按照專業培養目標,掌握計算機軟件技術所必需的理論知識和專業技能,具有較強實踐能力,能在軟件項目研發測試一線從事軟件項目需求分析、設計、編程、測試和軟件產品等工作的高素質應用型專業人才的要求,對應“軟件工程師”、“軟件測試師”“數據庫工程師”等行業職業特征,以項目為載體,形成一個有機整體,整合成“基于企業應用軟件項目開發過程”,組建了課程群。其中《Java面向對象程序設計》、《數據庫原理及應用》是專業核心基礎課程,《軟件工程》、《軟件測試》、《軟件項目綜合實訓》是專業核心必修課。通過“軟件項目的需求分析、設計、編程和測試技術”這個鏈將這五門課程緊緊聯系在一起,并能帶動軟件技術、網絡工程、計算機信息管理、計算機應用技術等幾個專業的協調發展。
(二)設計思路
1、以軟件測試工程師對軟件測試的能力要求為主線,設計課程體系,強化“工程屬性”,突出“項目色彩”。
在課程體系設計中,課程組以軟件測試工程師對軟件測試的能力要求為主線,整合“JAVA面向對象程序設計”、“數據庫原理及應用”、“軟件工程”并融合到以多種實際企業項目作為案例的“軟件項目綜合實訓”實踐課程中,經過優化,強化課程的“工程屬性”和“企業項目開發色彩”,將原來在傳統課堂教學中僅僅通過簡單實驗無法實現的“集成測試”、“性能測試”、“系統測試”、“驗收測試”等環節在實際工程項目實訓中得到實現,并努力培養學生崗位職業能力。在課程教學中,堅持以實際項目案例中的工作任務為目標,融理論教學與實踐教學為一體,以案例教學為導向,結合學生考取軟件測試工程師資格證書的實際需要,加強學生職業能力和綜合素質的培養,提高學生就業競爭力。
2、以企業工程能力培養為重點,實行分階段培養模式
根據企業工程能力的形成過程,課程組將教學內容劃分為基礎理論階段、技術應用階段、職業發展階段三個階段。其中,基礎理論階段包括測試基礎理論模塊,主要介紹軟件測試的基本理論與技術,測試用例設計和軟件測試流程,側重培養學生的測試思維,了解并掌握軟件產品質量保證的基本思想和基本測試流程,以及軟件測試的方法、技術,使學生能夠設計出測試案例并通過手動測試實現測試案例,為全面掌握軟件測試技術,后續實施測試和測試項目管理打下堅實的基礎。技術應用階段包括測試技術應用模塊,主要介紹主流的自動化測試工具,包括IBM系列測試工具、HP QTP、HP LoadRunner,企業級項目的測試實施,培養學生將測試知識和技術應用于自動化測試實施的能力。職業發展階段包括測試項目管理和職業素質教育兩個模塊,主要介紹軟件測試項目管理的相關技術和方法、運用工程項目方式管理軟件測試過程、測試企業工作模式和軟件測試人員必備素質,培養學生的項目管理能力、團隊協作能力和求職應聘能力。
適當加入游戲測試、手機測試、筆記本測試等學生感興趣的內容。我們了解到學生對游戲測試這部分內容很感興趣,那些平時聽課不太認真的學生在這個問題上都舉手要說上幾句,躍躍欲試,也都能說出一二。所以,課程組在軟件測試這門課程中經常討論一些游戲測試這部分內容,以引起學生的學習興趣。
四、改革教學模式和教學方法
(一)教學模式
本著“教師為主導,學生為主體”的思想,采用雙證培養、分階段培養和教學做評一體化教學模式[8]。
1、雙證培養教學模式
實行“雙證培養”教學模式,將學歷教育與技能學習無縫對接,學生畢業后不僅能獲得國家承認大學學歷證書,同時還將獲得國家勞動部高級職業技能認證證書。根據學生的能力特點,推薦學生考取軟件測試助理工程師、軟件測試工程師、軟件質量管理工程師、注冊軟件質量保證師(國際認證)等資格證書。雙證教育使學生專業能力更強、職業素養更高、綜合素質更好、更符合企業用人標準。
2、教學做評一體化教學模式
將教學場所直接設在實訓實驗室,師生雙方邊教邊學邊做,理論和實踐交替進行,把課堂教學轉向工作情境,課堂由教師為主轉向以學生為中心,突出學生動手能力和專業技能的培養,充分調動和激發學生學習興趣。學生真正變成了學習的主人,而老師只是一個引導者或答疑解惑者,可以培養學生的終生學習能力,對加強學生的計算機動手操作能力和解決實際問題的能力也有很大好處。
最后教師跟大家一起對實驗結果進行講評,并對表現優秀的學生給予鼓勵,同學們情緒高漲,學習積極性高。
(二)教學方法
根據學生的實際情況,綜合采用多種教學方法[9][10]。
1、項目導向教學法
以從企業精選的項目為載體,在授課過程中對項目進行分解,根據學生的個性和他們的意愿分配不同的角色,并引導學生練習操作,體驗項目流程,從而形成規范的開發意識和良好的IT職業素質。學生在校內所學習到的軟件開發中的各類案例,在實際工作中能夠及早地進行規劃。
本課程以物流信息網這個項目為主線,把整個課程的教學演變成一系列的教學情境。按照實際工作中項目開發流程的順序,依次展開,將“顯性”的知識灌輸,變為“隱性”的能力培養。通過具體項目的實施,引導學生在完成項目的過程中,掌握知識,培養能力。
2、任務驅動教學法
在課堂教學活動中,如果采用傳統教學方法,很難激發學生學習興趣。應該采用任務驅動教學方法,把一個項目分解為若干個大任務,每一個大任務,又分解為若干個小任務,將任務資料發給學生。學生在教師的引導下,課下先要進行消化,然后查閱各種必要的資料,理解知識并思考提出解決問題的方法。課上教師答復學生的問題,并引導學生更深層次的思考。通過這種方法充分調動學生的學習積極性,提高學習興趣,使學生既學會理論知識又學會用理論知識解決實際工程中的問題。
3、啟發式教學法
教師根據課程教學目的、內容、學生的知識水平和認知規律,采用啟發誘導方法傳授知識。該方法能夠充分調動學生學習的積極性、主動性,促使學生獨立思考、判斷、歸納解答。能較好的培養學生學習能力,達到觸類旁通的教學效果。
4、小組教學法
將班內學生分成若干個測試小組,每小組成員不超過7人,每組分配不同的軟件項目任務。小組成員模擬與體驗軟件測試全過程工作職位和角色,使學生全過程適應工作職位的要求。
各項目小組在測試項目過程中,針對不同的開發階段,撰寫各開發階段相應的文檔,并制定相應的測試計劃,設計典型測試用例,使用不同的軟件測試技術和測試工具,完成不同的測試目標,并進行回歸測試,以實現軟件測試各單項專業知識與技能整合運用的目標。在整個測試過程可以體現“學以致用”的思想,實現理論與實踐相結合。
通過演練項目開發測試,不僅讓同學們切身體會到軟件開發的整個過程,還讓同學們對軟件開發中各個角色有充分的了解,同時也更深刻的體會到團隊合作的重要性。
五、教師隊伍建設
加強雙師隊伍[11]建設,堅持“引進來,走出去”原則,積極引進具有企業開發經驗的高素質人才進行課程教學和實驗指導,同時注重本課題組青年教師隊伍的培養。采用分批次選派青年教師參加山東大學齊魯軟件學院暑期實訓和定期組織青年教師去軟件公司實習等方式,將企業的軟件測試經驗直接帶到教學中,提高教師的教學水平。
我們定期引進一些軟件公司的軟件測試人員或者聘請這方面的專業人士為教師、學生做定期講座,以彌補我們在教學實踐方面的缺陷。
六、實驗實訓條件建設
為培養應用型人才,本課程注重從不同側面提高學生的實踐能力。一方面,強化課內實驗教學,在校內建有多個實訓實驗室,另一方面,與校外多家企業建立合作關系,為學生提供實訓實習平臺,開展產學研合作,構建校企合作培養人才的新模式。
本課程組注重密切與行業和企業的聯系,與多家軟件公司進行長期合作,建立了校外實習實訓基地[12],為學生提供了生產性實訓和頂崗實習的場所,在真實的職業環境中完成真實軟件產品的開發,體驗企業文化,培養職業態度和習慣。學生畢業后可成為這些公司的正式員工,真正實現了學校、企業、學生三方受益。
七、改革考核方式
大膽改革課程考核方式[13],采用30%平時成績+30%實驗成績+10%項目考核成績+30%期末考試成績方式。平時成績主要考核學生的課堂討論情況、課后作業完成情況及課后自學情況。實驗成績根據學生在實驗中的測試用例設計和操作情況,以及測試小組的分工合作情況給以評分。項目考核主要采用項目答辯的形式考核學生對基礎知識的理解和掌握情況,由教師、行業專家、學生代表組成專家組給予評分。這種考核方式更注重的是對學生學習過程和實踐操作水平的考核,避免學生為考試而學習,死記硬背現象。
八、小結
通過對基于工作過程的軟件測試應用型人才培養模式的探索研究,學院已取得了實質性進展,建立了軟件測試課程教學團隊和軟件測試實驗實訓基地。學生的軟件測試綜合應用能力有明顯的提升,得到用人單位的好評,提高了學生的就業率。
參考文獻:
[1]龔宇輝.軟件測試課程教學改革研究[J].教育與職業,2010(24):130-131.
[2]溫艷冬,石冬凌.軟件測試課程三級項目教學實踐[J].計算機教育,2010(22):77-79.
[3]胡宏銀.軟件測試課程教學方法探討與實踐[J].計算機教育,2007(03):11-13.
[4]http:///link?url=5xO-IodKMsEhsyUjQhIeqybDGR-8AypYffsnAnZdMWpLRpgEhLehfzGEROxq9fIC.
[5]孫金華.軟件測試人才培養與課程構建的探索[J].計算機時代,2009(6):68-71.
[6]鐘素芬,葉明芷.軟件測試應用性人才培養模式的探索與實踐[J].北京聯合大學學報(自然科學版),2007(03) :89-92.
[7]田小霞.軟件測試人才培養的探索[J].福建電腦,2013(02):181-182.
[8]劉育熙,耿雪春.面向應用的軟件測試人才綜合能力培養模式研究[J].教育與職業,2009(11):111-112.
[9]范洪輝,朱洪錦,朱廣萍.“軟件測試技術與軟件質量”課程教學改革探索[J].江蘇技術師范學院學報,2012(12):151-153.
[10]周改云,馬麗.行動導向教學在軟件測試技術課程中的應用[J].電子測試,2013(04):192-194.
[11]蘭景英.構建應用型軟件測試人才培養實踐教學體系[J].黑龍江教育學院學報,2011,(05):78-80.
[12]蘭景英.應用型軟件測試人才培養模式探索與實踐[J].濰坊教育學院學報, 2011,(04):78-80.
[13]葉振,杜斌.開放式軟件測試教學實踐探索[J].現代企業教育,2011(01):140-141.
基金項目:
山東協和學院教改項目(2012xh01)。
作者簡介:
李兆翠(1980.1-),女,山東莒南人,碩士,講師,研究方向:軟件工程。
篇7
關鍵詞:軟件測試 軟件工程,質量
中圖分類號:TP311 文獻標識碼:A文章編號:1007-9599 (2010) 05-0000-02
Views on Raise the Level of Small&Medium Software Companies Test
Zhou Pijian
(GangXi NanNing YingTai Career Training School,Nanning530022,China)
Abutract:This article describes the small and medium-sized software companies to improve software-testing level of insight.Including the management,implementation and technical aspects.
Keywords:Software testing;Software engineering;Quality
隨著軟件技術的發展,軟件測試的地位越來越被人們重視,測試技術的發展也日新月異,甚至出現了專門的軟件測試公司。在這樣的潮流下,我國的軟件公司受到了很大的沖擊,沒有測試就沒有質量的觀念被越來越多的管理者所認識,對我國軟件行業中占據主導地位的中小軟件企業來說,硬件,環境,人力等各方面力量相對不足情況下,不可能向微軟等大公司那樣去實施軟件測試,那如何在現有的條件下進行改善呢?根據自己以前所在公司的一些測試經歷,總結了一些經驗,希望對我國中小軟件公司的測試發展提供一些新的思路。
軟件測試作為軟件工程的一個有機組成部分,其過程就是以發現錯誤,檢驗是否滿足需求為目標。在軟件投入生產性運行之前,盡可能多地發現軟件中的錯誤并修正,才可保證軟件的質量。據有關統計,在整個軟件開發的成本中,測試上的開銷要占40%到50%。放眼世界,好的IT公司對軟件測試的重視程度也發生了新的變化;美國硅谷地區,凡是軟件開發企業或是設有軟件開發部門的公司,都有專門的軟件測試單位,其中軟件測試人員的數量相當于軟件開發工程師的四分之三,負責軟件測試的質量保證經理的職位與軟件開發的主管是平行的;作為軟件行業老大的微軟公司,在其內部,軟件測試人員與軟件開發人員的比率一般為1.5―2.5左右,從其軟件開發的成功實踐過程表明這種人員結構的配比是非常合理和正確的;在軟件產業發展較快的印度,軟件測試在軟件企業中同樣擁有舉足輕重的地位。由此可見軟件測試是多么地重要!
相對而言,我國的現狀是:軟件開發行業主要由中小型軟件公司組成,在人員數量上少則不到十來人,多則幾十人,卻少有上百人的。由于人員數量的不足,很多公司把軟件測試放在了一個可有可無的地位,據了解,大多軟件公司存在這樣一種狀況:技術部十來個開發人員,而竟沒有一個專職測試人員,等到軟件產品將要交付給客戶時,則對整個產品進行交互測試,而測試的工作常常是胡亂地交給市場部的銷售員或維護員去瞎折騰,常常會發現很多錯誤,甚至是低級的BUG,由于整個過程省去了中間的測試,很多時候造成無法找出錯誤的原因,使得軟件產品的生產不得不修改計劃,影響了最后交付的時間,很多時候使得開發過程混亂、無序。造成了很大的損失。另外,即使是有專職測試人員的公司,其測試人員的數量、地位、待遇、重視等都遠遠不及開發人員。因而造成軟件測試都是不足的,開發出來的軟件產品存在相當多的漏洞,軟件產品的質量得不到保證上,甚至交付產品后還常常從不斷地從客戶處得到BUG,造成了很不好的影響。 因此,加強軟件測試,特別是中小軟件公司的軟件測試及水平是提高產品質量的重中之重,是企業要立足于市場的根本。
要如何提高中小軟件公司的軟件測試水平呢?就我的經歷而言,一是把軟件測試的認識和管理提高到相當的高度;二是提高測試技術。特別是認識和管理提高到位了,產品的質量就會改善很多。
其一,軟件企業要從思想上的發生轉變,每個員工都要意識到軟件測試不僅是在軟件開發完成后執行,而且是在軟件開發的各個階段都要參與執行。在此基礎上提高自動化軟件測試手段才能提高軟件的質量。因此,對軟件開發來說,其重心不僅要關注設計、編碼階段,更要關注在測試等關鍵點上。作為領導,這一點要帶頭領悟到。
我所在的公司老板和項目經理曾經做過這樣一種方案:快速完成所有的編碼,完成后進行所謂的測試,測試出現問題后再進行修改,以為這樣能達到最快的速度和質量,但是,事實證明,沒有把測試分發到代碼制作的各個環節,最后的結果是發現一大堆的錯誤,甚至有些是至命的錯誤,使得產品根本無法在計劃的時間內完成,造成時間不足,修改程序時匆匆忙忙,甚至不能按正常流程走,使得產品做得很粗糙,遞交到客戶手中后還發現相當多的問題,給后期的維護造成了很大的困難,記得當時我們的客戶遍布全區,維護的工作量非常大,經常超出原來的維護計劃,造成成本上成倍增加,給公司帶來了很大的損失。基于這種現象,公司的領導在后一版的開發中,加大了測試的力量和過程,使得后一版不僅在規定的時間內完成,效果也比上一版好得多,在成本上也節省了很多。真的是體會到了“將測試滲入到軟件開發的各個階段”的多多好處。
在中小軟件企業中存在這樣一種現象:很多企業會喜歡讓那些經驗最少的新手、效率低下的開發者或不適合干其他工作的人去做測試工作,認為這樣可以最佳的利用資源,因為在他們的觀念中存在這樣的理念:測試是沒有技術含量的,只要多用用軟件就可找到錯誤。正是這樣的理念造成了企業測試水平低下,成本花費高。如要改變這種情況,就得好好的認識什么是測試,一個合格的測試工程師應具有那些基本素質?
以下是針對企業當前情況,對測試工程師基本素質進行了如下的總結:
1. 態度上:對軟件測試要有濃厚的興趣,有耐心,有意力。
2. 技術能力:
(1) 具備計算機的基礎知識和測試專業知識這樣的技術能力
(2) 有一定的編程經驗,程序相當于程序員
(3) 能從使用者的角度出發,根據開發使用的設備、技術等特點來設計測試用例
3. 溝通能力:能很好地合項目經理、開發人員、客戶、市場人員溝通,從溝通中歸納出有用的信息
4. 嚴謹、敢于承擔責任、穩重的做事風格:測試中要考濾多方面,發現錯誤要正確面對,急時糾正。
5. 具有懷疑與進取的精神:不能以常規的思路來做,要設計一些非常規的、相反的測試用例,沒有懷疑和進取的精神那只能是原地踏步,沒有進展
6. 善于自我總結、自我督促,積極學習:測試是一種即繁瑣又枯燥無味的工作,做多了你會覺得似乎一成不變,不總結,督促自己那就會陷入一種做事無動力的狀況,積極學習不斷出現的新的測試工具。
其二,管理要加強,軟件測試管理不能隨意、簡單地做,不能沒建立有效、規范的體系就動手測試,哪出問題就先補救哪,因為這會把測試人員常被弄得疲憊不堪,很多時間被耗費在單調無聊的補救工作上,使得測試人員失去了興趣,陷入瓶頸,工作效率、能力不僅得不到提高,甚至是下滑。而建立有規劃的,可行的軟件測試管理體系能使用測試人員事半功倍,提高工作效率,進而提高產品的質量。那么,如何建立呢?我認為除了參照國際著名軟件公司的做法,更主要的還是結合自身的特點、軟件開發的體系、測試人員的技術特點與行為習慣等等建立一套符合自身公司體系。目前,很多小公司的人手不是很足,要建一個和軟件工程中所描述的測試體系是非常不現實的,就我看來,除了公司本身要設立單獨的測試崗位,到少一個測試經理,一個測試員外,開發人員還得擔負一定的測試任務。測試經理主要參與測試的規劃和過程管理以及設計階段的測試,測試員主要是負責測試用例的編寫和相應的編碼測試,而開發人員在完成自己的編碼任務后,則參與到單元測試來,配合測試人員完成相應的測試工作。整個過程中要求開發和測試要合協,要測試經理與項目經理做好協調,一起參與項目的調研,需求分析并認真地做好文檔測試,因為把好這關,源頭正了,下面也就好做了。在實際過程中不論遇到什么困難,都要按照規定的步驟來實現,不能跳過去。一旦出現違反規定的作法,不論什么原因,公司都要給予懲罰。相信經過這樣的實施,測試的框架就基本上建起了。
其三,測試的實施過程要強調流程,否則,常常也會是事與愿違。
1. 在初始開發階段,測試經理要和項目經理參與總體設計,協商并擬訂開發規范,并交給由開發人員和項目管理人員評審。根據提出的意見,對規范進行修改,并提交高層審核。這樣可發揮各方面的積極性,對公司領導而言,他們的參與加強了對整個開發的監督;對于開發人員而言,由于是他們提出的,就不會出現把發現錯誤的責任全部推給測試人員,甚至作到提前預防錯誤、減少潛在危險的發生,測試人員也會加深地規范的理解,相互間的牽制,保證了開發的質量。
2. 形成需求分析后,測試經理要對分析報告做一個詳細的測試,根據需求的實際內容招集相關的人員,包括市場、開發、測試的人員,有可能也請來客戶,由項目經理對各項各條給予適當的講解,與會人員對提出的問題,提出不足,并給予評介,特別是把握計劃中的不變與可變的地方,并由此做出測試的標準。例如:設計報表時是要設計靈活變化的還是要一層不變的?得從參與會議的市場、維護人員及請來的客戶處了解客戶的實際使用情況,包括年齡、計算使用水平、業務水平等。
3. 在單元測試時要把開發人員的“白盒測試”與測試人員的 “黑盒測試”相互配合。
4. 集成測試:通過化整為一的方法來進行,主要以黑盒的方式來進行。記住兩模塊接合好后就得馬上測試,通過后才能與第三模塊接合。
5. 驗收測試:多方人員參與,包括市場,用戶,專職維護人員。這時主要改善界面的統一性,美觀性,易用性。
6. 加強文檔測試,測試人員要加強與開發人員的溝通,對開發人員提供的文檔加以細化,做到重點突出,內容規范,例如:模塊的描述使用功能流程圖、數據流程圖及用例來描述,這使用整個過程理清思路、邏輯性加強,更易于閱讀。在詳細程度上可簡略些,但隨著開發過程的深入要進一步完善,因為這些文檔都是單元測試中的標準。
7. 加強人的主觀能動性,不論是手工還是自動的方式,都要參與評審,以人的實際為重。
其四,根據公司軟件產品的特點,有針對性地對提高測試人員的測試技術和技巧,不要盲從。下面從兩個方面加以描述:
1. “白盒測試”要把握如下:
(1) 正確性測試:檢查軟件的功能是否符合規格說明。一般通過減少枚舉的次數,尋找合適的等價區間。如(A,B)是命題F(X)的一個等價區間,在(A,B)中任意取X1進行測試。如果F(X1)錯則在整個區間上都錯,如正確,則都正確。
(2) 邊界值測試:用定義或者等價區間的邊界值進行測試。如測試f(x)=√x的一段程序,憑直覺等價區間就是(0,1)和(1,+∞)。可取經x=0。5以及x=2。0進行等價測試。現取x=0以及x=1進行邊界。
(3) 容錯性測試:測試異常條件下的行為。如輸入錯誤的數據類型,輸入域之外的數值。
(4) 性能和效率:測試運行速度和對資源的利用率。
(5) 易用性測試:。一般以用戶不翻閱手冊就可使用軟件為目的。
2. “黑盒測試”,要把握如下:
(1) 等價類劃分:設計測試用例要以需求規格說明書為依據,把說明中對輸入和輸出的要求加以區別和分解。即把程序的輸入域劃分成若干部分,然后從每個部分中選取少數代表性數據當作測試用例,沒有必要用窮舉測試。
(2) 邊界值分析:選擇等價類邊界的測試用例來測試。對邊界附近的處理必須給予足夠的重視,,加強這方面常??梢匀〉昧己玫臏y試效果。特別地,一旦發現的錯誤就得及時更改,更改后重新測試。
綜上所述,是對中小軟件企業提高測試的一些行之有效的見解,但不一定適用于所有的軟件企業,因為各軟件企業存在的問題不同,所處的情況也不同。希望以上的見解可以給大家一些提示,達到提高各自的測試水平。
參考文獻:
[1]朱少民.全程軟件測試[J].電子工業出版社,2007
[2]微軟的軟件測試之道 Alan Page KenJohnston Bj Rollison 機械工業出版社,2009
[3]王宇.軟件測試的實現和理想[J].中國計算機報,2003
[4]王立福.軟件工程[J].北京大學出版社,2009
篇8
1.1論文背景和意義
隨著IT產業的快速發展,計算機已經影響到人類生活的各個方面,從而不斷改變著世界⑴。從個人計算機,到超市或銀行的終端,到國防科技和航天領域,甚至到現在的嵌入式手機,計算機都占有一個很重要的角色,因此,計算機已經深入到生活工作中的各個方面。正是由于計算機在游戲、通信、交通、金融、軍事、電力、航天等重要領域越來越廣泛的應用,計算機發展的規模也FI益壯大、復雜、多功能化,而且對計算機質量的要求也越來越高。在這個信息化的時代,IT產業迅速發展,尤其是硬件率先發展。硬件的發展主要體現在質和量的方面,不僅數量越來越多,而且質量也得到了保證。相比較而言,軟件雖然發展也很迅速,但主要是體現在量的方面,質的問題一直存在。隨著軟件規模不斷的擴大,軟件的質量保證逐漸成為人們所關心的焦點。軟件幵發人員試圖通過研究更好的開發過程來保證軟件的質量,但結果是事倍功半,所以對軟件進行測試是保證軟件質量最可靠有效的辦法。
軟件測試是軟件生命周期中的重要階段,是軟件質量保證的關鍵步驟,也是軟件工程的重要組成部分。軟件測試的效果直接影響到軟件產品的質量。然而,做好軟件測試卻是不容易的,一方面產品必須給予軟件測試充分的獨立性和資源保證;另一方面,測試人員需要同時掌握軟件開發的技能和軟件測試的技能。通過軟件測試找出軟件存在的錯誤,分析錯誤產生的原因和錯誤的發生趨勢,可以幫助項目管理者發現當前軟件開發過程中的缺陷,以便及時進行改進[2]。同時,對于軟件錯誤的分析也能幫助測試人員設計出具有針對性的測試方法和測試用例,改善測試的效率和有效性。沒有發現錯誤的測試同樣有價值,完整的測試是評定軟件質量的一種方法。
自動化測試框架是測試習慣和思想的集合。自動化測試框架具有很多優點,首先它可以確保代碼的一致性,對于回歸測試支持修復后再測試,從而提高了系統的可信賴度。其次,它可1以提高代碼的重用性,從而提高了代碼的生產效率,同時也減少了不必要的代碼,進而提高了測試代碼的執行效率。最后,它將重構概念作為其核心思想,使代碼的適用性更強,從而提高了測試代碼的質量。自動化測試框架可以分成兩個層次。第一層主要是測試腳本的設計,利用與之相關的測試工具,開發對應的測試驅動,從而完成測試的業務邏輯。第二層是建立在第一層之上,這一層的主要作用是管理整個自動化測試,包括自動化測試用例的執行順序、自動化測試框架的開發、執行和維護,也包括對第一層測試腳本的維護以及管理測試任務和測試報告等,在工程量大的項目中可以提現出它的重要作用。自動化測試雖然可以節約成本,提高測試效率,但它也有著適用范圍。一般來說,自動化測試普遍用于三種情況,一是產品型項目,新版本是在舊版本的基礎上進行改進,功能變化不大的項目,但項目的新老功能都必須重復的測試。二是回歸測試,自動化測試主要應用于回歸測試,回歸測試能夠有效的驗證舊的缺陷是否修正,同時查看是否引入新的缺陷,在某種意義上,自動化測試工具也叫做回歸測試工具。三是機械且頻繁的測試,每次需要輸入相同、大量的一些數據,并且在一個項目中運行的周期比較長。
本文以甲骨文的中間件產品Tuxedo及其附屬產品為測試對象,以STAF(Software Test Automation Framework,自動化測試框架)作為測試引擎分析并實現的一個測試框架ATTE。
1.2國內外發展現狀
在計算機軟件日新月異的今天,軟件測試正在成為軟件工程領域里的一個非常矚目的趨勢和地位,國內外許多學者和組織在軟件測試方面投入了大量的研究工作,而且很多軟件公司正在或已經在企業測試團隊內部實施軟件測試流程和框架,這就形成了許多經典的軟件測試技術和流程管理規范[3]。
在全球最大的個人計算機軟件公司微軟,一個傳統的項目開發中,測試的工程師比編碼的工程師多很多,也就是說微軟公司在測試方面的工作要比編碼上的工作多很多。在國外尤其是美國,IEEE和ACM等組織已經制定了一系列的軟件測試規范,還有許多公司如 Rational Corporation、Mercury Interactive> Compuware等都是著名的軟件測試工具供應商,這些公司生產的測試工具在全國市場占了很大的比例。我國當前使用的很多主流軟件測試工具都是國外的產品,可見國外的軟件測試工具的開發已經形成了成熟的產業[4]。
2軟件測試概述
隨著信息技術的快速發展,計算機軟件已經應用到社會的各個領域,例如科學、教育、文化、生活、國防科技等。而軟件質量問題也成為人們所關心的焦點。人們對軟件依賴的程度越高,對其可靠性就要求的越高。然而,對于計算機軟件來說,不論采用什么樣的技術或者方法,軟件存在缺陷是不可避免的。采用新的編程語言,先進的開發技術,完善的開發管理,可以減少缺陷的引入,但是不可能完全杜絕缺陷的存在。因此,需要采用相應的措施來發現并解決這些缺陷,所以首要的任務就是發現這些缺陷,這就需要靠軟件測試來實現。
2.1軟件測試的目的
表面上看,軟件測試的目的是要證明程序有故障存在,并且要盡可能的多、盡可能早地發現程序中的錯誤
。實際上,暴露問題不是軟件測試的最終目的,發現問題是為了解決問題,只有解決了問題,軟件的質量提高了,才達到了測試的最終目的。 3ATTE測試框架需求分析................19
3.1Tuxedo的測試特點................19
3.2Tuxedo的測試周期................20
3.3測試現狀分析................21
3.4新測試框架的需求................22
4ATTE測試框架系統設計................23
4.1ATTE總體架構................23
4.2公共模塊設計................ 24
4.3配置模塊設計................27
4.4用例模塊設計................30
5ATTE測試框架實現................33
5.1公共模塊的實現................33
5.2配置模塊的實現................44
5.3用例模塊的實現................46
5.4ATTE異常處理控制................48
篇9
關鍵詞:應用型本科;分層次教學;軟件測試;教學改革
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)24-0169-02
一、軟件測試行業現狀
近年來,我國IT軟件產業呈現迅猛發展的態勢,但是由于許多國內軟件企業存在著“重開發,輕測試”的傾向和認識的誤區,往往導致在軟件開發工程師開發出一個軟件后,卻沒有一個好的軟件測試工程師對軟件項目進行測試,從而導致所開發的產品出現質量問題,這也從側面突顯了我國軟件測試人才的極度匱乏。國外IT企業中的軟件測試與軟件開發人員的比例一般維持在1∶1左右,而在國內的一些IT企業中,這一比例卻僅在1∶4~1∶5之間。因此,高校如何培養符合社會需求的大批高質量軟件測試人才,如何盡快建立軟件測試人才的系統培養機制,進而保障軟件業的健康化發展,已成為現階段應用型本科院校人才培養極為艱巨和緊迫的任務。
二、軟件測試課程的現狀
當前,《軟件測試》課程已從隸屬于《軟件工程》課程單獨一章的內容發展成為軟件工程專業中一門獨立、必修、核心的課程,甚至有些學校已經單獨開設了“軟件測試”這一專業。筆者結合近幾年的教學情況,總結了該課程中尚存在的若干問題。
1.授課內容陳舊,理論知識多、枯燥。隨著軟件開發技術的發展和進步,當前軟件測試領域不斷涌現出新的測試理論、測試技術、測試方法及測試工具,如:敏捷開發所引起的敏捷測試技術、探索式測試技術及快速迭代測試技術,不斷普及的自動化測試催生了大量自動化測試工具的產生及應用,等等。而反觀當下大多數與軟件測試有關的教材及參考書,絕大部分仍以傳統而深奧的理論知識為主,同時輔以傳統的測試模型及測試方法的介紹,缺乏案例教學及項目驅動教學的實例,授課內容多,一個學期的課時往往不夠安排,教與學的過程都顯得極為枯燥乏力。
2.缺乏良好的實訓平臺,實驗內容與理論知識難以結合。軟件測試按不同的標準可分為不同的類型,如圖1所示。這些不同類型的測試在理論課上往往都會涉及到,但在實驗課上卻難以一一展開,盡管安排了“2+2”的周課時(即每周2節理論課+每周2節實驗課),但由于受限于實驗案例的選擇、機房上機環境的配置、缺乏良好的實訓平臺及學生基礎參差不齊等原因,實驗內容與理論知識始終難以結合。
3.“重開發,輕測試”的思想普遍存在,學生疲于應付考試,死記硬背多,考完即忘。軟件測試是一門綜合性強、涉及學科領域多的課程,學生普遍缺乏具體認識,大多存在“重開發、輕測試”的心理,認為只要能把系統開發出來,做不做測試都無關緊要。這也導致學生對這門課的學習不夠重視,期末考試也是疲于應付,對一些基礎知識甚至是軟件測試領域中的常識問題,不注重理解,死記硬背,其結果必然是背得快、忘得也快。基本考核結束之后,所有的知識點也都還給授課教師了。
三、分層次概念的提出
“分層次教學”的思想源于孔子提出的“因材施教”。目前“分層次教學”的思想在高等教育領域尚處于探索與研究階段,為適應社會和經濟發展對工程創新型人才的需求,龍巖學院信息工程學院積極推行“應用型本科人才培養模式改革與實踐”的人才培養方案,不斷在專業培養方案、教學模式、課程體系及教學方法和手段等方面進行創新和變革,以期提高教學效果和人才培養質量。軟件工程專業在上述大環境下,根據自身特點和社會市場對軟件人才的需求,對課程體系進行重新調整,并按照專業能力分階段、分層次的培養目標,運用宏觀調配的方法對課程體系各知識模塊進行整合與優化。
四、擬采取的措施
《軟件測試》課程是軟件工程專業的一門專業核心課,是培養學生軟件測試理論、技術、方法和能力的重要課程,同時,軟件測試也是當前IT行業最熱門和緊俏的職業之一,是保證軟件產品質量、提高軟件可靠性、降低軟件成本和風險的重要手段。基于此,《軟件測試》課程必須在教學內容和教學方法上及時調整和更新,使課程建設與學科建設緊密結合,既要滿足軟件業對軟件測試人才的需求,又要保證軟件工程專業中各知識模塊之間的系統性和完整性。本節以下內容將詳細描述此次分層次教學改革中所采取的措施。
1.對學生分組。筆者所在學院軟件工程專業,一直采用“3+1”的教學模式,軟件測試課程開設在大三上學期(相比其他院校,開設時間提早了一個學期),學生經過大一、大二兩學年專業基礎課及部分專業課的學習,基本能找到自己的學習興趣并定位自己的學習方向,如:有學生對某門程序設計語言,即編程感興趣,有學生對嵌入式開發、物聯網感興趣,當然也有學生對軟件測試行業感興趣,等等。結合學生自己的興趣及學習情況,對學生進行分組,主要分為三類,其中:I類――基礎了解類;II類――一般測試類;III類――測試開發類。
2.實施不同的措施。根據課前對學生的上述分組,對不同層次要求的學生,實施以下分層。
(1)理論教學內容。結合前文第2節所述軟件測試課程教學中存在的問題,將理論授課內容進行調整后主要分為以下四個部分:①軟件測試基本概念篇;②軟件測試技術篇;③軟件測試過程篇;④軟件測試項目實踐應用篇。其中①中主要介紹軟件測試的概念、分類及軟件缺陷等內容,②中主要包含黑盒測試技術及白盒測試技術,③中主要是對單元測試、集成測試、系統測試及驗收測試等進行描述,④則主要按測試模型中的不同步驟進行介紹,包括:測試需求分析與測試計劃、設計與維護測試用例、部署測試環境、測試執行與跟蹤、缺陷報告與質量分析報告等。
對理論教學內容所采取的策略是:I類、II類、III類不同分組的學生,都需要對①、②、③中的內容進行學習;II類、III類學生還需要對④中涉及的內容進行學習;此外,III類學生還需利用課外時間,學習與測試自動化及測試框架相關的知識。
(2)實驗教學內容。結合理論教學內容及實驗室配置環境等因素,在軟件測試課程中所開設的實驗教學內容主要有:①測試之初體驗(在沒有任何測試基礎的情況下如何進行測試);②黑盒測試;③白盒測試;④單元測試;⑤功能測試;⑥性能測試;⑦系統測試。
對實驗教學內容所采取的策略是:I類、II類、III類不同分組的學生,都需要實驗的內容是:①、②、③、④;II類、III類學生還需要對⑤、⑥部分進行學習和實踐;此外,III類學生還需利用課外時間,學習并實踐⑦的內容。
(3)考核方式。為避免學生應對考試死記硬背的現象,將期末總評的成績按以下標準進行:總評成績=考勤×10%+期中×20%+實驗×20%+期末×50%,即適當降低期末卷面分數的比例,提高期中及實驗成績比例。鑒于學校教務處要求,期末考試依然采用統一的試卷,但期中考試則根據不同層次的學生采用不同的試卷進行考核,實驗部分的成績也依據不同層次學生的不同表現進行評定,且要充分利用分層的優勢進行考核。
3.成效。此次教學改革的受益對象主要是我校2012級軟件工程共計109位學生及2013級軟件工程共計106名學生。對于I類層次的學生,除了學習了軟件測試基礎知識之外,他們還能將學習的重心放在自己感興趣的其他科目上;對于II類、III類層次的學生則對課本及課外知識都進行了學習,這為他們畢業之后的職業發展奠定了良好的基礎。
五、結語
教學改革任重而道遠,非一朝一夕能成。未來還需努力的方向在于:①引入更多的案例進行教學,豐富實驗課堂;②進一步完善針對本校不同層次學生的《軟件測試》課程實驗指導書;③給學生加以更多職業規劃方面的輔導,為當今社會IT行業中培養“全面軟件測試工程師”而努力。
參考文獻:
[1]余久久,張佑生,傅廷亮.軟件測試課程教學思考[J].安慶師范學院學報(自然科學版),2013,19(4):121-126.
[2]毛強,彭振生.大學物理課程分層次教學改革初探[J].巢湖學院學報,2009,11(6):137-139.
篇10
關鍵詞:軟件測試;測試管理;管理系統;第三方測試服務
中圖分類號:TP31 文獻標識碼:A文章編號:1007-9599 (2011) 01-0000-01
The Test Management System Design&Implementation Based on Third-party Testing Service Processing
Yang Song1,Su Jia1,Chen Lei2
(1.Information Engineering School,Communication University of China,Beijing100026,China;2.China Software Testing Center,Beijing100048,China)
Abstract:In recent years,more and more prominent position of software testing, it also brings the rise of third-party testing services,with the continuous development of software testing and the progress of third-party testing services, software test process management tools and an increasingly diverse.By analyzing the status of software testing management system and found that there is an existing similar products are not uniform processes,platforms such problems binding. According to the above questions,refer to third-party testing service process,the paper design and implementation of the B / S structure software test management system that uses web2.0 design process in line with national quality assurance system, regulate the flow of third-party testing services to achieve platform independence,which can effectively ensure that the software testing process, software testing process standardized.
Keywords:Software testing;Test management;Management system;Third-party testing service
從軟件質量保證的方面來說,軟件測試是軟件質量保證一個重要環節,通過軟件測試來驗證軟件是否滿足了需求,驗證產品是否滿足內部質量和外部質量[1]。近些年來,國內外在軟件測試管理系統方面涌現出了很多產品,但是這些測試管理系統大部分都是依據各自的測試流程設計的,方式單一。同時大部分在測試管理系統的體系結構上都C/S結構的,不能滿足跨平臺操作系統測試的需求[2]。
軟件測試管理是一種活動,可以對各階段的測試計劃,測試用例,測試流程,測試文檔等進行跟蹤、管理并記錄其結果。針對上述問題,依據軟件測試管理流程,本文介紹了筆者參與設計和實現的基于第三方測試流程的B/S架構的軟件測試管理系統,采用了和Microsoft SQL Server2000進行開發,兼顧效率和靈活性,確保了軟件的質量。
一、B/S架構的軟件測試管理系統的設計與實現
(一)測試工作流程分析
在測試工作之初,就是要制定測試計劃,測試計劃的制定主要是依據被測系統的需求文檔、設計文檔等相關文檔。制定測試計劃后,根據測試技術和測試需求設計測試用例并制定測試過程文檔格式;應用測試用例進行測試,同時記錄測試缺陷,同步填寫測試過程文檔;同時將測試缺陷提交到缺陷管理模塊;根據測試過程總記錄的缺陷和測試記錄進行缺陷分析;最后將測試缺陷、對應的測試問題分析和測試結果輸出到測試報告生成模塊產生測試報告。
(二)測試管理系統的設計
本測試管理系統采用三層架構的設計方式,應用和Microsoft SQL Server 2000進行的設計。測試工程師通過瀏覽器訪問測試管理系統,通過用戶名和密碼登陸系統,訪問系統各個模塊,測試結果通過表現層經業務邏輯層的處理存儲到數據庫。測試管理系統部署在Microsoft Windows 2003操作系統中,因為應用了B/S架構,因此避免了平臺相關性。
其中,系統管理員主要是通過系統和各個注冊職員的角色分配任組建測試團隊和分配測試內容。項目經理主要負責整體測試項目的管理,其中包括:測試需求的制定、測試方案的撰寫、測試執行過程、以及測試執行過程中缺陷庫的更新并對測試結果進行分析、審查測試報告和撰寫測試總結,屬于監管控制角色。測試工程師主要任務是參與測試設計計劃和撰寫測試方案,更新缺陷庫中的信息以及撰寫最后的測試報告工作等,在測試管理體系中屬于測試執行角色。
(三)測試管理系統的實現
第三方測試服務的測試過程中,用戶、開發方和測試方形成了相互制約的關系。但三方的目標都是希望被測系統符合需求、能夠穩定運行。本測試管理系統主要由權限管理、需求管理、測試計劃管理、測試執行管理、缺陷管理和測試報告管理這幾個模塊構成。
權限管理主要是由系統管理員通過對系統中各個角色分析后,進行人員的分配,組建測試團隊,同時分配給團隊測試任務,進行測試前期的準備工作。
需求管理主要是設計測試需求,首先制定測試需求及其工作分解結構,然后對其進行評審,評審不通過要就行修改,評審通過后產生測試需求報告,進入測試計劃階段。
測試計劃模塊主要是制定測試時間、安排測試任務、設計測試用例、設計測試步驟并完成測試計劃文檔,為測試執行部分做好一切的準備。
測試執行部分主要是以測試計劃中設定的測試用例進行測試用例集編寫,然后通過項目組評審通過后按照測試計劃安排的測試時間安排進行測試工作。
缺陷管理模塊主要是配合測試執行模塊一起執行的,在測試執行過程中,發現問題,將缺陷上傳到缺陷管理中,同時在回歸測試的時候再將重點放到已測出缺陷上,同時修改已不再存在的缺陷,存入缺陷庫。測試報告模塊主要是根據以上所有的過程產生的文檔,自動生成測試報告同時將缺陷分析結果寫入報告中,為企業提供以后系統改進的依據和系統調優的建議。
二、結論
本系統依據第三方測試流程進行設計,采用了B/S架構避免了系統應用的系統相關性。系統分為權限管理、需求管理、測試計劃、測試執行、缺陷管理和測試報告生成幾大模塊,同時實現了根據測試需求自動生成測試用例,依據未關閉的缺陷和測試過程文檔自動產生問題分析報告的功能。本系統已經在幾個測試項目中得到了應用,系統同時支持100人的在線和50人的并發壓力,經實踐檢查本系統符合第三方測試服務的流程,能夠滿足第三方測試服務的要求。
參考文獻:
[1]吳慧韞,李卓群.基于H模型的軟件測試管理應用模型研究[J].計算機工程與設計,2006,27(11):1993-1995
[2]黃曉東,劉強環境下軟件測試管理系統的設計和實現[J].武漢理工大學學報,2005,27(6):37-40