i. 早期的軟體行業發展類似於尋找處女地,例如殺毒軟體一個都沒有,那你可以作一個。翻譯軟體一個都沒有,你可以作一個,但是當市場漸漸的飽和,沒有一個類型的軟體同時有好幾家都在競爭的時候,那拼的是軟體的品質與軟體的市場需求。而軟體的品質則恰恰就是需要通過軟體測試才能提高的部分;
ii. 由於現在市場上面的軟體是由許多不同的語言說編寫的,主流例如用.net編寫的,用JAVA編寫的,所以軟體測試工程師的總需求量應該是.net java所有語言開發人員的總量。足以說明測試人員需求量的巨大;
iii. 由於低水平的測試人員入門門開很低,所以數量相對也多。而中進階的測試人員需要有紮實的電腦知識的基礎,甚至於開發能力,所以現在人員缺口較大;
iv. 由於每個公司的具體情況不同,如果採用通用的測試流程,則效率和損失都是最大的。所以一般都會尋找適合自己的方式,然後選擇適合的解決方案以及測試載入器來進行測試;
v. 現在最理想以及最規範的測試流程:
1. 當得到客戶詳細需求分析後,在開發人員還未真正寫代碼之前,就可以開始寫單元測試指令碼來驗證還未寫的代碼的正確性;
2. 然後每天拿到單元測試通過的可編譯版本軟體來進行煙霧測試 (Smoke Test);
3. 然後進行整合測試,它可能有測試人員來做,也可以由開發人員來做,類似於灰盒測試;
4. 整合測試主要進行介面測試,對那些使用率比較高的核心模組進行測試;
5. 整合測試一般會根據具體要求,選擇各種不同的適合的測試載入器;
6. 整合測試完成後,會進行系統測試。而系統測試需要需求規格說明書,但是比較遺憾的是一般國內企業需求規格說明書真正做的好的基本都沒。所以在這種情況下,比較可行的辦法是看軟體本身;
vi. IBM的Rational測試理念:
1. 知識域:包含功能測試、效能測試、運行時分析(其實並不能真正的稱為測試,因為運行結果並沒有對與錯,只是程式內部的一些運行資訊,可以對後期的開發進行參考);
2. 流程:分配給相關的人員用相關的知識域內的技能來進行測試;
vii. 對於測試這部分,一般公司拿到項目後,會對整個測試流程進行部署,然後選擇各種解決方案,最後各個進行實施;
viii. 測試載入器的選擇面很廣,例如Mercury等等,都有一套完整的包含測試各個階段所使用的工具;
ix. IBM的Rational最新的開發理念為:要把整合和整合的思路放在開發工具裡面。如果程式員開發軟體,以及測試軟體需要兩個不同的軟體,那效率以及使用方便性方面肯定沒有放在一個軟體裡面強。所以會做很多測試外掛程式在開發工具中;
x. 對於軟體測試的未來可以發展成高度自動化測試,既不用寫基礎代碼,也就不需要基礎測試了,當然基本我活著還沒戲;
xi. 由於現在測試載入器主要是由錄製回放加指令碼驅動組成,所以主要還是解決了測試人員的工作量,並不是真正自動化的測試;
xii. 有這樣一種測試理念:由於開發人員一般都會在開發的時候進行一些測試,所以可以讓開發人員來寫測試指令碼,這樣效率更高。但是相應的如果是項目開發就會顯得比較困難,因為在真正交付後,有些部分可能一直要變;
xiii. 對開發測試人員的形象比喻為:開發人員是打靶的,有明確的目標。二測試人員是撈魚的,範圍比目標重要;
xiv. 進階測試人員的能力主要是經驗,所以工具是無法替代的;