測試建模:功能列表(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的圖片功能,測試人員可以建立如下功能列表:

Picture1

Clipboard01

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

 

功能列表的形式

我習慣用符號列表(bulleted list)制作功能列表,因為符號列表被大量的文檔編輯器和文檔格式所支持,能夠快速地編輯、修改和發布。

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

 

功能列表與漫游測試

漫游測試(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文檔,它包含各種圖片和相關元素,為今后的回歸測試提供了良好的素材。

 

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM