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

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

  • <strong id="5koa6"></strong>
  • DirectFB壓力測試工具[1]

    發表于:2010-02-20來源:作者:點擊數: 標簽:工具DirectFB壓力
    DirectFB壓力 測試工具 [1] 壓力測試 GUI應用程序 自動測試 一直是個難題,通常的做法就是先把人工 測試過程 錄制下來,然后去重放這個測試過程。這種方法的主要缺點是很難自動檢測運行結果的正確性,所以很多人都不屑去使用它。其實工具總是有它的局限性,

      DirectFB壓力測試工具[1]   壓力測試

      GUI應用程序自動測試一直是個難題,通常的做法就是先把人工測試過程錄制下來,然后去重放這個測試過程。這種方法的主要缺點是很難自動檢測運行結果的正確性,所以很多人都不屑去使用它。其實工具總是有它的局限性,它能不能發揮它應有的作用,還依賴于人的靈活運用。即不能過分依賴于工具,也不能盲目排斥工具。

      在質量保證的過程中,人無疑是最重要的,沒有什么比一次性寫出高質量代碼就有效的了。但事實是即使有良好的架構設計,輔之于單元測試和代碼評審等一些有效實踐,仍然有些BUG成為漏網之魚,更何況很多團隊這些工作做得并到位。單一工具和方法很難包醫百病,但各種方法和工具綜合起來使用的效果就大不一樣了。

      前段時間一位同事開發了一個GUI自動測試工具,我們把它用于BUG重現和壓力測試中,取得了不錯的效果。這里介紹一下DirectFB里面事件錄制和重放的方法:

      獲得鍵盤設備:

      dfb_input_enumerate_devices ((InputDeviceCallback)device_callback,

      &context->keyboard_device, DICAPS_KEYS);

      獲得鼠標或觸摸屏設備:

      dfb_input_enumerate_devices ((InputDeviceCallback)device_callback,

      &context->mouse_device, DICAPS_AXES | DICAPS_BUTTONS);

      向設備注冊事件監聽函數:

      dfb_input_attach (context->mouse_device,

      input_device_listener, context, &context->mouse_reaction);   軟件測試 

         dfb_input_attach (context->keyboard_device,

      input_device_listener, context, &context->keyboard_reaction);

      事件監聽函數:

      static ReactionResult input_device_listener (const void *msg_data, void *ctx)

      ...{

      DFBContext *context = (DFBContext*)ctx;

      DFBInputEvent *event = (DFBInputEvent*)msg_data;

      event->locks = 0;

      event->flags &= ~DIEF_LOCKS;

      if (fwrite (msg_data, sizeof (DFBInputEvent), 1, context->file) != 1)

      ...{

      printf ("[%s]: fwrite Error errno = %d ", __func__, errno);

      g_main_loop_quit (context->loop);

      }

      fflush(context->file);

      return RS_OK;

      }

    原文轉自: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>