2014年10月,我應南京大學計算機科學與技術繫聶長海教授的邀請給計算機繫做一次Web安全領域的講座。在整個講座過程中大家的熱情都非常高,在後面的座談中,大家一致認為如果有各種攻擊成功的實例就更容易理解了; 隨後我展示了部分網站被攻擊成功的樣式。通過這次的研討,讓我深深體會到高校教師與同學在研究軟件應用時,特別需要經典案例的指引。這樣所學的知識就更容易理解,能夠通過不同層次的應用施展開來,找到用武之地。
時光回轉到2012年12月,我應西南科技大學計算機科學與技術學院範勇教授的邀請,給全院師生做“軟件測試行業發展與國際化測試”專題講座。會後與範教授團隊就軟件測試實訓基地建設、人纔培養模式、課程教學方法改革等內容進行了深入的交流。眾多高校的需要與肯定,進一步堅定了我在中國軟件實踐領域不斷創新與探索的勇氣與決心。
目光回到12年前的2003年,在《軟件測試方法和技術》理論書籍章節編寫完成過後,朱少民先生(現任同濟大學軟件學院教授)就和我談到,想和我合作寫一部軟件測試實踐教程,指導全國各大高校師生與軟件公司軟件測試實踐。十多年過去了,這部《軟件測試工程師成長之路——軟件測試方法與實踐指南》已經出版到第3版,並且有Java EE與ASP.NET兩個版本。全國許多高校師生已經使用此書作為教材,用於日常教學與軟件測試實踐中。
通過十多年在軟件業的歷練,我不時地總結與回顧軟件測試工程師到底在做什麼,需要哪些技術。結合言若金葉軟件研究中心十多年在國際與國內軟件市場上豐富的行業經驗,我認為軟件測試工程師核心也是基本的就是做好三件事:
(1) Find Bug,就是尋找軟件缺陷的本領。測試人員需要對軟件缺陷要非常敏感,能夠快速找到軟件缺陷並能準確地彙報缺陷。
(2) Test Case Design,設計優秀的測試用例。這需要測試人員對一個軟件或一個模塊能夠準確把握,嚴密地設計出優秀的測試用例。
(3) Test Tool Usage,測試工具的使用。如何選擇適合項目的測試工具,取決於測試人員對測試工具的敏感程度。在實踐項目中,如有需要,可以對工具進行二次開發與擴展,幫助項目提高質量,快速找到軟件缺陷。雖然現在各種各樣的測試工具非常多,但是隻要多使用,多嘗試,就能找到適合當前項目或應用場景的好工具。
既然軟件測試工程師核心技能在這三個方面,那麼我們應該將這三項技能,限度地展示給即將進入或已經進入軟件測試行列的工程師們。但是,我可以清晰地看到,目前無論是國內還是國際,都沒有一本類似這樣的全程實戰指導教程出版出來。因為這本書涉及面很廣,經典的案例都需要能重現,需要設計出許多站點或應用供讀者演練。如果沒有十多年領域知識的積累和團隊的支持,這本書可能還需數年纔能與讀者見面。
至此,本書的主體結構、讀者定位與主要內容在我胸中快速成型。
本書可以作為:
(1) 全國各大高校軟件測試與質量保證實訓教程
(2) 全國各大軟件公司——軟件測試工程師入職教程
(3) 全國各大軟件培訓機構——軟件測試工程師培訓實戰教程
(4) 想參加國際軟件測試外包或眾包的人員——測試技能提高指導書籍
(5) 想從事軟件測試工作或已經成為軟件測試工程師成員的工作指導書
(6) 軟件開發工程師、軟件項目管理師、繫統架構師——研發高質量軟件參考書
(7) 言若金葉軟件研究中心——軟件工程師認證——測試工程師方向認證指導書籍
(8) 言若金葉軟件研究中心——全國大學生軟件實踐與創新能力大賽——參賽指導書籍