軟件測試員的思考問題方式[3] 軟件測試
從來也沒有研究過這些問題的很多人也能測試得很好,但是如果要做得比很好還好,就要研究這些問題。研究認知心理學有助于理解影響測試員工作成績的因素,以及影響人們解釋自己工作方式的因素。
開始研究認知心理學,不能不看《曠野中的認知》(Cognition in the wild)(Hutchins 1995)。Hutchins研究海軍航海團隊,以及他們怎樣協同工作。這本書的很多內容也都與軟件項目和測試團隊有關。
有關思考心理學的一本有用的書是《理論與證據:科學推理的能力的開發》
(Theory and Evidence:The Development of Scientific Reasoning)(Koslowski 1996)。在這本書中,Koslowski研究了人們如何使用因果關系理論進行系統推理。這可以解釋為什么測試不只是查看外部行為,并對照簡單的預期描述進行檢查。
經驗4,測試在測試員的頭腦中
優秀測試和平庸測試之間的差別在于測試員如何思考:測試員的測試設計選擇,解釋所觀察到的現象的能力,以及非常令人信服地分析描述這些現象的能力。測試的其他工作大部分是一般的辦公室工作。如果看到兩個測試員并排工作,不一定能看出誰的測試更好。他們工作中能夠看得到的部分外表相同,這說明:
·很多人認為測試很容易,因為可以很容易地模仿優秀測試員的外表看得到的行為,并且他們沒有好的測試的其他標準。
·如果要成為優秀測試員,就要學會像優秀測試員那樣思考,而不是模仿他們的行為。
經驗20,測試需要推斷,并不只是做輸出與預期結果的比較
流行的觀點認為,測試員只是執行測試用例,并對照預期結果比較執行結果。這種觀點把測試看作是簡單的比較活動,沒有看到一些聰明人必須設計測試,并確定預期輸出。想想看,測試設計人員幾乎從來沒有得到過應該測試什么的權威指導,更不要說應該期望什么了??梢缘玫降闹笇且忉尩闹黧w。在現實生活中,大多數測試設計都是基于推斷,或基于與測試員的推斷有關的經驗。不僅如此,這些推斷還要隨時間發生變化。像測試員那樣思考,就是要掌握探索式推斷的藝術。
探索式推斷聽起來可能像是奇怪的想法,這意味著要以一種不能事先預測的方式,通過一種思想引出另一種思想,然后再引出下一種思想。有關探索式推斷的一本很好的書是《證明與反駁:數學發現的邏輯》(Proofs and Refutations:The Logic of Mathematical Discovery)(Lakatos,1976)。關于這本書需要注意的是,Lakatos如何說明數學和科學推理過程是探索式的,而不是腳本化的。甚至數學家也是積極探索地推理,而不是通過運用枯燥的公式。他們像測試員那樣思考!
經驗5,優秀測試員會進行技術性、創造性、批判性和實用性地思考
各種類型的思考都要考慮測試的實施。但是我們認為需要提出四種主要思考:
·技術性思考。對技術建模并理解因果關系的能力。這包括諸如相關技術事實的知識和使用工具并預測系統行為的能力。
原文轉自:http://www.anti-gravitydesign.com