見出し画像

第301回: 「ALTAのテキストをつくろう」55 (機能適合性テスト)

◀前の記事へ 次の記事へ▶︎


≡ はじめに

前回は、JSTQBのALTAシラバスの「4. ソフトウェア品質特性のテスト」の「4.2 ビジネスドメインテストの品質特性」について書きました。

ALTA連載の前回の復習は以下で模擬試験問題の確認を通して行います。

前回は試験に出る個所ではありませんし、重要なことも書いていないので一生懸命ふりかえらなくて大丈夫です。

そして、今回はJSTQBのALTAシラバスの「4. ソフトウェア品質特性のテスト」の「4.2 ビジネスドメインテストの品質特性」の「4.2.1 機能正確性テスト」、「4.2.2 機能適切性テスト」、「4.2.3 機能完全性テスト」についてまとめて書きます。

キャッチイメージは、機能適合性が「ニーズを満たしている程度」であることからです。



≡ 前回の復習

以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。


𝕏によるアンケート結果

投票の結果、選択肢2の「複数のイテレーションを通して実装されるユーザーストーリー」が70.8%と最も多かったのですが、正解は1の「変更していないすべての機能に対するリグレッションテスト」です。

1が正解の理由は、シラバス通りだからです。シラバスの該当部分を以下に引用します。通常は自動テストを用意するのでしょう。

ALTAシラバス54ページ

選択肢2の「複数のイテレーションを通して実装されるユーザーストーリー」が不正解な理由は、上記引用の一つ目の●にある「特定の」が「複数の」になっているからです。

アジャイルソフトウェア開発において、複数のイテレーションにまたがって1つのユーザーストーリーが実装されることは無くはないですが、問題文にある「通常」に反してしまいます。実際の試験でも問題文と選択肢をよく読むことは合格への近道と思います。

選択肢の3と4は、機能適合性ではないので、不正解ということになります。

復習は以上として、今回のnoteのテーマに移ります。



≡ 機能適合性テスト

「機能適合性テスト」は、ISO 25010(JIS X 25010)の製品品質モデルの機能適合性のテストです。こちらがアクセスしやすいかな。
下図をみたことがあるのではないでしょうか。

品質モデルというのは、品質を製品やサービスが持つ様々な特徴と考えて、その特徴を分類したものです。ソフトウェアでは長らく9126という標準があったのですが、その後継として25000シリーズ(SQuaREとも言います)ができました。日本人がリーディングしているんですよ。昔は東先生で、今は込山さん。
9126のときには、内部品質モデルと外部品質モデルに分かれていたのですが、25000シリーズの25010では「製品品質モデル」に統合されました。
それから、25000シリーズの品質モデルには「製品品質モデル」のほかに「利用時の品質モデル」と「データ品質モデル」があります。

「利用時の品質モデル」とは、(JIS X 25010より)「特定の使用状況において製品が使用されるときに,対話の成果に関係する五つの特性(これらのうち幾つかは,更に副特性に分けられる。)からなる」ものです。

一方、「製品の品質モデル」とは、(JIS X 25010より)「ソフトウェアの静的特徴及びコンピュータシステムの動的特徴に関係する,八つの特性(これらは,更に副特性に分けられる。)からなる」ものです。

3つ目の「データの品質モデル」とは、(JIS X 25012より)「データ品質要求事項を仕様化し,データ品質を評価するための枠組みを提供する特性の定義された集合。」です。こちらは、25010ではなく25012なのに注意が必要です。

※ ISOの方では、「利用時の品質モデル」がISO/IEC 25019:2023で大幅に変わっているとのことです。(辰巳さん情報)
※ 品質特性については、IPAが出している『つながる世界のソフトウェア品質ガイド』(PDF)を手元に置いておくと解説がとても良いので便利です。

それでは、JIS X 25010の「製品の品質モデル」から今回の「機能適合性」を読んでみましょう。

JIS X 25010より

規格を読むときには、「○○参照」が重要です。上だと「C.6参照」と書いてありますので参照してみましょう。

JIS X 25010より

ISO 25010を使うときには「機能」と「機能性」の違いを理解する必要があるということです。

ここが分からないと、機能適合性になんで「ニーズ」が出てくるのかがばやけます。というか、ぼやけていることに気が付きません。(自分がそうでした)
とは言ってもこの違いは慣れな要素も大きいので言葉で書いても中々伝わりません。また、品質工学でいう“機能性”は別の概念です。ややこしいですね。


■ 機能正確性テスト

シラバスに戻ります。短いので全文引用します。

機能正確性に関しては、明示的または暗黙的な要件にアプリケーションが準拠していることを検証する。また、計算の精度もテストすることがある。機能正確性テストでは、第3章で説明した多くのテスト技法を採用し、多くの場合、テストオラクルとして仕様または旧システムを使用する。機能正確性テストは、すべてのテストレベルで実施でき、データや状態の誤った処理を対象にする。

ALTAシラバス55ページ

JISで「機能正確性」を調べてみます。

機能正確性(functional correctness)
正確さの必要な程度での正しい結果を,製品又はシステムが提供する度合い。

JIS X 25010より

要は「ソフトウェアを動かして、正確な結果を出力することに対するニーズを満たすかどうかのテスト」です。ブラックボックステスト技法のところでやってきたことの多くは正確かどうかです。


■ 機能適切性テスト

こちらも短いので全文引用します。

機能適切性テストでは、その意図および指定された任務に対する一連の機能が適切であることを評価および妥当性確認する。このテストは、機能設計(ユースケース、ユーザーストーリーなど)に基づくことができる。機能適切性テストは、通常、システムテスト時に実施するが、統合テストの後半段階でも実施することがある。このテストで見つかる欠陥は、許容できると考えられる方法であってもシステムがユーザーのニーズを満たすことができないことを示している。

ALTAシラバス55ページ

JISで「機能適切性」を調べてみます。

機能適切性(functional appropriateness)
明示された作業及び目的の達成を,機能が促進する度合い。
 例 不要な段階を除いて,作業を完成するために必要な段階だけを利用者に提示する。
 注記 機能適切性は,JIS Z 8520における仕事に対する適合性に該当する。

JIS X 25010より

要は「結果がでるだけじゃだめで、無駄な操作がなくニーズを満たすことを機能がどのくらい促進しているか」です。

例えば、シンポジウムの申し込みで住所・氏名・年齢、、、を入力し【OK】を押したときに入力ミスがあったとします。このときに、全部入れ直す仕様であっても機能は提供しています。
でも機能適切性は悪いというように使います。

……機能と機能性の違いが少しわかってきたかもしれません。


■ 機能完全性テスト

こちらはちょっと長いのですが、ついでなので全文引用します。

機能完全性テストは、実装した機能の指定された任務およびユーザー目的に対するカバレッジを判定するために実行する。仕様アイテム(要件、ユーザーストーリー、ユースケースなど)と実装された機能性(機能、コンポーネント、ワークフローなど)の間のトレーサビリティは、必要となる機能完全性を判定するために不可欠である。機能完全性を測定する方法は、特定のテストレベルそして/または使用するSDLCによって異なる。例えば、アジャイルソフトウェア開発の機能完全性は、実装されたユーザーストーリーおよびフィーチャーに基づくことがある。システム統合テストでの機能完全性は、ハイレベルなビジネスプロセスのカバレッジに重点を置くことがある。
機能完全性の判定作業は一般的に、テストマネジメントツールを使用して行うことができるが、その場合、テストアナリストはテストケースと機能仕様アイテムの間のトレーサビリティを維持する必要がある。期待される度合いの機能完全性を達成できない場合、システムの実装が不完全であることが示唆される。

ALTAシラバス55ページ

JISで「機能完全性」を調べてみます。

4.2.1.1 機能完全性(functional completeness)
機能の集合が明示された作業及び利用者の目的の全てを網羅する度合い。

JIS X 25010より

要は「機能がニーズ(アジャイルならユーザーストーリーやフィーチャー)をどれほど満たしているか」です。
例えば、要求が100個あったとします。このときに実装した機能で、要求を50個しか満たせないときと99個満たせるときでは機能完全性が違います。



≡ JSTQB ALTA試験対策

いつものことですが、まずは、「学習の目的」を確認します。

TA-4.2.1 (K2)機能完全性、機能正確性、および機能適切性の特性をテストする場合に、どのテスト技法が適切であるかを説明する。
TA-4.2.2 (K2)機能完全性、機能正確性、および機能適切性の特性に関して、対象とする典型的な欠陥を定義する。
TA-4.2.3 (K2)機能完全性、機能正確性、および機能適切性の特性に関して、これらの特性を、ソフトウェア開発ライフサイクル内でテストするタイミングを定義する。

ALTAシラバス52ページ

章立てと学習目的がクロスしているので、注意しましょう。

上記の学習目的を整理すると下記のようになります。

機能完全性、機能正確性、機能適切性に対して、それぞれの

・ 違いが判ること
・ 典型的な欠陥をいえること
・ いつ(どのテストレベルで)テストするか決められること

(K2:理解、K3:適用、K4:分析)

まずは、「機能完全性、機能正確性、機能適切性の違いを説明できる」ようになればOK(あとは考えれば分かる)です。
シラバス記載の順番と違っているのですが、ISOの順番とあっているので、学習する順序は「機能正確性、機能適切性、機能完全性」が良いということかもしれません。

《問題》
 機能適切性ではないものはどれですか?

1. 印刷部数として1がデフォルト値として設定されている
2. 業務の流れとメニューの順番が合っている
3. 平均点について小数点以下1桁まで正しい値を出力する
4. 同じような機能がグルーピングされている

答えは次回に書きます。



≡  おわりに

今回は、「4.2 ビジネスドメインテストの品質特性」のうち、機能適合性テストの3兄弟である、「4.2.1 機能正確性テスト」、「4.2.2 機能適切性テスト」、「4.2.3 機能完全性テスト」がテーマでした。
「機能完全性、機能正確性、機能適切性」の違いを説明できるようになりましたでしょうか。
また、「機能」と「機能性」の違いは大丈夫ですか?

「機能テスト」というテストレベルを持っている組織があります。

コンサルのときに「御社の機能テストでは何をしていますか?」と質問をすると、ブラックボックステストのことだったり、性能や信頼性もテストしていたりと様々でした。

“名前なんてどうでもいい”という意見には一理あります。でも、何かの標準(今回のISO 25000シリーズもそのひとつ)に準拠して名前をつけるとMECEに、つまり抜け漏れなくテストができるのでお勧めです。

次回は、「4.2.4 相互運用性テスト」です。インターフェースは大切ですし、バグが多く見つかる個所でもあります。


いいなと思ったら応援しよう!