在軟件測試過程中,每個項目一般由多名測試工程師組成,分別負責不同模塊的測試。對同一個模塊進行多輪測試,測試人員對手中的模塊無論從整體到細節都有了非常深刻的掌握,但同時存在的定向思維,測試疲態也影響了bug的發現。這種測試模式不但影響了產品的最終質量,同時測試人員對產品整個邏輯和功能的了解也受到了限制。
鑒于上述問題,在測試的過程中引入交叉測試是非常有必要的。所謂交叉測試,是指在測試的某一階段,測試人員相互交換測試的模塊,這樣不但可以使不同的測試人員保持測試的新鮮感,還可以進一步發掘測試的未知領域,發現交叉測試的模塊和之前測試的模塊間的聯系,甚至可以構建更多的測試場景,對提高產品的質量也起到了很大幫助。
那么,交叉測試在什么時候引入比較合適呢。第一輪測試是每個測試人員和對應功能模塊的第一次接觸,有很強的新鮮感,在對模塊的初步了解后可以快速發現較多bug,但是對功能模塊邏輯的不熟悉,導致測試時間比較緊張,所以一般不采用交叉測試。在經過第一輪測試后,一般的bug都會被揪出來,功能漸漸趨于穩定,產品逐漸定型,但是可能會存在一些bug,由于受到測試慣性的影響,在眼前也可能發現不了,引入交叉測試可以集中精力和時間發現一些遺漏的bug,同時發現和之前測試模塊之間的聯系,構建新場景,所以在第二輪測試中引入交叉測試比較合適。由于第二輪測試交換了測試模塊,在時間的預估上,第一輪測試的時間和第二輪交叉測試的時間是相當的。
交叉測試也會碰到一些問題,如看不懂對方寫的測試用例,當然這不一定是測試用例寫的不好,也有可能是對功能邏輯的不了解,對測試環境的不熟悉。解決辦法可以在每個模塊測試用例的前面增加“測試須知”,里面包含了該模塊的客戶端邏輯,和服務端的交互邏輯、測試環境的配置和需要注意的事項等等,寫得越詳細越好,這樣在對方測試前先有個大概了解,可以節省很多溝通時間;另外,在交叉測試的過程中,可能會出現bug重復提交的問題,一種解決辦法是提交bug前問一下第一輪測試的同學有沒有提交過。另一種是先提交,如果重復,在bug庫中置duplicate,當然這浪費了提bug的時間,一般不建議這么做。