Nagoya.Testingに参加 #NagoyaTesting
行きたいけど時期的に無理かなと思っていたのですが、諸事情により時間に余裕ができたので参加することにしました。
今の自分に足りないものが見つかると思ったのも理由の一つです。
前夜祭?
「誰か晩御飯ご一緒しませんか?」とつぶやいたところ、TEF東海のKENさんときょんさんとご一緒できることに。
Nagoya.Testingスタッフと会話できるこの喜び…でもきょんさん、準備大丈夫かなとも思った夜でした。
始まるまで
最近増殖中の@irofさん、TEF東海のまさおさん、きょんさんと合流して会場へ。ちなみに、irofさんに「遠いところからわざわざ…」と言ったら反論された。それもそうか。
会場入りしてからは「名札作るの手伝って(シールを貼る)」と頼まれたので、シールを貼りながら受付のお手伝い(?)をしていました。某"雪"ウサギさんに「あれ?なんでいるの?」みたいなことを聞かれましたが、ぺんぎんが色々な地域に出没するのはきっとよくあることですよ?
午前
TDDや形式手法の話ばかりでした。
私もLTをさせていただきましたが、あれの要点は「最終的に実践あるのみ」「とりあえず皆TDDはやれるようになっておこうぜ」「って色んな人が言ってるよ」ということです。
「座席表誰かお願いします!」とつぶやいたら@orange_cloverさんが作ってくださいました。ありがとうございます!
座席表 URL ( #NagoyaTesting live at URL
お昼
初めて味噌煮込みうどんを食べました、うどんかためなのね。
食事中の@mzpさんと@kumagiさんによるpersistentなお話が面白かったです。
BlackBox、WhiteBox、網羅的、ピンポイントの4象限
午後最初のハンズオン。
知っている(やったことのある)テストは4象限のどこに位置するか、を書き出すハンズオン。
なんというか、なかなか思いつきませんね。特に技法以外のネタをなかなか書き出せなかったです。
普段使うものって三角測量、同値分割、境界値分析、デシジョンテーブル、状態遷移、原因結果グラフ、ランラムテスト、CFDかなぁ。TODOリストはこの分類にいれていいのかわからないとか、カバレッジは…まぁいいや。
平行系に関するテストの話が聞けたのは個人的に収穫でした。とても勉強になります。
一個疑問に思ったのは、これを次のハンズオンにどうつなげればいいのかな、ということでした。まぁ、私がハンズオンの目的を聞き逃していただけかもしれませんが…。
戦略、分析、設計、実装
テスト戦略、テスト分析、テスト設計、テスト実装を実際にやってみようというハンズオン。
状況は以下のような形が想定されていました。
- デプロイされたHerokuアプリのテスト
- 18:00までにリリースしたい
渡されたもの
状態
#NagoyaTesting 各関数レベルでのTDDを三角測量で実施、コンポーネントレベルでの結合、DBを実際に使用したテスト
なんともいえない状況ですね。
テスト戦略
私のいたグループの方向性としては
- 少しでも早く深刻な順にバグを発見したい
- 簡単かつ重大なバグを見つけられるテストを優先してスケジュール
- テストデータ作成など、同時に作業しても問題ない部分はメンバーが並行して作業する
という形でいきましょう、ということに。
テスト分析、テスト設計
どういった事柄に着目しましょうか、という話を相談しながら以下の順に決めました。
- ページが開けるか
- 機能系
- セキュリティ
- 平行テスト(同時に登録・削除などした時の挙動)
- 時間があれば他のテスト
テスト実装
きょんさんに指摘されて気づいたのが、正常系異常系の同値や境界値の具体的データを仕様書に残していなかったことです。脳内完結させてしまっていたのはまずかったですね、反省。
あと、事前条件に書かれている項目が一部依存条件だったという指摘もありました。このあたりは素直に遷移図に切り替えたほうがよかったかなーとこちらも反省。
依存 | テスト | 期待する結果 |
---|---|---|
トップページでステータス200が返ってくる | wgetでクローリング | エンドポイントのすべてのURLが200で返る |
ブラウザにページが表示される | キーデザイン操作 | ブラウザで各キー操作に応じた結果が表示される |
各ページが正常に表示される | 入力データの検証 | 正常値は登録、異常値はエラー |
データ登録が可能 | 10000件のランダムなデータを突っ込む | 正常に登録される or 異常値ではじかれる |
アプリからデータベースにアクセス可 | SQLインジェクションの確認 | エスケープされること |
POSTがとおる | CSRF | エラーページ |
入力系操作が単体で正常に動作する | 削除→完了と編集→完了を同時実行 | 指定の挙動を満たす |
入力系操作が単体で正常に動作する | 削除→完了と削除→完了を同時実行 | 指定の挙動を満たす |
確かに、改めて見ると具体値を書かなさすぎでテスト仕様書とはとてもいえないですね。時間的制約に焦った影響もあるかもですが、練習だと割り切ってゆっくり作るべきでした…。あと、上の表は思い出しつつなので少し間違っているかも。
振り返りとか
少しはグループのお役に立てたのかな、など少し不安が残りましたが、不安があるってことは次回までに改善せよってことですよね。改善していく所存です。
懇親会でこんな話をした(された)、ような
感想?
余談
- 懇親会後に@irofさん、@hakuraiさんと手羽先を食べに行きました。2日連続手羽先!
- 翌日、目が覚めたらチェックアウト20分前とか…
さいご
主催者の@kyon_mmさん、TEF東海のKENさんとまさおさん、エイチームさん、勉強会スタッフの皆様、勉強会に参加された皆様、ありがとうございました。
次またどこかでお会いしましょう!
あ、4月22日のSCMBC in Nagoyaがあるらしいのでよろしくです!