View
6.288
Download
7
Category
Preview:
Citation preview
リーン開発の本質 p102
バリューストリームマップは、常に顧客から始まり、顧客で終わる。開発においては、顧客が注文を出したときにバリューストリームマップの時計が動き出す。それが厳密にいつを指すのかは、組織ごとに
異なるだろう。
リーン開発の本質 p102
時計が止まるのは、ソリューションが導入されるか、稼働するかして、顧客の問題が解決したときである。バリューストリームマップには、時計の開始から終了までに発生する主要なイベントを時間軸
に並べる。
-継続的デリバリー p.153
抽象的に言えば、デプロイメントパイプラインとは、ソフトウェアをバージョン管理から取り出してユーザーの手に渡すまでのプロセスを自動化して表現したものだ。ソフトウェアを変更するたびに、リリースまでの複雑なプロセスを
通過することになる。
このプロセスにはソフトウェアのビルドも含まれている。その後に、テストやデプロイメントなどのさまざまなステージを経てビルドが進展するのだ。このそれぞれのステージで、多くのメンバーや複数のチームにまたがった共同作業が必要になる。デプロイメントパイプラインはこのプ
ロセスをモデル化している。
-継続的デリバリー p.153
そして、継続的インテグレーションおよびリリース管理用ツールを用いてこのプロセス実現することで、チェックインした変更がプロセスを進んでいく様子を見ながらコントロールできるようになるのだ。ソフトウェアはバージョン管理からチェックアウトされ、さまざまなテストやデプロイメントを行った上でユーザーにリリースされるので
ある。
-継続的デリバリー p.153
Design/Implement Deployment Pipeline
ビルドパイプラインを実装するというのは、テストの大まかな分割方針、フィードバック順序、実行頻度を決め、そして実装後には多様なテストを早期から設計、実装、実行することを意味する。
Test Strategyテスト戦略は一度つくって終わりというものではない
テスト戦略はテスト全体のアーキテクチャ、テストスイートの設計、テストケースの設計について方針を与える。そしてその方針を決定する要因は多岐にわたる
リスク(障害の影響、障害の可能性)
アプリケーション(ソフトウェアの品質、システムの性質、取得戦略)
テスト環境(開発ラボ、アルファテストまたはベータテスト、本番環境の模写、ユーザビリティテストラボ、モデルオフィス)
テスト要件(完全性、正確性、安定性)
レビュー戦略(ウォークスルー、インスペクション、机上チェック)
リソース(金、時間、人、スキル)
テスト目的(使用性の例証、破壊テスト、インタフェースのチェック、欠陥の予防、カバレッジ)
テストツール(何を自動化するか、どのようなツールを使用するか)
システムの状態遷移図はかなり大きく、網羅的に自動テストをすると半日以上かかってしまう
チームは自分が改修した部分のみしか把握していない、本当にシステムが正常にデプロイできているかを確認するテストが勘になりつつある。
共通部分の改修などで他への影響を素早く確認するためにもコンポーネントレベルでの動作が出来ていることを初にテストする
各開発者が把握していない機能が多数あることから、出来るだけ自分が把握していない機能との連携も自動的にテストケースを生成する
システムが正常にデプロイできているかを簡単に確認するためのテストを各デプロイ先でまず実行する。
システムが巨大なため、インテグレーションレベルでのテストはいくつかに絞るが、絞り方は出来るだけバグが出やすそうな部分をプログラムで判断させるようにすることで、自動テストを有効活用する。
システムが巨大なため、網羅的にテストするのは開発者がいない時間帯に自動的に実行させる。
受け入れステージでは、スモークテストおよびインテグレーションテストの一部を実行する
インテグレーションテストレベルではコンポーネントテストレベルにおいて組み合わせが起きなかったユースケース間のテストも存在する
コンプリヘンシブステージでは、スモークテストと網羅的なインテグレーションテストを実行する。
スモークテストに関しては、受け入れステージで行ったものと同様のテストケースを実行する。網羅的なインテグレーションテストは十分に実行可能な時間を確保して定期的に実行する。
網羅的なインテグレーションテストはシステムを表現しているグラフを可能な限り網羅する形でテストケースを生成する。
キャパシティステージでは、スモークテストとキャパシティテストを実行する。スモークテストに関しては受け入れステージで行ったテストケースと同様のものを実行する。
キャパシティテストはいわゆる性能テストと言ってよいだろう。1処理あたりの量を変化させたり、複数処理の実行だったり、並列数を変化させたりなどして、速度や時間を計測する。これらは本番環境に近ければ近いほどいい
UAT(User Acceptance Test)ステージではスモークテストと、手動テスト、アドホックテスト、探索的テストを実行する。スモークテストに関しては受け入れステージで行ったテストケースと同様のものを実行する。
このステージで、自動生成されないようなテストケースおよび実際に人間による判断が必要な部分をテストする。
本番ステージではスモークテストを実行する。この環境はいわゆるエンドユーザーが使用する環境。
スモークテストが完了したら、Webアプリケーションであればユーザーが使えるようにスワップを実行したり、サーバーを切り替えたりする
Recommended