Enterprise Test Forum2014
~スピードと変化に対応するためのテスト現場とは~
に行ってきた。
死ぬほどいっぱい(死にはしないが、気分は悪くなった)。
立ち見はでるし、あれ、冷房はいってたんじゃない?
(暖房ではない。人の熱気を冷ますための冷房)
ってほど混んでいた
その内容をメモメモ
ちなみに、表題の件は、下のほう?まんなかのほう?の
ツールを使って工数軽減!~Webコンテンツの自動テスト~
に出てくる。
■パターン爆発とテスト計画~大規模プロジェクト成功のカギ~
・日本科学未来館 くみあわせおねえさん
旧システム・新システム
・旧システム:できるだけ独立性強く
・新システム:統合→組み合わせ
①プロジェクト:2009年→2010年 方針かえる
フェーズ1:総勘定元帳
②フェーズ2:2011年7月中断
③フェーズ3:方針再変更2014年3月立ち上げ
会社概要
・船の種類多い
プロジェクトの背景
・燃料:旧システムのころはそんなに変わらなかった
→最近乱高下:儲かると思ってたものが・・・
会社概要2
基幹システムの歴史
世の中の流れについていった
リアルタイム・統合型
みねるばプロジェクトの目的
・要件ぐるぐる変わる
プロジェクトの目的再定義
プロジェクト体制
→パターンを減らす=機能を減らす
指揮命令系統がはっきりしないと、組み合わせ減らせない
テストだけでは、組み合わせを整理できない
1.要件みなおし
2.バッチ処理再確認(なんのため)
3.共通モジュール
4.テストツール活用
5.回帰テスト
・バッチ方式
バッチ連携方式→リアルタイムへ
EBS
・テストツール
手動テストの効率化→キャプチャ
→集中管理
HP QualityCenter
回帰テストを実施したい
他に
HP LoadRunner
総合テスト
外部結合テスト
反省点
・テストツール前提としたテスト計画
はじめの段階で(RFP)
・エビデンス多く取りすぎ?
・インシデントの本文検索
・夜間バッチで回帰テスト
QTPを使った回帰テスト
ツールは全てではないが、これなしでは・・
■テストを変える。新しいソフトウェアテストのアプローチ
・会社紹介(コベリティ)
大きなのはエンベデット:カーナビ、ケータイ、医療機器
最近は金融系も:量が大きくなる
・ミッション
よいソフトウェアをより早く→テストを変える
・Coverity Software Testing Platform
静的解析
→いっぱいで過ぎて困る
→バグになるものを見つける
・コールグラフ解析:NULLポインタ、メモリリーク
FindBugsと比較
FindBugs:いっぱい見つけるが・・
コベルティ5%しか誤検出がない
統計的解析
競合も解析
コピペミスも
・Jenkinsでビルドかけた後にコベルティで解析
・最近出しているテクノロジ
OSS、サードパーティのモジュール:ソフトのサプライチェーン)
→動かさないで静的解析:もにたりんぐ
コベリティスキャン→オープンソース向けに無償でツール
→どれくらいのバグ 1000行で0.6
お客さん 1000行で0.72(1をきれば、まずまず)
→テスト前からデータが取れる
・事例:外国の保険会社
・スイスチーズモデル:テストやっても穴があって抜ける
本当に効果的なテストをしているか
テスト作成支援
テスト実行支援
テスト作成支援
テストカバレッジ
データとして関連しているかをチェック
変更部分にフォーカスする、まず、そこを作る
テスト実行支援
本当に有効なテストをしているか
テスト実行解析とテストスコアリング→プライオリティ
事例:エールフランス
まとめ
・コーディング段階でわかるのは、その場で(NULLポインタ、メモリリーク)
→手戻り削減、コスト削減
・コードの品質指標
・リスクあるコードを明確にしてテスト
※コベリティ スキャンに参加するには?
scan.coverity.com
特定のOSSの詳細情報を見るには:そこにはいって、
サインアップ→実際のデータが見れる
自分のソースのトライアル
■ツールを使って工数軽減!~Webコンテンツの自動テスト~
・IE向け
・旧バージョンのIEはサポートされなくなる→1,2年後
2016年1月12日以降、
旧バージョンのIEはサポートされなくなる
サポート終了期間→検証作業はなくならない
→修正作業は発生しないが、検証は必要
→以下に少ない工数で行うか
Webブラウザのアップデートに伴う検証作業
マイグレーション方法
1.書き換え
2.後方互換→新しいブラウザで使う
3.仮想化→ActiveX:推奨できない 例:XP
検証
・動作検証:結果正しく返ってくるか
・表示検証:表示はフォントでも変わる→目視
事前調査
開発/修正:異常が出るかどうか
リリース :全体テスト
テストは仕様どおり作られているものを保証するもの
→テストケース
検証のためのツール
・ドキュメント
互換性クックブック
などなど
・Compact Inspecter:非互換機能を検出
Javascriptライブラリ
・Fiddler:無償
流れてきたパケットを改ざん、ページが出てくる
Demo
(ごめん、やりかた速くて、わからなかった)
・Modern.IE http://modern.ie
スキャンして、間違っているところやブラウザーテストしてくれる
仮想マシンの提供→OS用意する必要なし、MACも、
BrowserStack:90日間無償→いろんなOSいれられる
管理者としてひらいて、node up.js
イントラネットにあるのをスキャンできる
(ごめん、油断して聞き漏らした・・)
ツールを利用
・Visual Studio
デバイスドライバから組み込み、
Team Foundation ServerがProfessionalについてくる
→無償版も一部
→Visual Studio OnLine
→visualstudio.com
テスト管理機能を使用する意義
・テスト対象の明確化と共有
・プロセス管理
・再利用
Visual Studio Onlineのテスト管理
・テスト計画
・テストスイート
・テストケース
デモで
・テストケース記述
→やった内容のつい
自動UIテストについて
・Premium Editionにしかついていない
・煩雑な回帰テストなどに向いている
デモ
・操作を記録してくれる
・それを動かせられる
・ログ、画面ショットとれる
→任意のところで
テストツールを考慮したマイグレーションの流れ
自動UIテスト
エラー
Compact インスペクター
エラー
なおす
modernIEでブラッシュアップ
Team Foundation Server
・全部そろっている
・自習書ある
事例:ビービーシステム
■エンタープライズアプリケーション品質向上のカギ
~サービス仮想化と継続的デリバリー~
CA Technologiesの紹介
・DevOps
・APIマネジメント
・製品のブランディング
エンタープライズ、スピード、全体最適
エンタープライズ=>企業向け
→でもカンパニーとは違う
・たくさんのアプリ
たくさんのインターフェース
たくさんのリソース
・たくさんのプラットフォーム
・規制、法律の遵守
・たくさんの人が関わる
一般的なアプリケーションの開発・テスト体制の課題
課題
・分散化
・短期化 2年→半年
・複雑化
結合・システム・負荷テストの効率化
→これからのテストをいかに前倒しするか
網羅性
リリース
異なる環境にエラーなく配布
結合テスト・負荷テストの課題
・十分なテストができない
・マルチベンダー
・インターフェースエラー
・利用時間、利用料金、本番同様のトランザクション
・テストデータ
→早い段階で結合・負荷テストをできる仕掛けで
→サービス仮想化(テスト仮想化)
シミュレーションするテクノロジー
→シミュレーターをつくる
プロトコルのキャプチャツール
→対向サーバーなくてもできる
→受け取ったデータをマスクかけたりできる
→ほんとうのシミュレーターにも
ほぼあらゆるIT資産を仮想化
・REST
・SOAPはあたりまえ
・paypalとかも!
国内導入はまだまだだけど・・
負荷テスト
・いまあるものに負荷をかけられたら困る
→仮想化
スタブ
・メンテナンスが大変
バンクオブアメリカ 20ミリオンダラー削減
リリース
・アプリケーションリリースの課題
リリース自動化「継続的デリバリー」
リリースオートメーション
リリース手順を可視化→テンプレート
リリースプロセスを環境と役割にマッピング
夜間ビルド→回帰テスト
アプリケーション・テストとリリース自動化をご支援
takashi watanabeでスライドシェア見てね!
■1066人への調査で分かったこれからのテスト環境
・2014年10月号の内容なんですけど読んだ人→2人
①CIツールでテスト実行を自動化
②環境構築ツールでテスト環境自動化
・保守開発:短期・高頻度 システムを育てていく
こんなことありませんか?
・単体テストのし忘れ
→司令塔:Jenkins
単体テスト以外も
Jenkinsと同じもの
Bamboo,Hadosonなど
CIツールの活用状況は?
・夏に調査を行った
前年もやっている
→回答者の偏り
エンタープライズ系多い
CIツール:利用したことがある12.5%
→9割近く使っていない
ツールは?
Jenkins 9.7%(去年8.5%)
Team FoundationServer
Hadoson→Jenkinsへ
CIツールの用途
テスト自動化 45%
→8割方は、ビルドの自動化
効果
テスト自動化は68.9%(若干低い)
ビルド、テスト環境の自動化は8割近くで高い
テスト自動化
適用していない53%
適用して効果あり、効果なし
CIツールと連携させるツール
・現状、構成管理ツールと連携
・ビルド
単体テスト以外のテストは現状低いが将来的に連携させたいらしい
課題
・使いこなす情報収集に手間がかかる
・自動化に踏み切れない工程がある
・CIツールのサーバー保守
・負荷が増える
・利用が進展しない
CIツールのお勧め導入ステップ
①CIツールとビルド
②CI+ビルド+品質分析(静的解析など)
③CI+ビルド+品質分析+単体テスト
④CI+ビルド+品質分析+単体テスト+画面テスト
こんなことありませんか
・テスト環境の設定ミス
環境構築ツール Chef
→正しい仕様になったか
環境テストツール Serverspec
Jenkins,Testキッチンを使う
NTTデータの活用事例
・knifeを使う
・自動化
・Jenkinsプラグインで可視化
環境構築ツールたくさん
・vagrant
・chef
・Serverspec
活用状況は?5.8%
Chef 2.5%
vagrant 2.0
テスト環境ではあんまり使わない
開発環境で
効果ある?7割くらい
課題
・情報収集に手間がかかる
・設定ファイル書き方分かりにくい
・設定ファイルメンテナンス
まとめ
・CIツールの導入:徐々に
・効果は大きい