WACATE2日目の感想
WACATE 2018 夏に参加しています。WACATE最終日が終わったので2日目の感想を書きます。
おいしいカレー
毎年恒例らしい。
#WACATE テスト設計ワーク終了ー。お昼はマホロバカレー! pic.twitter.com/gL3Spdn1z1
— たまのび@日焼けする (@tamanobi) June 17, 2018
きれいな景色
#WACATE 海が綺麗 pic.twitter.com/ildIG0pwxd
— たまのび@日焼けする (@tamanobi) June 16, 2018
目的
単体テストだけでなく、より上流のテストについて学ぶために参加しました。
概要
以下の内容をやりました。テストケースを作成するワークがとても大変で、頭が疲れました。招待講演に関しては別の記事にまとめる予定
- ワーク
- ワーク振り返り
- 招待講演「原因結果グラフとWACATEが僕に教えてくれたこと」
ワーク
ワークの内容自体は単純で、仕様書からテストケースを作りなさいというものです。
- A4 1枚の仕様書(今回は稟議書承認システム)
- 仕様書の曖昧な部分はチーム内で合意すること
- 1チームあたり5人あるいは6人
- 制限時間は2.5時間
- ゴールは「テストケースを作ること」
僕のチームは、最終的にはテスト手順を9通り作りました。稟議書の状態遷移だけです。 本当は、アクティビティ図からのテストケースを1つでも起こしたかった。
感想
UMLの有用性がわかった
UMLがテストケースを作るためにここまで有用だと思いませんでした。でも、僕が使いこなすにはまだまだ時間がかかりそうです。 適切な粒度を見出さないとうまくモデリングできないから。人によって粒度がさまざまでした。僕はかなり細かくなってしまってモデルが複雑になることが多かったです。
プログラミングをする上で、この粒度は非常に細かくなります。でも、ブラックボックステストでは粒度は荒くなります。
UML(モデリング)は何のためか
システムをモデリングすると、さまざまな観点で議論しやすいと感じました。UMLには、ユースケース図、アクティビティ図、シーケンス図、ステートマシン図などありますが複数の図を使えば、その数分だけの観点で議論できます。
以上の点で、1日目の講義で、アクティビティ図、シーケンス図、ステートマシン図の3つを学べたことに強く感謝しています。
テストがうまいとは
「テストがうまいとは何か」という疑問をもって参加しましたが、ワークを介して仮説ができました。「システムを自在な粒度と観点でみられること」だろうと思っています。
ユーザーから見たらシステムがどうみえるか?稟議書の状態はどう変化するのか?システムと連動するときは?さまざまな粒度と観点で見ることがテストにおいて重要だと思います。
テストエンジニアリングとは
ワークや交流を通じて確信したことが2つあります。
- テストは上流から入り込まないといけない
- すべてのテストを網羅することはできない
テストは上流から
テストエンジニアリングとは、テストケースを単に作成するだけではなく、ときには仕様を決めたり、曖昧性を排除したり、テストしやすいような結合度を考えたり、ユーザーのことを考えて機能を決めたり、幅広い範囲だと思います。
すべてのテストを網羅することはできない
#WACATE のワークを通して学んだこと。A4 1枚の仕様書で大人6人がかり2.5時間かけてもテストパターンを作るのに時間が足りない。自然言語を論理構造まで読み解くのは大変な作業。
— たまのび@日焼けする (@tamanobi) June 18, 2018
ワークの時間切れを体験して、テストケースをすべて網羅することはできないと確信しました。僕のチームは、ステートマシン図から0スイッチカバレッジが100%になるようにテストケースを作成しましたが、これが複数の状態変化をカバーする1スイッチカバレッジや2スイッチカバレッジを100%満たすようにケースを作成した場合、テストケースは膨大になります。
現実的に網羅できないのであれば、最もカバーしなければならない点を定めてケースを決定する必要があります。
コミュニケーション
テストエンジニアのみなさんは、人当たりがめちゃくちゃ良かったです。人との折衝が多いからでしょうか?あるいは、他人は自分とは異なる観点を持っていて自らの学びにつながる可能性を知っているからでしょうか?
こんなに暖かく素直なコミュニティは見たことがなかったです。
#WACATE 守り紙です(チームガイドライン) pic.twitter.com/qhJX843Hlb
— たまのび@日焼けする (@tamanobi) June 16, 2018
優しくしてもらった恩はぜひ次の人に。音を返すのではなく義理で返そう! #wacate
— たまのび@日焼けする (@tamanobi) June 16, 2018
テスト界隈は、コミュニティが強い感じがする。数が少ないせいか、人のつながりが強い。 #wacate
— たまのび@日焼けする (@tamanobi) June 16, 2018
東京に来てから、「優しい振りをした損得重視のコミュニティ」しか見たことがなかった。それこそ、悪質なネットワークビジネスのような(ネットワークビジネスのすべてが悪いわけではありません)。
まとめ
- テストコミュニティは、初心者に開けていて、明るくて、前向きで、おもしろおかしい
- テストについて知らなくても、テストに興味があれば、ぜひWACATEに参加して欲しい
- WACATE 2018夏は上流工程を知らない自分にとって、とんでもなく学びになった
#WACATE とても楽しかった。こんな暖かいコミュニティあるのかっていうくらい理想のコミュニティがそこにあった。テストに関わっている人はソフトスキルも高いぞ!(JSTQBのFLにも少し記述がある。
— たまのび@日焼けする (@tamanobi) June 17, 2018
運営や参加者に感謝です!ありがとう!
余談
このWACATE 2018夏で知った手法を会社に持ち帰って、活かそうとするのは良い心意気だと思いました。 だけど、僕がこのWACATEで理解したのは、「何が問題か」「どこが重要か」見極めることです。
勇み足にならないために、ゆっくりと問題と向き合って、そのとき適切な手法で解決しよう。
「うどんは箸でパスタはフォークで食べる」
— たまのび@日焼けする (@tamanobi) June 17, 2018
この言葉とても良い。なぜなら、麺の種類だけでなく操作者の習熟性も含んでいると思ったから。#WACATE