軟件測試之結對測試探討 軟件測試方法
我的入職指導老師,是部門最優秀的測試人員之一,負責測試業務最復雜的模塊,是非常認真、負責的人。因為跟著她學測試,對她自己負責的模塊,我也會去看一下。偶爾會發現,她剛測試完畢打到harvest release階段的包,程序有個小問題。她肯定也意思到了單人測試(Single Testing),測試遺漏很難避免,但是沒有找到更好的辦法解決這個問題?讓一個測試人員去測試另一個測試人員測試過的測試樣品,還是可能測試出問題的。
我身邊的開發人員已經開始研究我的思維和他們有什么不一樣了,我對此賦之一笑。其實,我認為,開發人員和測試人員沒有什么不同,不相信什么開發人員正向思維、測試人員逆向思維之類的話。好比相向而行的人,每個人看對方和自己方向相反,可每個人都在按自己的方向前進。人都是創造性的動物,開發人員創造軟件產品,測試人員創造性的發現軟件中的缺陷。人又是不完美的,開發出來的軟件含有缺陷,測試后的軟件還有測試遺漏呢。當開發人員都在關注結對編程的時候,我們應該關注什么,來解決單人測試帶來的測試遺漏這個問題呢,結對測試行不行?
結對編程(Pair Programming)是一個非常簡單和直觀的概念:兩位程序員坐在同一臺電腦前合作完成同一段代碼。兩個程序員具有相同的缺點和盲點的可能性很小,所以結對編程會獲得一個更優的解決方案。類似的,結對測試(Pair Testing)能不能讓兩個測試人員結對呢?工作經驗、教育經歷、看問題的角度、思維方式的差異肯定能讓我們在測試同一份測試樣品的時候,取長彌短、優勢互補,減少測試遺漏。
如果結對測試,那么我們應該怎么做呢?
兩個測試人員使用同一臺電腦,大家肯定都反對。測試人員數量不足,使用同一臺機器反而降低效率。
但必須做到的很核心的一點,兩個人共同負責同樣模塊的測試,當harvest包打到測試階段的時候,兩個人同時在各自的機器上按自己的想法進行測試,一個測試人員發現問題后必須和另一位測試人員進行有效的交流溝通。兩個人都測試通過后,共同出具測試報告。
結對測試---也未必一定是兩個人,多個測試人員合作共同測試的時候我們就稱之為結隊測試(Mutiple Testing)吧---會帶來什么優勢呢?
測試人員都是很敏感的,在自己執行測試的時候,程序稍有一點反常,都會意識到可能是缺陷,一定會去究根追底,去確認到底是缺陷還是操作問題引起的。當測試人員互相交流發現的缺陷的時候,可能會互相啟發去發現更多的缺陷。一個測試人員發現了一個缺陷,另一位測試人員可能發現和這個缺陷類似的更多缺陷。
幫助測試人員熟悉更多的業務。結對測試前兩個測試人員可能分別熟悉SCM、SRM模塊,結對后就需要都熟悉這兩個模塊了。表面上需要熟悉的業務多了,事實上兩個測試人員測試,比一個人單獨測試要省一半的時間,而且效果更好。對業務的熟悉,可以讓我們更好的執行測試。
避免測試疲勞現象。兩個人搭配進行結對測試,可以共同克服遇到的困難,分享發現缺陷的成就感,工作會變得更加有趣,也會更有效率。
有利于工作量的平均分配。一個測試人員測試一個模塊時,有時候測試任務比較少,有時候測試任務比較多。兩個測試人員測試兩個模塊,這兩個模塊任務都比較多的概率是很小的,當一個模塊測試任務比較多,另一個比較少的時候,這兩位測試任務的工作壓力就沒有結對前那么大了。
文章來源于領測軟件測試網 http://www.kjueaiud.com/