首先說說什麼是軟件測試,爲什麼要進行軟件測試。ide
軟件測試就是在有限的項目週期內進行軟件測試活動,儘量和有效的發現軟件存在的問題,並幫助開發人員解決這些問題,保證產品質量。性能
軟件測試流程首先是設計測試用例,而後制定測試計劃,組織測試人員執行測試用例,發現問題後開bug,在開發人員fix bug後,測試人員在去verify bugs,最後在產品release前,生成測試報告。測試
咱們follow這樣的流程,是由於流程都是前人從不少經驗中總結的出的想法,正確的流程能夠幫助咱們更高效的組織工做,解決問題。雖然是相同的流程,但如何組織人員開展工做,卻大不相同了。好比設計測試用例,。爲何要設計測試用例,,對着文檔測試不就能夠了嗎?測試用例很是重要,這是我到WR作測試工做時,學到的第一課。開始不甚理解,但隨着工做的深刻,慢慢理解到第一,測試用例能夠更清晰的描述產品的feature,當咱們制定一個測試計劃的時候,選擇哪些測試用例,就能夠知道此次測試活動咱們測試了產品的哪些功能。第二,測試用例能夠幫助咱們衡量工做量,跟蹤項目的進度,有效地進行工做時間的分配。第三,t測試用例能夠更好的反應咱們的test point,當咱們分析一個feature的時候,應該全方面的去想哪些地方須要測試,包括正面測試,負面測試 , 性能測試,兼容性測試等等。測試用例的優先級也是很是重要的。在WR的時候,都會針對一個bug的scenario來設計測試用例。設計測試用例毫不是對着文檔copy/paste,這是一個思考的過程,體現了對產品的理解,軟件的基礎知識,測試經驗和技巧。在WR時,當和經驗豐富的測試人員(如manager)一塊兒討論新feature的測試用例時,我常常會在內心感嘆「呀,原來能夠這樣測」或者「對,也要從這方面測一下」,對他們的經驗和知識很是欽佩,也從中學到了不少。spa
再說制定測試計劃。我參與的WR產品須要在多個版本的多個平臺上進行測試,真的很是具備挑戰性。項目的週期是固定的,如何在有限的時間內更多的保證產品的質量?第一,針對產品新支持的平臺多測試,由於這部分代碼改動的最多。第二,對其餘版本或平臺的Regression test,選擇最重要的feature(一般是優先級高的測試用例)進行測試。第三,對可能會有潛在的客戶使用的版本或平臺測試。當咱們的測試計劃作出來的時候,就十分清楚大概須要多少工時完成此次測試。咱們測了哪些東西,以及風險就都清楚了。設計
而後就是bug的管理了。WR對於bug的管理是十分清晰的,當一個bug被提交時,會給開發的manager發郵件,狀態是new。開發的manager負責更新bug的狀態,分配給開發去fix。這也要求測試人員建立的defect質量很高,要把步驟,優先級,測試環境,錯誤信息,固然包括log和截屏。優秀的測試人員甚至會告訴開發,他認爲多是那一部分code的問題。由於開發在fix bug時,極可能要去重現問題。固然若是問題很簡單,開發從defect的信息中就知道是哪部分code的問題,他就直接改了。當defect被fix後,狀態變爲fix。defects在某個平臺對應的fix number會變爲integrated時,測試就能夠去verify bug了。問題解決了,要把fix標爲pass,沒有解決,標爲fail並rework。這樣defect的流程又會從新開始,直到bug被fix掉。code