ICST2017メモ

ICST2017に参加して、会社のBlogには以下の通り少し書いたのだけれどGistに残したメモをGistのままにしておくのはもったいなかったのでメモがてら。

techlife.cookpad.com/entry/2017/04/04/180000

Google

backend

4.2Mのテストコードが実行される
2年間、テスト結果は保持しておく

関係しているテストを見つける

Life of test execution

regression test selection => scheduler => build enqueuer => build queue
=> Massively parallel test backend => build failure retrier => build enqueuer ….
=> test results(マインスイーパのような形でgreen/redを表現)

Analysis of test results at Google

  • 84% of transition from Pass -> Fail are from “Flaky” tests
  • only 1.23% of tests ever found a breakage
  • 3 or mote developers changes a file is more likely to cause a breakage

Flaky tests

  • Almost 16% of our 4.2M tests have some some level of flakiness

Gmail

  • flaky tests lead…
    • delay project release
    • consume developer time investigating
    • waste compute resources re=running to confirm

sources of flakiness

  • Test case factors
    • sleep()
    • UI tests
    • and something…
  • Code
  • execution

flakes are inevitable

  • continual rate of 1.5% of test executions reporting a flakiness

  • conclution

Flaky test infrastructure

  • re-run failure transitions(10x) to verify flakiness
    • 確認する

Internal build system

  • Bazel internal version
    • OSS bazel is removed

最後は、academiaに向けて、の話だった


How to Test in Sixteen Languages? Automation Support for Localization Testing

  • plant系の人

  • I18N

    • 1 time(development phase)
  • L10N

    • 16 times(for each language)

L10N

  1. Extracting all texts from resource files
  2. Translation by translation service
  3. Adjust keyboard shortcuts
  4. Include required fonts
  5. Generate resource files
  6. Perform localization Testing
    • repetitive manual testing by test team and/or local exparts
    • これ系のテストは往々にしてリリースを遅らせたりする。手動だしね。

automated support for localization testing

test script => traversing GUI => Ripping GUI => analysis Rip-Data => generate report => report

traversing GUI

What is the “test”?

Ripping

  • approach
    • take screenshots
  • observations
    • 何を要素として取るか?
    • large amount of hidden elements

analysis Rip-Data => generate report => report

  • side by side comparison of screenshots
  • list of GUI elements with extracted information <= これ、モバイルアプリに対してできるかな。
    • Webだとtext要素のここは…という感じ
    • mobileだと、例えばAppiumの page で取得される要素を参考に何かできるかな

detected localization issues

  • ローカライズされていないテキストをハイライトする
  • Layout issueも

future work

  • performing OCR for extracting texts from screens not reliable
  • find scaling problems on high resolution (2k-4k) monitors

Model-Based Testing IoT Communication via Active Automata Learning

Model-based API Testing of Apache ZooKeeper

http://fmv.jku.at/modbat/ とApache ZooKeeperを使っている

モデルとして、複数の状態を定義(API)し、それに対してテストを実行する。
既存のJUnitベースのApache ZooKeeperのテストコードと比較している。

synchronous, asynchronousの両方を考えている、と。

System Testing of Timing Requirements based on Use Cases and Timed Automata

http://dl.acm.org/citation.cfm?id=2803187&dl=ACM&coll=DL&CFID=911367600&CFTOKEN=38222553

User scenarios + Domain mode + data => Test Cases

Security

Coveringcerts: Combinatorial Methods for X.509 Certificate Testing

Mining Sandboxes for Linux Containers


2日目

Model based

Crowling-based web app testing

mobile


3日目

search based testing

  • Goal
    • a high likelihood of fault injection
  • The Fitness Function for the Job: Search-Based Generation of Test Suites that Detect Real Faults
    Gregory Gay.

    • web屋さんの発表ぽい
  • 学習させ、精製したテストがどれだけの類似faultを見つけることに役立つか
    • より効率的な(少ないテストケース数で高いカバレッジを取得する、とか)

XML injection

  • fitness founction
    • 適応度関数

A Cluster-Based Genetic Algorithm with Elitist Selection for Supporting Multi-objective Test

  • search based testingの説明とか

panel discussion

  • Adithya Nagarajan
    • Apple
    • fuzzing areaとかが主なところ
    • research area
      • AB testing
  • Murat Ozturk
    • optimization for development processes
    • flaky testと戦う
    • infrastructure
    • Scale is very important to optimize development processes
    • 世界全体で見ると、どのようにテストすれば良いかわからない(車とか)。だから色々とやる。
  • John
  • Bao Nguyen

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.