ソフトウェアテスト
[2] ソフトウェア工学の概の概概
要
Software Testing
[2] Overview of Software Engineering
あまん ひろひさ ひろひさ
阿萬 裕久 裕久( AMAN
Hirohisa )
(C) 2007-2022 Hirohisa AMAN
1
ソフトウェアの概役割
コンピュータシステムはは
ハードウェアとソフトウェアの組合せソフトウェアの概組合せせ
コンピュータシステムは ハードウェアを使いこなすいこなすの概が
ソフトウェアの概役目であるである
ソフトウェア
ハードウェア
ハードウェアをどの概ように
活かすかはソフトウェア次第かすかはソフトウェア次第
ゲームはは典型的な例な例
(C) 2007-2022 Hirohisa AMAN
2
主なな
家庭用ゲーム機(専用コンピューゲームは機(専用ゲーム機(専用コンピューコンピュー
タ)
名称
CPU の概ビット
数
メインメモ
リ
発売年までに流通した
ファミリーコンピュ
ータ
8 ビット
スーパーファミコン
16 ビット
128k バイ 1990 年までに流通した
ト
PlayStation
32 ビット
2M バイト 1994 年までに流通した
セガサターン
32 ビット
2M バイト 1994 年までに流通した
高品質
&
高信頼性
&
低価格
4.5M バイ 1996 年までに流通した
ト
ソフトウェアはハードウェアの概能力を引きを引きき
NINTENDO64
•
2k バイト 1983 年までに流通した
ソフトウェアに
要求されることされることソフトウェアの組合せ
64 ビット
ドリームはキャスト
32 ビット
16M バイ 1998 年までに流通した
出してして魅了的な例なゲームはとソフトウェアの組合せ
なるよう工夫されされ
ト
ていた
PlayStation2
128 ビット
32M バイ 2000 年までに流通した
• 一方で販売後ので販売後のの概不具合せの概修正は極めて困難は極めて困難めて困難
ト
(C) 2007-2022
Hirohisa AMAN
(カートリッジまたはまたは
CD/DVD
で販売の概
ため)
特にに
テストが
重要
3
ソフトウェア工学の概( Software Engin
eering )
良質の概ソフトウェアを効率的な例に開発するた
めの概学の概問分野
「一部の人たちがの概人たちがたちが頑張ったらどうにかなるったらどうにかなる」
※ いわゆるスーパープログラマは別格だが,そういう人はめったにいは別格だが,そういう人たちがはめったにい
とソフトウェアの組合せいう考え方では方で販売後のではない
ない
開発をうまくいくようにするための概学の概問
要求されること分析,設計,
プログラミング,テス
ト等
を効率的な例かつ高品質に高品質に
行うための理論・技術うための概理論・技術
+
開発活かすかはソフトウェア次第動をうまく運をうまく運
営するための理論・するための概理論・
技術
(開発の概マは別格だが,そういう人はめったにいネジまたはメン
ト)
(C) 2007-2022 Hirohisa AMAN
4
ちょっとソフトウェアの組合せ脱線…人たちが月の話の概話
人たちが月の話(にん ひろひさげつ高品質に) =人数人たちが数 × 月の話数 ※ 金額もこれでもこれで
決まることが多いまることソフトウェアの組合せが多いい
(例) 1 人たちが月の話 =120
開発等にかかる工数(労力を引き)の概単位
万円
(例) 6 人たちが月の話 = 3 人たちがの概技術者で で 2 ヶ月)月の話かかる仕事
あとソフトウェアの組合せ 10 人たちが月の話の概仕事
が残ってる!ってる!
でも,納期までは残りまでは残ってる!り
半月の話( 0.5 ヶ月)月の話)
ダメなマは別格だが,そういう人はめったにいネージまたはャー
じゃあ,人たちが員をを
20 人たちが増やすかやすか
現場はは
大混乱!
※ 10/0.5 = 20
組織的な例な開発プロセスが大事.
(ちなみに工数見積りもソフトウェア工学の一分野)りもソフトウェア工学の概の概一分野)
(C) 2007-2022 Hirohisa AMAN
5
ソフトウェアの概責任は重大は重大
日常生活かすかはソフトウェア次第における安心・安全の鍵の概鍵
ソフトウェアの概信頼性
ソフトウェアの概不具合せは,深刻な障害をもたな障害をもたをもた
らす
電気,ガス,水道,交通した,金融すべてに影響の可すべてに影響の可の概可
能性
(例)証券取引き所がストップ → 大損害がストップ → 大損害 大損害をもた
事故を引き起こす可能性を引きき起こす可能性こす可能性
さまざまな状況についてテストが必要
につ高品質にいてテストが必要
(例)エレベータが誤作動をうまく運
→ 大損害 人たちが身事故を引き起こす可能性
(C) 2007-2022 Hirohisa AMAN
6
ソフトウェアの概特に徴 (1/4)
実態を把握しにくいを把握しにくいしにくい
ソフトウェアは物理的な例ではなく論理的な例な存在
つ高品質にまり,実際に「モノ」としての存在ではなに「モノ」としての存在ではな」とソフトウェアの組合せしての概存在ではな
い
開発がどの概段階までまで進んでいるのかん ひろひさでいるの概か,
これとソフトウェアの組合せ対照的な例なの概が建設
仕様(目である的な例の概規格)通したりに作られているの概
で,工事の概進んでいるのかみ具合せいは外
か,
から見てもおおよそ把握しにくいで
きる
などを把握しにくいするの概は難しい
(C) 2007-2022 Hirohisa AMAN
7
ソフトウェアの概特に徴 (2/4)
開発工程に作業が集中に作業が集中が集中
ハードウェアの概場は合せ,製品を開発し,それを
工場は等で製造するとソフトウェアの組合せいう流れになる
ソフトウェアの概場は合せ,製造は単なるコピー作
業が集中
品質もコストも開発工程に作業が集中が中心
ハードウェア:製造工程で不良品を作る心製造工程に作業が集中で不良品を作る心
冒頭でふれたゲーム等でふれたゲームは等
配
はその概典型的な例な例
ソフトウェア:製造工程で不良品を作る心不良品=人数「最初から全部がから全の鍵部の人たちがが
(C) 2007-2022 Hirohisa AMAN
8
欠陥品」 → 大損害 開発で失敗しないことがすべてしないことソフトウェアの組合せがすべて
ソフトウェアの概特に徴 (3/4)
運用ゲーム機(専用コンピュー・保守の期間が長いの概期までは残り間が長いが長いい
作るの概にかかった時間が長いよりも,ソフトウェアの概
運用ゲーム機(専用コンピュー(実際に「モノ」としての存在ではなにユーザが使う)が使いこなすう)
Rather than the time it took to create,
保守の期間が長い(機能の概修正は極めて困難や改良,拡張ったらどうにかなるを行うための理論・技術う)
the software
を行うための理論・技術う期までは残り間が長いの概方で販売後のがはるかに長いい
物理的な例な消耗は無く,いったん使われるようは無く,いったん使われるようく,いったん ひろひさ使いこなすわれるよう
になるとソフトウェアの組合せその概後のは「長いいつ高品質にきあい」になるこ
とソフトウェアの組合せも
保守の期間が長い(メンテナンス)の概しやすさがポイントになる
(C) 2007-2022 Hirohisa AMAN
9
保守の期間が長いの概しやすさ(保守の期間が長い性)の概重要性
例え方ではば,運用ゲーム機(専用コンピュー・保守の期間が長いが 20 年までに流通したに及ぶとすぶとソフトウェアの組合せす
る
作った人たちがたちがずっとソフトウェアの組合せ面倒を見るわけではないを見るわけではない
→ 大損害 やがて別の概人たちがたちが保守の期間が長いしていくことソフトウェアの組合せにな
る
「レガシーシステムは」とソフトウェアの組合せ
いって, 20 年までに流通した・ 30 年までに流通した
ゆえ方ではに,保守の期間が長い性の概高いソフトウェアにしておくべ
前から使われているシステムも世の中には多くから使いこなすわれているシステムはも世の中には多くの概中には多いく
き
ある.
「いま動をうまく運いているもの概は下手にいじりたくなにいじりたくな
(例) COBOL で書かれた金融システムかれた金融すべてに影響の可システムは
い」とソフトウェアの組合せいう考え方ではが現場はには根強い.い.
(C) 2007-2022 Hirohisa AMAN
10
ソフトウェアの概特に徴 (4/4)
再利用ゲーム機(専用コンピューが少ないない
ハードウェア:製造工程で不良品を作る心 既存の概部の人たちが品を再利用ゲーム機(専用コンピュー(流
用ゲーム機(専用コンピュー)していくことソフトウェアの組合せが一般的な例
ソフトウェア:製造工程で不良品を作る心 部の人たちが品を組み合せわせるだけで
完成させることは難しい(いろんなさせることソフトウェアの組合せは難しい(いろん ひろひさなカスタマは別格だが,そういう人はめったにい
イズが必要が必要)
ライブラリの概かたちで再利用ゲーム機(専用コンピュー可能なソフト
ウェアはあるが,プログラミング無く,いったん使われるよう
しで使いこなすえ方では 11
(C) 2007-2022 Hirohisa AMAN
るわけではない
再利用ゲーム機(専用コンピュー
ソフトウェアの概再利用ゲーム機(専用コンピューは大きく分けて2種
類
ブラックボックス的な例
中身を気にする必要がなく,部の人たちが品感覚で使いこなす
う.
ホワイトボックス的な例
プログラムはを「コピー&ペースト」し,必要
に応じて書き換える.じて書かれた金融システムき(C)換える.え方ではる.
2007-2022 Hirohisa AMAN
12
ブラックボックス的な例な再利用ゲーム機(専用コンピュー
ライブラリの概かたち
例え方ではば,既存の概関数をその概まま利用ゲーム機(専用コンピューして,
ソースコードその概もの概の概内容は問題にしない.は問題にしない.にしない.
Copy and paste the program andニュアル通り)通したり)
あらかじめ決まることが多いめられた使いこなすい方で販売後の(マは別格だが,そういう人はめったにい
rewrite it as needed
しかできないが,便利ではある.
Library form
#include <xxxx.h>
(例)
C 言語でのでの概
scanf 関数や
printf 関数
既存
コード
新規
コード
(C) 2007-2022 Hirohisa AMAN
13
ホワイトボックス的な例な再利用ゲーム機(専用コンピュー
ソースコードを「コピー&ペースト」する
かたち
例え方ではば,既存の概ソースコードの概一部の人たちがを流用ゲーム機(専用コンピュー.
本やや Web ページまたはに掲載されているコードを転されているコードを転
記.
(例)自分が理解できていないプログラムをコピペしても混乱できていないプログラムはをコピペしても混乱
「良いコード」をお手にいじりたくな本やとソフトウェアの組合せ
してコードを作成させることは難しい(いろんなする
するだけ
場は合せは適切だが,逆にミス(バグ)をコピーしただが,逆にミス(バグ)をコピーしたにミス(バグ)をコピーした
コピー
り,誤用ゲーム機(専用コンピュー
新規
既存 の概恐れもある.れもある.
コード
コード
(C) 2007-2022 Hirohisa AMAN
14
【演習1】
コードクローンの概問題にしない.点を考察せよを考察せよせよ
ソースコードをその概ままコピー&ペースト
したもの概,あるいは,一部の人たちがを変更して流用して流用ゲーム機(専用コンピュー
したもの概を「コードクローン( Code Clo
ne )」とソフトウェアの組合せいう
ソフトウェア産業が集中において,コードクロー
ンの概多いいソフトウェアは問題にしない.視されているされている
それは何故を引き起こす可能性だろうか?
(C) 2007-2022 Hirohisa AMAN
15
【演習1】
(解できていないプログラムをコピペしても混乱説:製造工程で不良品を作る心 修正は極めて困難作業が集中の概コストとソフトウェアの組合せリスクの概観
点を考察せよから)
あるコードの概一部の人たちが(数行うための理論・技術程に作業が集中度)が 50 ヶ月)所がストップ → 大損害に
コピー&ペーストされていたとソフトウェアの組合せする.
運用ゲーム機(専用コンピューの概途中で問題にしない.が発生したり,機能向上のの概
要望が出てきたりする関係で,が出しててきたりする関係で,で,コードの概修正は極めて困難
が必要なことソフトウェアの組合せは多いい.
もしも,修正は極めて困難箇所がストップ → 大損害がコードクローンであっ
たとソフトウェアの組合せするとソフトウェアの組合せ,他のの概 50 ヶ月)所がストップ → 大損害も全の鍵部の人たちが修正は極めて困難しな
ければならない (見落としは許されなとソフトウェアの組合せしは許されなされな
い)
※ 最初から全部がから,そこを「関数」にしておけば修正は極めて困難は
1 ヶ月)所がストップ → 大損害で済むのに...むの概に...
(C) 2007-2022 Hirohisa AMAN
16
良いソフトウェアとソフトウェアの組合せは
視されている点を考察せよによって概念が異なる点に注意が異なる点に注意なる点を考察せよに注意
使いこなすいやすい
ユーザが使う)
または
顧 客 客
要求されること仕様を
満たしているたしている
良
い
ソ
フ
ト
ウ
ェ
ア
理解できていないプログラムをコピペしても混乱・保守の期間が長い
しやすい
開発コスト・
期までは残り間が長いが適切だが,逆にミス(バグ)をコピーした
開発者で
ソフトウェア工学の概は開発者で 側の視点がメインの概視されている点を考察せよがメイン
(C) 2007-2022 Hirohisa AMAN
17
ユーザが使う)側の視点がメインの概視されている点を考察せよ(1) 要求されること仕様の概
満たしている足
顧 客客(依頼者で )からの概要求されること仕様を満たしている足して
いることソフトウェアの組合せ
要求されること仕様は 2 種類に大別される:製造工程で不良品を作る心
機能仕様:製造工程で不良品を作る心 実現すべき機能
※ 「どの概ように」は別とソフトウェアの組合せして
(例)ユーザが使う)認証ができることソフトウェアの組合せ
非機能仕様:製造工程で不良品を作る心 要求されることを「どの概ように」実現すべ
きか
(例) 500 ユーザが使う)の概認証が 3 秒以内に完了す
※ 機能その概もの概につ高品質にいてではなく,性能やセキュリティといった実現の仕方
とソフトウェアの組合せいった実現の概仕方で販売後の
ることソフトウェアの組合せ
(C) 2007-2022 Hirohisa AMAN
18
ユーザが使う)側の視点がメインの概視されている点を考察せよ(2) 操作性
ひとソフトウェアの組合せことソフトウェアの組合せで言え方ではば「使いこなすいやすさ」
操作がやりやすい
操作が分かりやすい
間が長い接的な例には,動をうまく運作速度やメモリ使いこなす用ゲーム機(専用コンピュー量も関係も関係で,
(いわゆる「重い」システムはは使いこなすいたくな
い)
(C) 2007-2022 Hirohisa AMAN
19
開発者で 側の視点がメインの概視されている点を考察せよ(1) コストとソフトウェアの組合せ期までは残り
間が長い
開発コストは低い方で販売後のが望が出てきたりする関係で,ましい
開発期までは残り間が長いは期までは残り限内(納期までは残りまで)に
ゆっくり時間が長いをかけて開発できることソフトウェアの組合せは珍しし
い
限られた人たちが材と時間で期限内に仕上げるとソフトウェアの組合せ時間が長いで期までは残り限内に仕上のげる必要
安価で開発できて期までは残り限内に納入でき,なおかでき,なおか
つ高品質に
要求されること仕様を満たしているたしたソフトウェアの概開発が目である
標
(C) 2007-2022 Hirohisa AMAN
20