システムテスト自動化カンファレンス 2015
システムテスト自動化カンファレンス 2015 に参加してきました。
テスト自動化のスキルを考えよう!
~テスト自動化エンジニアに求められるスキル、期待される役割~
ISTQB Expert レベルの Test Automationのシラバスの解説など。
テストエンジニアのスキルの指標としてTest.SSFというものがあるが、
自動化テストエンジニアとしてのスキルの指標となるAutomation test.ssfを作成しているという話。
Test.SSF の代わりになるようなものでなく、自動化テストの部分だけを取り出した補完するものみたいな感じなのかなと思った。
自動家は見た~自動化の現場の真実~
自動化を適用していた現場で、お客の担当者が変わり上手く行かなくなったという話。
じゃあ、あの時どうすればよかったのか?という話を現場視点とマネージャ視点からの意見で深めるという内容。
色々な立場があって、色々な意見があるんだなぁと思った。
自動化の必要性を説明しないと分かってもらえないのは当たり前といえば当たり前の事なんだけど、それを自分が出来るかと言ったらできないだろうなぁ。。
広告システム刷新よもやま話
- テストが当たり前となるまでにやったこと
Yahoo Japanで、広告のレガシーシステムがPerl(?)で作られていて、メンテするのにも時間が掛かるし、なんで動くのかわからないけど、型推論などでなんとなく動いていて「コイツ、動くぞ・・・。」状態のシステムを一からJavaで作りなおしたという話。
まず、一から作りなおして良いということを上の人が判断してくれる環境が羨ましいなと思った。
あと、内容に関してはJavaの開発の話なので、自動化カンファレンスというよりはJJUG CCC的な内容だった。
楽天で、CI,CDをどうしているかという話。
寸劇が面白くてイメージが強かったせいか、資料見返してもあまり内容が思い出せない。。
仕様変更した箇所はしっかり記録を残しておいて、後で見返して変更点と変更した理由が終えるようにしておくことが大切。
テストは頻繁に行って、ソースコードの作成からあまり時間をかけないでフィードバッグを得ることが大切。そのために、頻繁にコミット、すぐにテスト、ビルドを行うことが大切。
フィードバッグを早く得るためには、すぐにテスト環境を作成できるChefやDockerなどのツールの導入も必要。手動でインフラ構築をしていて、結果が1週間後とかでは遅い。
品質の悪いテストを頻繁に実行しても仕方がないので、テストコードは汎用性も考えたりして、リファクタリングを行う。
とかそんな感じだったかな。。。
キーワード駆動によるシステムテストの自動化について
キーワード駆動テストの話。
疲れがが出て眠くなってしまっていたので、あんまり理解出来ていません。
入力のバリエーションが変わっても出力が変わらない可能性があるなら、入力の変更でテストが出来るようするため、入力を外部ファイルにするというのがキーワード駆動開発なのかな?
他には、後でテスト出来るようにアーキテクチャを考えるのが大切とか。
Testing Tools for Mobile App
クックパッドでスマートフォンアプリのテストなどをどうしているかという話。
1年から1年半くらいで破壊的アップロードがあるとか、大変そうだなぁと思った。
クックパッドにテストエンジニアとして入って、社内の意識を変えているというのはすごいと思った。
JJUG CCC 2015 Fall
JJUG CCC 2015 Fallに参加してきました。
最近Javaは使っていないのですが、Java Goldも取ったし、これから使うことも有るかもしれないので、勉強のために行ってきました。
基調講演1 : Javaは守りに入らない、これが今のJavaだ
今年でJavaは20周年。
これからJava SE 9、Java EE 8はいつごろ出てくるという話や、20周年の年にOpen JDKのコミッターに日本人が二人出たよっていう話。
そのほか、セッショの内容をざっくり紹介していて分かりやすかったです。
基調講演2:Java EE 8 – Work in Progress
Java EE 8で実装予定の機能説明の話。
JSON-BやJSON-P 、HTTP2でどうなるよっていう話。
通訳の人がすごいなぁと思った。
苦手克服!例外スタックトレースから読み解くバグ
Java のError、Exception、Runtime Exceptionを初心者向けの解説、Exceptionのスタックトレースの読み方、スレッドダンプのスタックトレースでの解析の具体的な方法の話。
スレッドスタックは、
jps -l などでPIDを調べて、
jstack PID でスタックのトレースを取れる。
スナップショットは、3回位間隔を開けてとるとスレッドの状態の遷移がわかりやすい。
スレッドダンプのログを複数回分見るのは大変なので、山本 裕介さんが開発した”侍”というツールを使うと簡単に解析できるようなる。
個人的にですが、Error、Exception、RuntimeExceptionの違いはJava Goldの勉強する前に聞いておきたかった。。
Java8移行から始めた技術的負債との戦い
上の人が、Java 8にしようと言い出したけど、そもそも現行システムがJava 6 で移行に苦労したという話。
よくある業務開発の自動化事情
自動化環境を構築すると良いよっていう話はあるけど、現実には発生する問題は多いよという話。
自動化環境は環境をいじることがあまりないので、属人化が加速するとか、CI環境の構築はマニュアルがあるから意外と簡単に構築できるけど、会社的な色々なアレで簡単に崩壊するっていう話は面白かったです。
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド
昔は、アメリカで成功したビジネスモデルが数年後に日本で適応すれば成功すると言われていたけど、ITの世界では、Web系企業と、SI系企業で同じようなことが起きているよという話。
アプリケーションのモダン化、Java 8化、構築環境の自動化(Chef、Docker)はSI業界でも避けられない。
JavaScriptのフレームワークの競争は激しすぎて何が生き残るのかわからない。
サーバサイドのプログラムもNode.jsでできるので、JavaScriptは更に注目されると思われる。
デバッガのしくみ(JDI)を学んでみよう
JDIの仕組みの話。
コアな話も聞いておこうと思って参加していたけど、コアな内容だった。。
Garbage First Garbage Collector (G1 GC)
資料には記載されないと思うので、質問と回答を記載します。
・OutOfMemoryErrorが起きた時に再起動するしかない?
発生後の動作は不定になるので、再起動するのがベスト
・G1 GCを調べるとカードという概念が出てくるけど、何?
Region毎にオブジェクトが変化したかどうかのフラグのようなカードというものがある。
Javaにおけるネイティブコード連携の各種手法の紹介
C、C++、JavaScriptなどとJavaが連携するときの手法の話。
jjug_cccでは、自分では普段興味を持たないような内容の話ががたくさん聞けたので、良かったです。
他に聞きたかったけど、聞けなかったセッションあるので、資料を漁りたいと思います。