본문 바로가기

Test

테스터가 바라본 크롬(Chrome)

크롬에 대한 평가는 많은 블로거들이 해 주셨다. 그러나 그 기능의 대단함도 있지만 이것을 어떻게 개발하고 테스트를 하는가를 보면 더 대단하다는 것이 느껴진다.
테스팅업무를 하고 있으니 테스터 관점에서 크롬을 바라보면 대단하다고 할 수 밖에 없다.(그래도 버그가 많은 건 어쩔 수 없다.ㅡ,.ㅡ; 그 과정을 보자..)

구글 개발자 센터에서 살펴보면 모두 다 자동화 되어 있고, Unit Test Case도 각 각 다 있다.
Performance Test나 UI Test등에도 많은 신경을 썼다. 몇 가지는 좋은 아이디어를 얻을 수 있었다.

현재 진행하고 있는 테스트 항목은 아래와 같다.
  • automated_ui_tests
  • base_unittests - Test the base module
  • installer_unittests - Test the Chromium installer
  • interactive_ui_tests - Tests some of the interactive UI elements, such as the find-in-page feature and tab dragging.
  • ipc_tests - Tests the IPC subsystem for communication between browser, renderer, and plugin processes.
  • mini_installer_test - Tests the mini installer.
  • net_perftests - Performance tests for the disk cache and cookie storage.
  • net_unittests - Tests the network module.
  • npapi_layout_test_plugin - A NPAPI plugin used with the layout tests.
  • npapi_test_plugin - A NPAPI plugin used with the plugin_tests and ui_tests.
  • perf_tests - Tests performance for some submodules - JSON, Safe Browsing, URL parsing, etc.
  • plugin_tests - Tests the plugin subsystem.
  • reliability_tests - Tests to verify Chromium recovery after hanging or crashing of renderers.
  • security_tests - A set of security tests for Chromium.
  • selenium_tests - A driver for running selenium tests.
  • startup_tests - Test startup performance of Chromium.
  • tab_switching_test - Test tab switching functionality.
  • test_chrome_plugin
  • test_shell - Test Shell is a standalone application for running the renderer (WebKit).
  • test_shell_tests - A collection of tests within the Test Shell.
  • ui_tests - The kitchen sink for UI tests. UI tests are tests which launch Chromium and control it through Automation.
  • unit_tests - The kitchen sink for unit tests. These tests cover several modules within Chromium.
시간 날 때마다 하나의 항목씩 살펴보고 글을 포스팅 하고자 한다.

  • Unit Test는 GTest 를 사용한다.
    : 역시 xUnit Test Framework는 자신의 시스템(입맛)에 맞게 직접 만들어 사용하는게 최고다. (Google에서는 Test Harness라고 한다. 사실 harness가 맞다. Test Framework에 대한 이야기는 다음에 다시 한 번 해 보자)
  • UI Test를 위해서는 자체 제작한 Tool을 사용한다고 한다.
    : 아래 image diff가 있는 것을 보면 Capture & Playback 을 사용하는 듯 하다. 
  • Image를 비교하기 위하여 bitmap 비교하는 툴을 사용한다고 한다.
    : Test 자동화에서 이미지 비교는 한계가 있다. 어떻게 사용하는지 좀 더 깊게 살펴봐야겠다. 

  • 이슈 관리는 자체 시스템을 사용하고 있다. (이게 Google Code에 있는 건가? ^^)
    : 필요 항목만 간략하게 구성해 놓았다. 현재 Open된 이슈만 1192개 이다.

  • Tester Section을 따로 가지고 있다.
    : 버그 리포트 가이드 라인, 테스트 플랜, 그 외 관련 문서들이 정리되어 있고 업데이트 되어 있다.
구글 크롬 기능에 대해서 많은 찬사가 있었다. 그러나 내가 이때까지 본 오픈소스 중에서 가장 체계적인 테스트와 툴과 문서가 있는 프로젝트이다. 조금 더 깊게 살펴볼 필요가 있어서 연속된 포스팅으로 이어질 것 같다. 테스트도 잘하는 구글... 최고다.. 근데 버그가 많은 건 어쩔 수 없다. ㅎㅎ