カレンダー
04 | 2025/05 | 06 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
カテゴリー
ベストセラー
最新トラックバック
カウンター
PR
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
テスト工数と分割リリースについて
-----
現在携わっている案件でシステムテストをする際、
気になることがあったのでちょっと書いてみる。
稼働中のシステムに新機能を追加する場合、
新機能が正しく動作することを確認するだけでなく、
既存機能も正しく動作することを確認しなければなら ない。
このテストのことを「リグレッションテスト」(regression test)とか
「回帰テスト」、「退行テスト」とか言ったりする。
ここで、定性的に次のことが言える。
(1)既存システムの規模が大きいほど、リグレッションテストの工数も大きくなる。
(2)リリース回数が多いほど、リグレッションテストの回数も多くなる。
では、定量的に表現するとどうなるか、具体的な数値で計算してみる。
■前提条件
・既存システムの規模は、20機能。
・10ヶ月後までに10機能を新機能としてリリースする。
・分割してリリースする際は、均等に分割する。
・リリースの際は全機能(既存機能+新機能)のテストを行う。
・各機能のテスト工数は同程度であるとする。
・テスト工数の単位は「機能」で表す。
■計算パターン
・パターンA・・・10ヵ月後に10機能まとめて1回リリース。
・パターンB・・・5ヶ月ごとに5機能ずつ2回リリース。
・パターンC・・・2ヶ月ごとに2機能ずつ5回リリース。
■パターンAの場合
1回目のリリース:30機能テスト
(既存機能20+新機能10)
テスト工数合計:30機能
■パターンBの場合
1回目のリリース:25機能テスト
(既存機能20+新機能5)
2回目のリリース:30機能テスト
(既存機能25+新機能5)
テスト工数合計:25+30=55機能
■パターンCの場合
1回目のリリース:22機能テスト
(既存機能20+新機能2)
2回目のリリース:24機能テスト
(既存機能22+新機能2)
3回目のリリース:26機能テスト
4回目のリリース:28機能テスト
5回目のリリース:30機能テスト
テスト工数合計:22+24+26+28+30=130機能
■まとめ
既存機能:20
新機能:10
1分割リリースの場合:30
2分割リリースの場合:55
5分割リリースの場合:130
■考察
パターンCの足し算を眺めてみると、
初項22、末項30、公差2、項数5
の等差数列の和であることに気づく。
つまり、等差数列の和の公式が利用できる。
テスト工数合計をSとすると、
S=(初項+末項)×項数÷2
=(22+30)×5÷2
=130
ここで、さらに一般化してみる。
既存機能数をA、新機能数をD、リリース分割数をNとすると、
公差はD/N、初項はA+D/N、末項はA+Dとなる。
すると、テスト工数合計Sは、
S=(初項+末項)×項数÷2
=(A+D/N+A+D)×N÷2
=(A+D/2)N+D/2
と表せる。
つまり、テスト工数合計Sは、
リリース分割数Nの1次関数になることが分かる。
と、こんな感じで計算して気が済んだので、とりあえず終了とする。
-----
現在携わっている案件でシステムテストをする際、
気になることがあったのでちょっと書いてみる。
稼働中のシステムに新機能を追加する場合、
新機能が正しく動作することを確認するだけでなく、
既存機能も正しく動作することを確認しなければなら ない。
このテストのことを「リグレッションテスト」(regression test)とか
「回帰テスト」、「退行テスト」とか言ったりする。
ここで、定性的に次のことが言える。
(1)既存システムの規模が大きいほど、リグレッションテストの工数も大きくなる。
(2)リリース回数が多いほど、リグレッションテストの回数も多くなる。
では、定量的に表現するとどうなるか、具体的な数値で計算してみる。
■前提条件
・既存システムの規模は、20機能。
・10ヶ月後までに10機能を新機能としてリリースする。
・分割してリリースする際は、均等に分割する。
・リリースの際は全機能(既存機能+新機能)のテストを行う。
・各機能のテスト工数は同程度であるとする。
・テスト工数の単位は「機能」で表す。
■計算パターン
・パターンA・・・10ヵ月後に10機能まとめて1回リリース。
・パターンB・・・5ヶ月ごとに5機能ずつ2回リリース。
・パターンC・・・2ヶ月ごとに2機能ずつ5回リリース。
■パターンAの場合
1回目のリリース:30機能テスト
(既存機能20+新機能10)
テスト工数合計:30機能
■パターンBの場合
1回目のリリース:25機能テスト
(既存機能20+新機能5)
2回目のリリース:30機能テスト
(既存機能25+新機能5)
テスト工数合計:25+30=55機能
■パターンCの場合
1回目のリリース:22機能テスト
(既存機能20+新機能2)
2回目のリリース:24機能テスト
(既存機能22+新機能2)
3回目のリリース:26機能テスト
4回目のリリース:28機能テスト
5回目のリリース:30機能テスト
テスト工数合計:22+24+26+28+30=130機能
■まとめ
既存機能:20
新機能:10
1分割リリースの場合:30
2分割リリースの場合:55
5分割リリースの場合:130
■考察
パターンCの足し算を眺めてみると、
初項22、末項30、公差2、項数5
の等差数列の和であることに気づく。
つまり、等差数列の和の公式が利用できる。
テスト工数合計をSとすると、
S=(初項+末項)×項数÷2
=(22+30)×5÷2
=130
ここで、さらに一般化してみる。
既存機能数をA、新機能数をD、リリース分割数をNとすると、
公差はD/N、初項はA+D/N、末項はA+Dとなる。
すると、テスト工数合計Sは、
S=(初項+末項)×項数÷2
=(A+D/N+A+D)×N÷2
=(A+D/2)N+D/2
と表せる。
つまり、テスト工数合計Sは、
リリース分割数Nの1次関数になることが分かる。
と、こんな感じで計算して気が済んだので、とりあえず終了とする。
PR
この記事にコメントする
最新記事
◆ 最近の日課
(2022/02/15)
◆ やる気のない迷惑メール
(2016/01/22)
◆ 地図を見ていて気づいたこと
(2015/12/18)
◆ もうすぐ出発。
(2014/08/15)
◆ 橋本さん?
(2014/07/18)
◆ 最近分かったこと。
(2014/07/02)
◆ 夕方に部屋の窓を開けたら・・・。
(2014/07/01)
◆ 電気オーブンで魚を焼いてみた。
(2014/05/08)
◆ Amazonギフト券が届いた。
(2014/04/26)
◆ IHでの料理は難しい?
(2014/04/18)
◆ 武蔵浦和ライフの終わり。川口ライフの始まり。
(2014/04/09)
◆ ポポラマーマ 2014.04.05
(2014/04/06)
◆ 武蔵浦和の桜2014。
(2014/04/04)
◆ ビーンズ武蔵浦和、閉店!
(2014/03/31)
◆ 休日出勤してきた話。
(2014/03/21)
◆ 久しぶりの休日出勤。
(2014/03/19)
◆ 別所沼公園に行ってきた。
(2014/02/14)
◆ 今日の雪度はなかなか。その2
(2014/02/08)
◆ 今日の雪度はなかなか。
(2014/02/08)
◆ 激しい気温差。
(2014/02/05)
◆ 「店休」?
(2014/02/04)
◆ 日本の米はおいしいらしい。
(2014/02/04)
◆ 電車の中を見渡してみると・・・。
(2014/01/23)
◆ 電車で席を譲ろうとしたところ・・・。
(2014/01/20)
◆ 武蔵浦和駅が新しくなる!
(2014/01/08)
ブログ内検索
アーカイブ
プロフィール
HN: Atchi(あっち)
年齢: 41
性別: 男性
誕生日:
1983/07/28
職業: IT業界の雑魚
趣味: 映画、音楽、ゲーム、PC、歴史
自己紹介:
活動の記録をWebに残したい、
文章力を向上させたい、
2012年こそは何か始めたい、
そんな思いからブログを始めてみました。
稚拙な文章・内容ですが、
お付き合いいただけたら幸いです。
活動の記録をWebに残したい、
文章力を向上させたい、
2012年こそは何か始めたい、
そんな思いからブログを始めてみました。
稚拙な文章・内容ですが、
お付き合いいただけたら幸いです。