測試是嚴謹的、技術性的,持此觀點的大部分是學院派的,并且擁有很多支持者。認為測試是計算機科學和數學的分支。
•Standard School 標準派
測試是用來度量進度的,強調成本和可重復的標準。認為測試是一個嚴格管理的過程。
•Quality School 質量派
強調過程、監督開發人員,像守門員一樣把關。認為測試是軟件質量保證的分支。
•Context-Driven School 上下文驅動派
強調人的作用,尋找利益相關方關注的bug。認為測試是開發的分支。
•Agile School 敏捷派
用測試來證明開發已經完成;強調自動化測試。認為測試是用戶角色的一部分。
各種派系的發展過程
分析派作為學院派,是各派系的祖先,它直接衍生了標準派出來,從標準派后就百花齊放了,質量派、上下文驅動派和敏捷派都是在標準派后產生的。
上下文驅動派的核心信仰
•軟件是由人創造的,人決定了上下文。
•測試能找到很多bug。Bug就是那些會找我們的利益相關方麻煩的問題
•測試為項目提供信息
•測試是富含技巧的智力活動
•測試是交叉學科,包含各種學問
核心問題:什么樣的測試才是目前能提供的最有價值的測試?
上下文驅動測試方法與探索性測試方法(Exploratory Testing)的關系
探索性測試是上下文驅動測試的典范,因為探索性測試強調的就是測試設計和測試執行的同時進行、快速的學習,與上下問驅動強調的因時制宜的觀點不謀而合。
上下文驅動派
•內涵
-期待變化;跍y試結果來調整測試計劃。
-測試策略的有效性只有通過實際調查才能確定。
-測試調查需要經驗性的和心理學上的研究。
-專注于實踐性的技能、技巧
•最突出的應用方面
-商業軟件、市場驅動的軟件
•研究機構
-LAWST Workshops & Spin-offs
什么是上下文驅動測試?
上下文驅動測試七大基本原則:
•任何實踐活動的價值依賴于它所處的上下文。
•在某個上下文中,只有好的實踐,沒有最佳實踐。
•在一起工作的人才是項目的最重要主成部分。
•隨著時間的推移,項目呈現出難以預料的結果。
•產品是問題的解決方案,如果問題沒有得到解決,產品是無效的。
•好的軟件測試時一個富有挑戰性的智力過程。
•只有在項目的整個過程中通過判斷和技巧,訓練有素的協作,我們才能在正確的時間做正確的事情,以便有效地測試我們的產品。
不能意識到上下文存在的測試不能叫上下文驅動測試。不能基于上下文對測試進行調整的不能叫上下文驅動測試。
上下文驅動測試不是漫不經心者的借口。
上下文驅動測試的思想是如何形成的?
“我一直就是這樣做測試的!”
持有一定的測試理論和技巧,并且在某些項目上一直遵循和使用這些方法。
“我不確定在這個項目中是否適用!”
在Context Aware階段,意識到項目的上下文不一樣了。
“我要做一些調整”
在Context Based階段,意識到需要調查和嘗試才能確定采用怎樣的測試策略。[Page]
“哈哈,我想這種方法在這個項目中可能會奏效”
在Context Driven階段,根據上下文確定測試策略。
如何成為上下文驅動派?
•需要更加關注上下文
•多問問題,不同類型的問題(怎樣?是什么?)
•跟項目組成員一起更加緊密地工作,但是要保持獨立思考
•成為項目產品的顧問,而不是推銷員
•成為一名更加有效率的測試員
•少一點墨守成規
上下文都有哪些?
一個系統不是一個簡單的集合,而是各項東西的有機結合體。需求、目標、角色、文檔、時間進度、成本預算、人員配置可能會影響到測試采用的工具、方法等,這些都是測試的上下文。上下文通常難以辨別,這需要測試員應該經常觀察、關注并參與到現實世界,從而獲取測試所涉及的上下文。
上下文驅動測試的實際做法
基于了解到的項目的上下文,用以前的一些測試經驗和測試的做法嘗試,看是否適合,測試過程中不斷反饋,看測試是否有效,同時不斷觀察,關注上下文是否隨著時間改變,上下文的改變將驅動測試方法和實踐的加入,不斷分析、嘗試、應用、反饋。這就是上下文驅動測試。
如何辨別上下文?
通過問以下問題將幫助你識別上下文:
•我們準備要做的是什么?
•我們實際上正在做什么?
•我們做的東西是為誰而做的?
•為什么要做?做這些事情我們將獲得什么?
•我們的目標是什么?
•我們有其他的替代做法嗎?
•如果我們用其他方式做會怎樣?
采用上下文驅動測試方法的測試員會…?
他們通常會說:“這要具體看是什么樣的情形…”。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/