JaSST'14 Tohoku 【テスト自動化~明日のテストを楽にしよう!~】
タイムテーブル
スライドはこちらにまとめあります。
Togetter:JaSST'14東北まとめ
前半の講演の内容は高尚な話をポカーンと聴いてしまって、まとめることもできないのですが、印象に残っているのは、
マルコフ連鎖+形態素解析でランダムな不具合報告を自動生成して、それを読み合わせすることによって、不具合に対する反射神経を鍛える
というもの。一流アスリートがやっていると言われるイメージトレーニングを連想しました。一流プログラマーはそこまでストイックかっ。と。
後半の開発&テストライブは純粋に会場全体で楽しめました。RubyのIntegerの仕様テスト、- Integer("010"),Integer("0b11") とか - に大部分が割かれてました。
何度か拝聴している話題ではありますが、「Jenkinsが何者か>高機能ジョブスケジューラである」のくだりでいままでのいろいろな疑問が腑に落ちた。ビルドツールではないんですね。
ビデオチュートリアルに合わせて超早口で話しているのに、のんびり進行しているように感じるのは、まさのぶいまいの真骨頂でありました。
今回「そんな職業が本当にあるのか!」と初めて知った「テストエンジニア・テストオートメーター」。すでにあるシステムの自動テストだけを構築するテストプロフェッショナルなチームや会社のことだそうです。
ちょっと想像しただけでもご苦労が多いことだろうと思いますが、さまざまなトライエラー、コスト効果を経験して、統合テストの回帰テストが一番のターゲットになるとのことでした。画面操作を5000以上のスクリプトで自動化しているのだそうです。
「うちでもこれやらなきゃ!」と一番思わせられたセッションで、せめてSeleniumは導入しようと決意して帰ってきました。
「毎日の料理を楽しみに」するためには利用者に使ってもらって機能の妥当性確認をしなければならない。そのためには、じゃんじゃんリリースできなければならない。企画からリリースにかかる時間を短縮するための自動化。時間がかかる箇所の短縮には命をかける。という話だったと理解しました。
その中の一節。「素早いリリースのためには、過剰なテストコードは書かない。そのかわり、リリース後不具合に対するダメージコントロールのしくみを作っている。」
↑このバランス感覚が、ぞくっ、としました。
もちろんこんな仕組みを作れる技術力もさることながら、小さいチームならまだしも、企業としてコンセンサスが取れていることが驚異的。
「自動化することが目的ではない。なんのために、何を実現したいから、何を自動化するのか。」をちゃんと考えようね、というのが講演者共通のメッセージだったのかなと思います。他にもオープンディスカッションやLTなどで、みんながテストで悩んでいること、現状どういうテストをしているか、など、ざっくばらんな現場のお話を聞けて、大変共感し、勉強になりました。
ということを聞かれたので、ひとりSIerの現状と課題をさらします。
トレーディングカードマーケットプレイス ガッチャ.jp
Lift / Scala
View: 380 HTML
Model: 170 クラス
Snippet等: 300 クラス
※2.5万行のscala
に対して、
単体レベルテストケース: 80個 という(残念な)現状です。
テストケースは、意識してやっていたわけではないですが、
・不安な(複雑な・クリティカルな)ビジネスロジックの検証
・フレームワークのバージョンアップ時に回帰テストしたい箇所
・バグFIXのための後付テスト
と結果的になっています。
テストを実行するのは、利用者の主に金銭的なトラブルが生じる可能性を感じたとき、環境のアップグレードのときくらい。
テスト書けよとお叱りを受けるのはごもっともですが、1人じゃ書いてらんねーよというのが現状で、次のような考え方をしています。
・フレームワークやミドルウェアの機能は基本信じる。下層のテストはしない。
・テストケースは考える。けど書かない。(テストしやすいAPIにはなる)
・不安なところは書く。
・開発最新版を常に触れる受入テスト環境を提供。お客さんからOKが出れば本番にデプロイ。
という感じです。このやり方で本番不具合がでたら、それはしょうがないから頭を下げて直します。
テスト仕様書・報告書などは運用しておらず、受入テスト環境がほぼ全てであり、お客さんにはテスターとしてグイッと参加していただいてます。
・お客さんの受け入れテストの手間を減らせるならできるだけ減らしたいので、Selenium の導入を検討します。
・運用中のHotDeployに抵抗があり、夜間リリースしていたのですが、今井さんに教えてもらった"parallel deployment"などをヒントに、ウチでもじゃんじゃんリリースできるように検証したい。
・となりに座った池澤さんから、商売の観点を広げられそうな本↓を紹介いただいたので、まずは読む。
closed.