JaSST'14 Tohoku参加してきました

【テスト自動化~明日のテストを楽にしよう!~】 登壇者の異様な豪華さに惹かれ参加してきました。

JaSST'14 Tohoku 【テスト自動化~明日のテストを楽にしよう!~】 
タイムテーブル

スライドはこちらにまとめあります。
Togetter:JaSST'14東北まとめ


「テスト、設計、自動化と。」関さん

前半の講演の内容は高尚な話をポカーンと聴いてしまって、まとめることもできないのですが、印象に残っているのは、
マルコフ連鎖+形態素解析でランダムな不具合報告を自動生成して、それを読み合わせすることによって、不具合に対する反射神経を鍛える
というもの。一流アスリートがやっていると言われるイメージトレーニングを連想しました。一流プログラマーはそこまでストイックかっ。と。

後半の開発&テストライブは純粋に会場全体で楽しめました。RubyのIntegerの仕様テスト、- Integer("010"),Integer("0b11") とか - に大部分が割かれてました。


「今さら聞けないJenkins入門」今井さん

何度か拝聴している話題ではありますが、「Jenkinsが何者か>高機能ジョブスケジューラである」のくだりでいままでのいろいろな疑問が腑に落ちた。ビルドツールではないんですね。
ビデオチュートリアルに合わせて超早口で話しているのに、のんびり進行しているように感じるのは、まさのぶいまいの真骨頂でありました。


「Automator2 : Management Days」浦山さん

今回「そんな職業が本当にあるのか!」と初めて知った「テストエンジニア・テストオートメーター」。すでにあるシステムの自動テストだけを構築するテストプロフェッショナルなチームや会社のことだそうです。

ちょっと想像しただけでもご苦労が多いことだろうと思いますが、さまざまなトライエラー、コスト効果を経験して、統合テストの回帰テストが一番のターゲットになるとのことでした。画面操作を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"などをヒントに、ウチでもじゃんじゃんリリースできるように検証したい。
・となりに座った池澤さんから、商売の観点を広げられそうな本↓を紹介いただいたので、まずは読む。


同じカテゴリのエントリ
ReactとAWSサーバレスアーキテクチャ / JaSST'14 Tohoku参加してきました / JAWS-UG山形 第1回勉強会参加してきました。 / わにる.jp jQueryブートキャンプ2に参加してきました / わにる.jp HTML5デザインマラソンに参加してきました / TDD Boot Camp in 仙台に参加しました / 田沢湖マラソンふりかえり / RubyKaigi2010の感想 / 新庄市:土内廃校プロジェクトに遊びに行ってきました / 第9回わにる勉強会に参加 / dachas×遊部に参加してきました / CSS Nite in Yamagata vol.2 に参加しました / フルマラソンふりかえり / 仙台Ruby親方会議ふりかえり / 歩くことは基本 / 仙台Ruby会議02に参加しました / 書籍紹介:クレイアニメ&人形アニメを作ろう / 日本Androidの会東北支部発信会に参加してきました / 儲かるRuby? / 919スピーカーズに参加してきました / チェリーボーイジャンボリー / 告知:919speakers / 第1回東北情報セキュリティ勉強会の感想 / 上流工程・品質勉強会の感想 / RubyKaigi2009の感想 / エンジニア未来サミット0905を観て / 第7回わにる.jpに参加して / TDC設立1周年記念感想 / おくりびとロケ地ツアーマップ / TDC1周年記念おめ! / 仙台Ruby会議01参加してきました / こっちでも勉強会勉強会しない? / 勉強会をネットで配信することについて / ラストマン戦略 / 庶民によるIT / 酒田Wifi視察 / やる気だしていこう / 第3回wanir.jpに参加して / 惨敗プレゼン / wanirの告知とブログパーツ / 勉強会駆動型発信力増強法 / 山形でもコミュ二ティしましょう / TDC行ってきました / 東北 Developers Community /
コメント

コメントしてください

closed.