GREE TechTalk 『スマートフォン時代のソフトウェアテスト』に行ってきた

資料は公開されれば貼ります。

モバイルテスティング・クロニクル 松木 晋祐(株式会社ACCESS)

内容としては以下の3つ

  • 「モバイル」コンテキストの成立まで

昔どんな物があって今が存在するかだがimodeの話か始まりという感じの歴史。

  • 「モバイル」コンテキストにおける品質要素とテストのアプローチ。スマホがでてきてどんな事になったか。

AndroidiOSの違いは?共通の課題はどんなものか?といったお話。 セキュリティとプライバシー保護の問題があるが、プライバシー保護はセキュリティが守られた上で語らなければならない。

  • これからの話

クラウドのアプリケーションが増えてモバイルやインターナルなアプリはクラウドにシフトしている。 必要な技術として テストエンジニアリング基盤、出荷判定からKPI、フロントエンド技術 TATを高めるテスト自動化などがあげられる。

ちっともスマートじゃないスマートフォンアプリのテスト事情 山本 健 (グリー株式会社)
  • スマホは開発地獄だ。

永遠につづくかのような新しいバージョンへの対応。
元締め(Apple)による突然のレギュレーション変更。
ユーザから不具合報告がある端末は高い確率で社内にない。

  • スマホの罠ポイント。 いろんな形が存在する、機種、ブラウザ、ネイティブ。
    テスト環境とか。
    ちなみにGREEのエレベータは電波がきれるのでテストに使える。

  • 罠を総括すると結局はアンドロイド軍団vsテスタ。

そしてたまるバッドノウハウの数々、バージョン、デバイスのバリエーション。
もっとスマートにするには。
ナレッジを蓄積して罠をさける。
端末の選定をする。

グリーではマトリクスを作成しピックアップ、新発売は最低一代担保。
ガイドラインやナレッジの調査 を行っている。
QAサイドからの自動化。
TestEnginneringTeam 自動化による品質向上、費用削減を目的としたチームを作っている。テストエンジニアに近づいていく。
経緯としてはQAエンジニア確保の要請が来始めたところから。
今はドリランドのテスト自動化をしている。
理由は人気があり更新が多いプロダクトだから。
リグレッションテストの機会が多い。
Selenium pyhotn bindings 等を使っている。
現在、チュートリアル、主要機能をカバー。

  • スマートなまとめ 不安定な要素をできるだけ整理しハイスピードの反復に耐える健全な企画・開発・研修フローを確率する。
    自動化の導入は必須。
    モダンな開発スタイルが前提とされる感。

開発はTDD, CI Continuous Deliveryを行い。
QAはTest Enginieringを行う。

UnityによるGameObjectとコルーチンを利用したTestingフレームワーク 奥村 典史 (グリー株式会社)

C#でテストをしようという話。
sharpunitとかあるテストしたいことがある。
例えばロジック間違ってないか、
通信が想定した結果がえられているかパラメータバグはない、
実機でも動か、
メモリリークしてないか。

shapunit不便な点。
1フレームで簡潔しない処理が書けない。
テストツリーをコードベースで編集する必要がある。
ログがどのテストのログがわからない、どこで落ちたかわからない。

unityの特徴。
コルーチンで1フレームで完結しない処理が書ける。
hieraruchy オブジェクトのツリーをビジュアル化できる。
unityの特徴を生かしたらいいテストフレームワークができるんじゃないか。

というわけでuniunitst を作った。
テストがfailした時にUnityのconsoleにでてクリックするとfailしたところに飛ぶのは便利。
非同期の時はタイムアウトの値を設定したりできる。
sharpunityだと非同期ではできないので。

Q.sharpunitと併用?置き換えることができますか。
A.できる。

パネルディスカッション: Jenkinsによるテスト自動化の会社への導入 。 パネラー:太田 健一郎 (株式会社SHIFT) 、岡崎 隆之 (グリー株式会社)モデレータ:粉川 貴至 (株式会社セガ)

各事例に対してききたいこと各自の現場で困っている事内部品質が売り上げが比例するかというとそうでもない。
ただ、内部品質が低いとだんだんとコストがかかってくるのでそこは守ろう。
自動テストがない既存コードとかはあきらめよう。
新規コードはステートレスにしてユーティリティクラス静的検証ツールの導入しよう。自動テスト以外自動ビルドを頑張る事により時間と余裕を作ろう。

Q.自動デプロイCI導入時に手元で先にストを走らせるか?サーバでやるか?
A.できれば両方やりましょう。導入するときは最低限からでいいんで。

Q.上司に言われた言葉、テストの品質を誰が担保するんだ。
A.新規で作ったところを自動テストを行う。warningが減りますよね。
自動テストとメトリクスを合わせて。 テストを上手に書くようにスキルをあげていかないといけない。
どういうテストがいいのかディスカッションする。
まずはテスト技法とか考えるよりも境界値分析くらいはやっておくべき。
最低限の部分を実際にやると本番での障害を防げる。

Q.自動テストをやって仕様変更があった場合はコードを直さないといけないがどうする?
A.テストを先に直すのが理想だが、緊急だったらたそのタイミングで直す。

まとめ、できるところからやってこう!工夫を積み重ねよう!

というのまでが内容でした。個人的な感想としてはUnityのテストは徐々にだが自分のプロジェクトでも導入していきたいなと思いました。後、テスト技法とかばかり注目してきましたけどマインドも重要だなと思いました。