• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 測試手段之探索性測試(4)

    發表于:2012-06-21來源:新浪博客作者:JerryGao點擊數: 標簽:探索性測試
    之前講了些ET在項目時間過程中是如果來管理的,那么ET tester在拿到自己的任務的時候,自己是怎么來進行ET的呢? 這里我們先考慮2個狀態,一個是ET tester的狀態,哪些狀態呢? (1)這個ET tester的測試經驗怎么樣,豐富還是欠缺?

      之前講了些ET在項目時間過程中是如果來管理的,那么ET tester在拿到自己的任務的時候,自己是怎么來進行ET的呢?

      這里我們先考慮2個狀態,一個是ET tester的狀態,哪些狀態呢?

      (1)這個ET tester的測試經驗怎么樣,豐富還是欠缺?

      (2)這個ET tester 對AUT的行業經驗怎么樣,熟悉還是了解?

      (3)這個ET tester對AUT本身的功能需求了解怎么樣,熟悉還是了解?

      不管上面的狀態怎么樣,在壓力下,ET tester采用正確的方法進行ET,往往會取得好的效果的。

      那么我們就來分析下ET的一些思維變化吧:

      首先這個ET tester要非常清楚自己的狀態,也就是自己所擁有的Knowledge,具體包括這些:

      (1) 該產品的知識

      (2) 測試技術相關的知識

      (3) 該產品所在的行業知識

      (4) 基本的計算機基本知識

      為啥要去check這些知識呢?這樣為了方便我們在做ET的時候,能夠快速和有方法的確定發現的問題是否是個Bug。

      國外有很多這方面的總結,怎么去找到這些證據去確定發現的問題是不是個Bug,這些東西就叫Oracle,使用這個方法來找到:the HICCUPPS(F) heuristic:

      (1) History: 目前所做的產品的版本是否與過去的版本是一致的。

      (2) Image:這個產品是否與項目組織所想要的image是一致的。

      (3) Comparable Products:這個產品是否與相類似的產品是一致的。

      (4) Claims:這個產品是否與重要的人所說的那樣是一致的。

      (5) User’s Expectations: 這個產品是否與用戶所想要的是一致的。

      (6) Product:這個產品的每個元素是否與同個產品里面的可比較的元素一致。

      (7) Purpose: 這個產品是否與其目的(明確的或含糊的)一致。

      (8) Statues: 這個產品是否與可適用的法律一致。

      (9) Familiarity: 這個產品與任何通用的問題的形式是不一致的。

      盡管我們有很多方式去壯大我們的oracles,但這需要很多成本的,所以我們在做ET 過程中,會遇到:

      (1)沒有oracle可以使我們提前確定這肯定是個正確或錯誤的結果。

      (2)沒有一個單獨的oracle可以說明某個功能在所有時間或所有情況下都是正確工作的。

      (3)有些功能看上去是正常工作的,但事實上在某些情況下會失敗而且會使得所有的oracles都是不對的。

      可以看到我們在積累我們的oracles時,肯定會遇到很多oracle問題,我們該如何來解決呢?

      (1)忽略這個問題(也許這個信息的價值從成本角度考慮不值得)

      (2)簡單化這個問題(需要可測試性,從需求源頭開始)

      (3)轉移這個問題(并列測試,從類似問題下手)

      這里面很多人都可以看到那就是我們怎么去做測試,怎么快速的產出test idea。

      ET的特點是我們做測試的時候,沒有測試用例指導,學習SUT,和測試設計和測試執行在同一段時間內完成。那怎么去做測試執行呢?我們拿到開發提交的系統后,Lead分配給我們的任務后,該從哪里下手呢?

      ET大師James Bach說過,執行ET就像對一個人進行面試一樣,那這樣就少不了要問問題,該怎么問問題?通過面試者的回答怎樣快速提出更好的問題?顯然這里面也需要一定的能力,包括如下:

      (1)提出有用的問題

      (2)觀察什么事情在發生

      (3)描述自己能夠感覺到的東西

      (4)對于自己的所知進行批判性的思考

      (5)組織和管理業務上的規則

      (6)能夠設計假設和進行試驗

      (7)盡管已經知道了仍然進行思考

      (8)分析其他人的思考方式

      (9)根據因果關系進行推導

      好了,現在ET tester都對自己的knowledge有所了解了,接下來就是對于自己的任務,哪個UC,哪個模塊進行分析了,怎么分析,分析啥呢?

      (1)風險

      (2)覆蓋率

      (3)Oracles

      (4)資源或限制

      (5)價值或成本

      (6)Bugs

      這些分析都做好了,那我們就可以開始進行測試了,也就是對我們的SUT進行試驗,就像“question<—>answer”的循環一樣。

      那我們是怎么來進行試驗的,具體包括如下幾個過程:

      (1)配置

      —安裝產品

      —為測試執行準備測試數據和工具

      —確認產品是個足夠干凈的起始狀態

      —根據自己的任務準備一個有激發性的問題

      (2)操作

      —通過問題對產品進行試探性的輸入來使用這個產品

      —使用正確的數據和正確的業務順序來完成正確功能的練習

      (3)觀察

      —收集關于這個產品是如何工作(正確或錯誤的輸入)的信息來評價產品是否如此工作

      (4)評估

      —應用之前得到的oracles來發現bugs

      之前也說過了,我們的ET是學習和測試設計和測試執行是同一時間完成的,那么我們的測試就是Testing to learn。這邊有幾個步驟:

      (1)形成一個關于產品功能的模型

      (2)去了解這個產品是想實現什么樣的功能

      (3)列出那些你需要測試的產品的因素

      (4)查看那些一致性的關系且嘗試多個不一樣的oracle

      (5)產生測試數據

      (6)考慮其可測試性和嘗試不同的有用的工具

      (7)嘗試多種不同的方法去試驗

      (8)報告你所發現的bug

      ET tester在試驗的過程中,如果遇到比較困惑的問題該怎么呢?

      (1)簡化自己的測試用例

      (2)保存當時的狀態

      (3)不斷重復執行自己的action

      (4)返回到一個已確認過的狀態

      (5)優先使用OFAT方式(一次只考慮一個因素)

      (6)做出精確的觀察

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>