innovation
〜すぐそこにある品質保証〜
Corporation, Okinawa JAPAN
宮里 忍
2013年08月01日
目的
品質って何? について考えてみる
そこから各種開発手法が導き出されていることを確認する
学術的なことはとりあえず無視して、机上の空論でもなく、各種開発手法が単に理に適っていることを確認する
各種開発手法は単なるベストプラクティスであり、それらは現場に合うように我々が変えていくもの
品質保証はすぐそこにある(ってゆいたい)
目次
品質の性質
V字モデルに見る品質保証
品質保証の性質
品質保証の方法
品質の性質
品質の性質
要件定義も設計も実装も「情報を作りこむ」という作業
品質=作りこんだ情報の確からしさ
品質は「テスト(確認)」と「レビュー」でのみ保証される
状態が遷移する毎に、時間の経過と共に、情報量は増大する
エントロピー(情報量)増大則 : S(A) <= S(B)
難しいことは抜きにして、感覚的にも増大することを経験している
保証すべき品質は時間の経過と共に増大する
V字モデルに見る品質保証
前半の「\」は「品質の作りこみ」
後半の「/」は「品質の確認」
品質保証の性質
品質保証とは「品質の作りこみ」に対する「品質の確認」
保証しなければならない品質は開発手法とは関係ない
品質を100%保証することはできない
だから、品質を保証する工程を全部やれば良いというものではない
「品質の作りこみ」と「品質の確認」の間隔が大きくなるとリスクも大きくなる
ここでのリスクとは「忘却」と「手戻り」である。
品質保証の性質
間隔がある部分
「要求分析」と「システムテスト」の間隔
「基本設計」と「結合」の間隔
「実装」と「コンパイル」の間隔
間隔を短くすれば良いんじゃまいか?
アジャイルソフトウェア開発
「要求分析」と「動作するシステム」の間隔を短くする手法
テスト駆動
「品質の作りこみ」に対する「品質の確認」の間隔を短くする手法
W字モデル
「品質の作りこみ」に対する「品質の確認」の間隔を短くする手法
CI
CI(continuous integration)=継続的インテグレーション
「実装」と「結合」の間隔を短くする手法
「実装」と「結合」を継続的に繰り返す手法
step by step 開発
「実装」と「単体テスト」の間隔を短くする手法
「単体テスト」は自動化すると効果的で、副作用としてリファクタリング可能になる
自動生成と品質保証
「設計」と「実装」の間隔を短くする手法
「設計」と「実装」を継続的に繰り返す手法