天天看點

測試模組化:功能清單(Function List)

功能清單(Function                           List)是一種功能測試(Function Testing)的模組化方法,在啟發式測試政策模型(Heuristic                           Test Strategy Model)中位于 HTSM -> Product Elements                            –> Function 分支中。雖然它隻覆寫了很小的測試領域,不适合作為主要的測試方法,但是仍不失為一種有啟發、有幫助的測試模組化技術。本文将簡介功能清單及其應用。

什麼是功能清單?

Cem Kaner在Black Box Software Testing                            中将功能清單定義為:程式功能的大綱( an outline of the                           program's capabilities)。對于PowerPoint的圖檔功能,測試人員可以建立如下功能清單:

測試模組化:功能清單(Function List)
測試模組化:功能清單(Function List)

限于篇幅,該功能清單隻列出了PowerPoint圖檔的部分功能(真實的測試需要更詳細的功能清單),但是它很好的展現了功能清單的特點。第一,它列出了圖檔的主要功能:輸入、操作、應用、輸出、列印和檔案讀寫,使得測試人員能夠在整體上把握被測領域。第二,它的層次結構提供了可擴充的架構,測試人員可以持續地補充細節:具體的功能和針對該功能的測試想法。第三,它為功能覆寫提供了覆寫目标,為制定測試計劃提供了有益的資訊。第四,功能清單可以包含一些助記符(如标簽)和連結。作為大綱,它可以指向更多的資料;作為測試觸發器(trigger),它可以啟發測試思路。

功能清單的形式

我習慣用符号清單(bulleted list)制作功能清單,因為符号清單被大量的文檔編輯器和文檔格式所支援,能夠快速地編輯、修改和釋出。

此外,許多測試人員喜歡用思維導圖(Mind Map)記錄功能清單、測試設計和測試計劃,也獲得了很好的效果。下圖是思維導圖形式的功能清單。                         

測試模組化:功能清單(Function List)

功能清單與漫遊測試

漫遊測試(Tour Testing)是一組以漫遊隐喻為核心的測試方法。在應用漫遊測試時,測試人員常常會遊曆被測産品的結構、功能或資料,在此期間運用他的技能和經驗去發掘産品的缺陷。

功能清單為功能漫遊(Feature Tour)提供了有益的資訊。它像一幅地圖,既描繪了産品的概況,又提供了必要的細節,為探索者提供了指南與參考。測試人員可以漫遊功能清單上的所有元素,以實施全面探索;也可以選擇周遊某個功能子集,以實施專項測試。

在測試之初,測試人員對被測産品尚不了解,他可以通過功能漫遊來建立功能清單。從這個角度,漫遊的過程就是測試模組化的過程,功能清單就是漫遊測試的産出。Cem                           Kaner建議,在軟體尚不成熟時,測試人員應該同情地測試(test sympathetically)。此時,測試的目的不是發現所有缺陷,而是送出重大問題,發現風險區域,建立測試模型,為今後的測試奠定基礎。對此,測試專家Michael                           Bolton有一番精彩的論述:

同情的測試非常重要,雖然一些測試人員會發現它的反面(全力尋找缺陷)難以拒絕。Jon                           Bach(測試專家,其兄弟James Bach也是測試專家)指出在探索式測試的早期,他通過測試來發現産品的優點(benefits)。我覺得這很奇怪,直到他指出尋找并記錄缺陷使得他不能專注地漫遊産品并建構産品的模型。

測試人員需要建立産品的大局觀,同時掌握産品的優點、缺點、概念模型和實作邏輯。漫遊測試是很好的學習過程,功能清單是一個有益的學習成果。

用功能清單啟發測試設計

在測試設計時,測試人員可以将功能清單視作覆寫率指南。他逐個檢查每個功能,閱讀相關的測試想法,進而設計測試政策。在此過程,他可以自問:

  • 該功能與目前測試任務相關嗎?
  • 該功能存在什麼風險?可能會有什麼缺陷?
  • 通過什麼測試可以發現這些缺陷?
  • 在上次測試中,該功能表現如何?已有的測試想法,哪些值得再次嘗試?哪些不必再測?
  • 依據目前的進度和資源,如何實施這些測試?
  • 功能清單是否充分?有沒有漏掉一些功能?

另一種更有威力的方法是綜合功能清單中的多個元素,開發測試政策,以測試它們的互動和影響。随着産品逐漸成熟,隐蔽的缺陷往往存在于功能的組合,暴露于複雜的流程。這要求測試人員綜合多方面的資訊,來更深入、更多樣地測試系統。當測試人員考慮功能的組合時,他可以自問:

  • 該功能與哪些功能相關?
  • 功能的組合有沒有揭示出新的風險?可能會有什麼缺陷?
  • 哪些功能通路同一批資料?哪些是生産者?哪些是消費者?
  • 如何設計測試,以同時測試這些功能?
  • 如何構造一個(有意義的)業務流程,它能夠通路盡可能多的功能與資料?
  • 對于互相依賴的功能,某個功能的失敗是否對其他功能造成惡劣影響?

在回歸測試時,功能清單是很好的參考。例如,測試人員可以按如下測試政策對PowerPoint的圖檔功能進行回歸測試。

1.建立一個PowerPoint文檔

2.向文檔中插入圖檔

1.覆寫所有支援的圖檔格式

2.覆寫典型的圖檔尺寸

3.覆寫來自單反相機的大型圖檔(該條目顯示随着硬體的發展,測試政策也需要變化)

3.操作文檔中的圖檔

1.覆寫Picture Tools下的所有指令

2.一些圖檔隻被一個指令修改

3.一些圖檔被多個指令修改

4.一些圖檔不被修改

4.應用文檔中的圖檔

1.将圖檔與其他元素組合使用

2.覆寫文本框、形狀、SmartArt、圖表等

5.将文檔中的元素另存為圖檔

1.覆寫所有可以被輸出的元素:圖檔、形狀、SmartArt、圖表等

2.覆寫所有支援的圖檔格式

6.列印該文檔

1.列印到(黑白和彩色)列印機

2.列印到PDF文檔

3.列印到XPS文檔

7.另存該文檔并重新打開

1.另存為所有支援的格式

2.用PowerPoint打開生成的文檔

3.用舊版本PowerPoint打開生成的文檔

利用該測試政策,測試人員可以用一個很長的流程覆寫大多數的圖檔功能,不但可以測試圖檔功能的組合,還可以順便測試程式的穩定性和資源占用。測試結束時,測試人員可以獲得一個大型的PowerPoint文檔,它包含各種圖檔和相關元素,為今後的回歸測試提供了良好的素材。

參考資料

Cem Kaner: Black Box Software Testing                            (第48~56頁)

Darren McMillan: Mind Map 101

Michael Bolton: Of Testing Tours and                           Dashboards

轉載于:https://www.cnblogs.com/aliceliu626/p/4813870.html