飴ブロ(仮

パインアメでおなじみ「ぱいん」のブログ。略して、飴ブロ(っていったら許してもらえますか?

「E2Eテストのflakyと向き合う」の発表補足 #stac2020

こちらは、ソフトウェアテストAdvent Calendar 2020の7日目です。 qiita.com

12/6は binnmtiさんの「自分のサービスにモブプログラミングでリグレッションテストを導入している話」でした。

12/5にソフトウェアテスト自動化エンジニアカンファレンスで 「E2Eテストのflakyと向き合う」というタイトルで発表させていただきました。 testautomationresearch.connpass.com

当日のスライド

speakerdeck.com

当日の動画

登壇動画はYoutubeのテスト自動化研究会のチャンネルで公開されるそうなので、公開されたらコチラに掲載します。 昨年の動画もかなり充実していますので、初めて知った方はぜひ見てみることをオススメします。

www.youtube.com

テスト自動化におけるflakyとは

f:id:pinecandy:20201209023519j:plain

発表ポイントのまとめ

1. flakyは「不安定なテスト結果」のことで、テストケースに書いていない場所で起きている可能性がある

通常、自動テストがFailする原因は1. テストコードやテストデータが誤っている場合、と、2. テスト対象が誤っている(=不具合)に分けられます。

しかしながら、E2Eテストの場合、例えば、画面の表示が遅れてくるせいで表示されないなどの原因によってFailしてしまうことがあります。

2. flakyが起きたら、放っておくと時間を浪費したり、不具合の徴候を見逃してしまう可能性があるよ

テスト実行という観点においては、テストをリトライすれば、リトライした回数だけ余計に実行時間がかかります。また、Failするごとに原因を確認することに依る時間もかかることでしょう。

さらに危険なのは不安定になることに慣れてしまって、手動テストであれば違和感として気づけるかもしれないシステムの問題の徴候を見逃すことになることがあることを理解しましょう。

3.flakyやテスト自動化全体を学びたい 初心者にオススメの書籍

テスト自動化を理解する上で基本の考え方である「テストピラミッド」について、とてもわかり易く説明しています。

また、flakyについても以下の章を割いて説明されています。個人的には日本語の入手可能な初心者向け書籍では断トツでオススメです。

  • 8.6 不安定なテストの扱い方
    • 8.6.1 テストを書き直す
    • 8.6.2 テストをピラミッドの下の層へ移動させる
    • 8.6.3 価値のないテストとみなし、テストを止める

www.oreilly.co.jp

発表で触れなかったけど言っておきたいこと、もう少し伝えたかったこと

1. 不安定性はゼロにはならないということ

flakyゼロ を目指して戦い続けると、チームとして疲弊してします。それは、ユーザのニーズや仕様が状況や時間経過によって変わっていくことによる影響を常に受け続けるシステムをテストしているという自動テストにおける宿命のようなものでしょう。

いわゆるユニットテストカバレッジを50%から80%に上げるのと、80%から90%に上げるための労力は同じくらいかかるといった類の話と同等だと思います。

なので、重要度、緊急度を見極めた上で、優先度を見極めて行くほうが持続的な運用としては持続可能性は高いと思います。 80点あたりを目指していくのがベストかと経験的に思います。

2. flakyを予知することは難しい、プロトタイプを作って早くPDCAを回そう

プレゼンテーションでも述べたとおりいくつかの手がかりはあるものの、事前にどの辺が不安定になるかを完全に見極めるのは極めて難しいです。

そこで、テストケース1つで良いのでまず作って、毎日流してみることをオススメします。あなたのプロダクト(サービス)で動くものをベースに実際に確認することで、リスクの見極めやFailを通じて、どう手を打っていくかを見出していくのが何よりのグッドプラクティスになることでしょう。

3. テスト自動化が開発プロセスを整えるきっかけになるかもしれない

発表では、Flakyを事前に防ぐための取り組みとして、仕様を事前に確認しておくことや、テストアーキテクチャ自体を見直しましょうという話をしました。

E2Eテストがflakyになってしまう根本原因として、そもそもAPIテストやパフォーマンステストが不足しているプロジェクトをいくつも見てきました。

それでは、不足していることを悪だとみなしてE2Eテストまで捨ててしまうことが正解なのでしょうか。

(すべてのプロジェクトでできるとは思いませんが)不足しているのであれば、補完する取り組みをそこから始めていけば、学びを活かし、ひいては品質向上に繋がると考えています。

f:id:pinecandy:20201209022936j:plain

ということをルンバという例えで、非常にわかりやすく説明しているスライドがあるのでぜひ読んでみてください。

speakerdeck.com

次回予告?

とある参加者の方😺から、こちらの論文を紹介していただいたので読んでみようと思います。

Modeling and ranking flaky tests at Apple

Abstructしか読んでいませんが、TestのFlakiness(不安定度)をランク付け可能な値と捉えて、信頼度をアサインして、モデルを構築して評価しました、という話だそうです。 誤検出に依る欠損が1%未満で、44%のFlakinessを削減できたとのことなのでこれは凄い。

おまけ

本発表では、どうやらテスト自動化経験者の皆様のあるあるを引き当てたらしいということを申し添えます。 (事例紹介を行った際の当日のDiscordチャット)

f:id:pinecandy:20201209014430j:plain

オンラインイベントの運営: 4つのポイント

2019年の12月に開催されたテスト系イベントの運営をやっていました。

Japan OnlineTestConf https://www.onlinetestconf.com/jp/

OnlineTestConf(以下OTC)自体は、2016年〜開催されているようで、日本での開催は初めてでした。

イスラエルのテストツールベンダーPractitestさん(以降、P社)主催の下、イスラエルメンバ3名、有志の日本メンバ3名で運営していました。 使用したツールは、ZoomとSlackでした。

配信プラットフォーム

ZoomのWebinarモードを使用しました。こちらは、P社がこれまで実施してフレームワークをそのまま利用させてもらいました。

登壇者、運営をPanelistsという権限にしておき、参加者をParticipantsにしておきます。すると、参加者はMicやVideoを自らはONにできない状態で参加してもらうことができます(画面共有と登壇者、運営の音声は聞ける状態になる)。

Q&A, コメントなどチャットツール

参加者から登壇者への質問はSlackのチャンネルをつくって、対応していました。

会自体は、リアルタイム登壇者2名(生中継)、録画の放映の2名でした。

その際に運営するメンバとして、注意すべきポイントを4つ紹介します。

1. リハーサルは登壇者込みでやっておく

Zoomの会議自体は最近よく使われるようになったこともあり、使い慣れている方も多いかと思います。

ただ、司会役から登壇者への引き継ぎやQ&Aの対応はどうするの?などといった細かい検討事項はやってみるのが一番だと思います。

あと、マイクミュートになったままとか、発表モードがうまくいかなかったりとか、結構起きます。

また、登壇者の方もオンラインで登壇するといった機会が初めての方も多いかと思うので、登壇者、運営者の安心のためにもやっておきましょう。

f:id:pinecandy:20200506182004p:plain
OTC

2. 休憩時間を使って時間調整

オフラインイベントでも言えることですが、発表の切り替えの遅延や、Q&Aが長引いたりすることも大いに想定されます。

OTC自体は、各発表の間に20分ずつ休憩時間をとっていました。時間調整や細かい調整などを行うためです。

Tipsですが、休憩スライドにタイマーを仕込んでおくと、参加者側としては次いつ始まるかわかるので良かったです。

3. 会の最初にツールの使い方を説明する

参加者としても、オンラインのイベントへの参加はまだ少ない方が多いかもしれません。

事前に、ZoomやSlackの使い方を連絡しておくと同時に、当日もツールの使い方の説明をしたほうが、参加者からの質問やコメントも増えて盛り上がることでしょう。

f:id:pinecandy:20200506180911p:plain
ツールの使い方

4. デュアルモニターはほぼ必須

発表中は、ディスプレイが発表者の画面共有で占有されることになります。

裏側で、運営スタッフ同士の会話(残り時間の確認など)やSlackなどチャットツールの反応をみたりするためにDisplay 2枚は必須かと思います。

うまくコントロールできるのであれば、スマホタブレットでチャットを開くという方法でも良いかと思います。

最後に

いかがでしたか?

次回のOnlineTestConfは、2020/5/19-21に開催されるようです。こちらは、Japanイベントではないので私は運営に参画していません。

3日間で、3つの時差分けて講演が行われるそうなので、3日目は日本の昼間みたいですね。興味ある方はこちらからどうぞ。

https://www.onlinetestconf.com/program-spring-otc-2020/

ちょうど良い機会なので、オンラインイベントが増えていくと良いなと思います。

2019年ふりかえり

サマリ

本年は大変お世話になりました。 2019年は、みなさまに恩返しすべくアウトプットに力をかけた一年でした。

それなりにアウトプットできたのかな。ということで振り返ってみました。

プレゼン編

1/13 経験ベースで語るテストエンジニアのための英語術 Ver.0.190113 @オンライン飲み会

speakerdeck.com

6/15 夜の分科会_情報交換会 @WACATE 2019夏

speakerdeck.com

7/26 これからシステムテスト自動化を始める組織のための勉強会 @某社様

speakerdeck.com

10/29 しくじり先生アジャイルテスト自動化立ち上げ迷走記 #D3QA

speakerdeck.com

その他

  • 2019/2 D-Cube D3QA WACATEフィードバック @ビズリーチ
  • 2019/4 SeleniumConf Tokyo: Lightning Talk Session
  • 2019/6 WACATE 2019夏 分科会オーナー :SpeakerDeck
  • 2019/10 Veriserve Academic Initiative (VAI)@東京 120名、大阪 80名 →話した内容の概要はこちら

qiita.com

運営編

4/18-20 SeleniumConf Tokyo

conf.selenium.jp まだ今年の出来事なんですね。国内外の皆様からGood Job!と褒めていただけたのは今でもいい思い出です。

Selenium界隈の雲の上の人たちとも仲良くなれました。

コミッターの皆さま、登壇者の皆さま、スポンサーの皆さま、参加者の皆さま応援いただいた全ての皆さま本当にありがとうございました。

動画はこちらからどうぞ。

Se Conf Tokyo Team - YouTube

ぜひ、何年後かに第2回をやれたらなと思います。それまでに日本のテスト自動化コミュニティも発展しているといいなあ。

これからもよろしくお願いします。

11/1 JaSST Review

JaSST実行委員になりました。

なんていうかもう... 運命すら感じるレポートとツイート。

www.aster.or.jp

12/8 OnlineTestConf Japan

日本ではおそらく初めてのソフトウェアテストのオンラインカンファレンス。

海外2名、国内2名のスピーカーに登壇いただきました。

100名を超える参加者に参加いただき盛り上がりました。

ありがとうございました。

最後に

ふりかえってみると、結構いろいろしていますね。

来年は、子育てと並行してどこまでできるかは未知数ですが、より質を上げていければと思います。

皆さまの良い年をお迎えください ( ´◎`)スー

テスト自動化初心者向け勉強会のスライドを公開しました

テストラジオに9/15回に出演させていただき告知もしましたが、 テスト自動化初心者向けの勉強会をやったので資料を公開しました。

経緯

とある会社さんのQAエンジニアさんから「テスト自動化を導入しようとしているんだけど、勉強会を良かったらしてくれないか」というお声掛けを頂き実現。

さらに、QAだけではなく開発エンジニアも呼ぶとのことで、さらにハードル上がる...w

概要

今回、QA限定でもないエンジニア向けということだったので、あえてテーマは絞らず浅く広くを意識して作ってみました。

  • 自動テストと手動テストの目的が違うこと
  • テスト自動化8原則の説明と解釈
  • テスト自動化のピラミッドを使った、開発とQAのテスト自動化のかかわり方について

ケースバイケース過ぎるので、あえて、Howの部分は深堀していません。

成果物

最後に

可能な限り読んでわかるように作ったつもりではあるものの、うちでもやってほしいなどのオファーは歓迎なので興味がある方はご連絡ください。

これが全てであるとも思っていないし、体系化できていない部分、足りていない部分があると思っています。個人的にも、ここから洗練させていきたいお気持ち。

ご意見、ご質問はこちらまで↓

ぱいん🍍 (@pineapplecandy) | Twitter

リンク: テストラジオ

第111回テストラジオ ぱいんさんとテスト自動化の話をする回 – テストラジオ

山口絵理子さんの講演会に参加して心震わされた話 #私のThirdway

 山口絵理子さんと私

山口絵理子さんの出版記念講演会「Third Way 第3の道のつくり方」に六本木ヒルズに行ってきました。

彼女は、「途上国から世界に通用するブランドを作る」を理念としたアパレルブランドマザーハウスの代表兼チーフデザイナーです。 詳しくはこちら  

私にとっての山口絵理子さんは、人生のロールモデルの方です。学生時代に国際協力に興味のあった私は、彼女の著書「裸でも生きる」に出会い、これまでの先進国→途上国の一方的な援助という形ではない持続可能性の高い方法があるという衝撃を受けて以来大好きなブランドの一つです。私のカバンやマリッジリングもマザーハウスだったりします←

Twitterによると初マザーハウスの鞄は、6年前に悩んでゲットしたらしい。
いまでも時々お店でメンテしてもらって大事に使ってます。

 

どれくらい好きなのかはTwitter見てもらうとわかるはず。心からのファンです🙋‍♂️


f:id:pinecandy:20190802215942j:image

ジュエリー マザーハウス|JEWELRY MOTHERHOUSE

 

 私の途上国支援に対する問題意識

ひとことで言うと「魚を与えるのではなく、魚の釣り方を教えよ」という話に尽きると思います。

 

途上国の人にお金や学校を与えるのは一時的に効果はあったとしても、そこの現地の人が自らの力で前に進んでいかなければむしろ援助慣れによって退化してしまうリスクすらはらんでいる。

 

だからこそ、自立する方法をことがその国のためであるし、それが回り回って世界平和にもつながるのではという考えています。

 

ちなみに、国際協力における援助の話とIT開発支援の共通点みたいな話は一度はなしたことがあります。スライドはこちら

 

今日の話で特に共感したポイント

  • 今回の著書のテーマ「第3の道」=世の中で良くある二項対立、例えば「経営v.s.現場」の構図から掛け合わせて新しい道を創るための考え方
  • 現場で学んだことをマネジメントに活かそう
  • 現場で汗だくになったことを満足で終わらせない、経営に活かす
  • Thitd wayをどう落とし込んでいくか
    1.  相反する二つの良い部分を抽出する
    2. 二つをかけ算するクリエイティブは現場から見いだす
    3. 出来上がった選択肢がダメでも改善していく。改善の過程で道ができていけばいいな☆
  • 手仕事の仕事をしていても、大量生産の良いとこを盗めばよい。生産性は高めるのに大量生産はたくさんグッドプラクティスを持っている
  • 掛け合わせというのは妥協ではないのか?新しいものであるかを確かめる。それが見たことないものだと人は自然と集まってくる。
  • 生き方やノウハウでないことの結論を急がないこと。むしろ何年か寝かせる。
  • 迷っていてもアクション続けていくということ。それでも忘れないことは本当にやりたいこと。
  • 感性を大事にする。モヤモヤしてる間の判断は上手く行かない。モヤモヤがはれたときに決める。
  • 身の丈に合った失敗をする。260万円、160個のバッグ、月86,000円の店舗から始まって無かったら今のマザーハウスはない
  • ただし、勝負のジャンプアップも必要。
  • 「途上国から世界に通用するブランドを作る」はまだまだ道半ば。だからこそ、私たちしかやっていないという自負と使命感がある
  • リーダーが理想を持って前を向けなくなったら、その組織は終わる

最後に

山口さんも最後の質問で泣かれていましたが半泣きになりながらずっと聞いていました。

f:id:pinecandy:20190803001535j:plain

マイバッグと本


私が今仕事で関わっているIT分野でも、手仕事だけでもオートメーションだけでもない第3の道が求められているのでグッときました。

 

次回は今日頂いた本を読んで感想を書けたらなと思います。

 

そろそろおうちに帰ります。

本当に最高の講演会でした(*´▽`*)

 

ということで、フライングゲットした本が8月13日に発売されますよ(/・ω・)/

本のご紹介

 

 

 

おまけ

ファンレターを生まれて初めて書いたのですが、予想通りただただ渡すことしかできなかった。でも、「わあ、ありがとうございます。読みますね」と言ってくださったので、嬉しかった(≧∇≦*)

 

 


 

個人的に気になっているソフトウェアテスト系勉強会2019

どういう勉強会参加してますか?とか注目してますか?とかよく聞かれるので、まとめてみました。
レビューだったり、ソフトウェア開発全般の勉強会が混じっていますがご愛嬌。
これが全部でもないし、むしろ最近テスト系の勉強会が増えていて本当に嬉しい。

全部回れるくらいの仕事力と余裕がほしいなあ。

随時、追加していく予定。

ソフトウェアテストシンポジウム (JaSST)系

JaSST Review '19

JaSST '19 Shikoku

JaSST '19 Kyusyu

JaSST '20 Hokuriku

  • 日程: 2020/1?
  • 会場: ???
  • 公式サイト:
  • ひとこと: 勉強した後は、日本酒と温泉も楽しみたいカンファレンス

JaSST '20 Tokyo

  • 日程: 2020/3/9-10
  • 会場: 東京ビッグサイト 会議棟
  • 公式サイト:
  • ひとこと: 会場も拡大しました。誰が来るのか楽しみで仕方ありません。

テストワークショップ WACATE

その他

DevTestOps Live Panel: Why is DevOps breaking testing?

E2E Test Automation Day 2019 with Selenium (Osaka)

D3QA

  • 日程: だいたい毎月開催、次回は2019/7/18だが既に満員
  • 会場: 渋谷
  • 公式サイト: https://d-cube.connpass.com/
  • ひとこと: バラエティに富んだジャンルで毎回違う目線で楽しめるイベント。人気イベントのため申込みはお早めに。

DeNA QA Night #3

Selenium Conference London

Ques 14

  • 日程: 2019/11/15らしい
  • 会場: ???
  • 公式サイト: https://quesqa.com/
  • ひとこと: 社外勉強会デビューだったイベント。毎回、刺激にあふれるイベントで楽しませていただいています。

システムテスト自動化カンファレンス

Web Service QA Meeting

終了したもの

ソフトウェア・シンポジウム 2019 in 熊本 (SS2019)

Selenium Conference Tokyo 2019

  • 日程: 4/17-19
  • 会場: タワーホール船堀 (東京・江戸川区)
  • 公式サイト: https://conf.selenium.jp/jp.html
  • ひとこと: 参加してくださった皆様、ありがとうございました。数年後にまたお会いできるのが楽しみです。

JaSST '19 Niigata

JaSST '19 Hokkaido

ソフトウェア品質シンポジウム2019 (SQiP)

参考文献

nihonbuson.hatenadiary.jp

(過去スライド)途上国支援とプロジェクト支援に関わった経験をちょっと語る #オンライン飲み会

目的:

  1. 国際開発(途上国支援)に関わった経験とプロジェクト支援に関わった経験から支援のあり方について語った
  2. アップロードしたのが消えてしまったので、再度アップ

対象読者:

オンライン飲み会(支援についての話) - connpass 参加者、参加できなかったけど「支援」という言葉に興味のある方

感想

・支援という本質は、まなべさん、カルバートさんと同じ思想に基づいていた

・いわゆる「魚を与えるのではなく、魚の釣り方を教えろ」という考え方は共通

・今思うと、よく結婚パーティーの一週間後にLTしたなと(自画自賛

speakerdeck.com

f:id:pinecandy:20190104010225p:plain