【ソフトウェアテスト】ソフトウェア開発とテスト活動について②
「【ソフトウェアテスト】テストレベルについて ①」記事に記載のとおり、開発ライフサイクルモデルには形式や期間によってさまざまなモデルがあり、テストを実施するタイミングもモデルによってさまざまです。先に挙げた開発工程の例である要件定義→設計→開発→テスト→リリース/保守を一連の流れとする開発ライフサイクルも、このフローを開発期間の流れとして実施するのはあくまでウォーターフォール型モデルのようなシーケンシャルな開発ライフサイクルであり、イテレーティブ開発モデルやインクリメンタル開発モデルでは、各工程とテストが同時に進行したり、無駄をなくすことを目的としてあえて一部工程を省くこともあります。V字モデルは各工程とテストが同時進行する例です。要件定義の段階で要件定義に対するテストを実施、システム設計の時点で設計された内容に対してテストを実施といったかたちで、開発完了後にようやくテストではなく、常に工程の早期段階でテストを実施します。開発完了後のテストで不具合が検出されると工程の手戻りが発生してしまい、工数に無駄が生じますが、早期にテストを実施することにより、上流工程の段階で不具合や懸念を可能な限り取り去って開発作業の手戻りを少なくし、無駄な工数の増加を防いだり、最終的な品質の向上を目指すことができます。このようにV字モデルの左側で行う開発活動に対して早期にテストを実施して効率的な開発活動を目指す手法をシフトレフトと呼びます。イテレーティブ開発モデルやインクリメンタル開発モデルとなると、さらに各工程とテストが早期段階で実施されていきます。全体的な流れをより細かく迅速に行い、それを細かく繰り返していくサイクルが、現在のソフトウェア開発形式の主流になってきています。
テスト(運用・保守・サポート)
【パート1】ChatGPTをデスクトップ上から使えるようにデスクトップアプリ化してみた|Node.js & Electron
最近、ChatGPTという物がとても注目されています。私自身も、実際に使用してみてその性能に驚きました。簡単な質問はもちろん、前提条件を指定した文章の作成や、プログラミングのコード作成までできてしまいます。今回はその便利なChatPGTをデスクトップアプリ化し、どこからでも質問を行えるようにしていきたいと思います。
製造・コーディング(PG/バックエンド)
【初心者向け】コンピュータの仕組み
コンピュータの仕組みについてまとめました。コンピュータの仕組みは、業務の内容がバックエンドかフロントエンドかにかかわらず、知っておいた方が良い知識となっています。ぜひ最後までお読みください!
【初心者目線】Webアプリケーションの開発 第15回
【初心者目線】Webアプリケーションの開発 第15回について書きます。
【テストの種類】結合テスト
結合テストとは、システム開発におけるテスト手法の1つです。システム開発では、結合テストの他に単体、機能、システムテストなどがあり、開発工程によって実施するテストが異なります。結合テストは複数のプログラムやモジュールを同時に稼働して行う動作テストで、モジュール同士を結合した際に意図した通りに動作するかの検証を行います。結合テストは、事前にテスト仕様書を作成し、テスト項目を決めてからテストを行います。結合テストの項目は前段階の単体テストが全て完了していることが前提となります。結合テスト前に行う単体テストは、個々の機能やモジュールが単体で動作するかを検証するテストになります。単体テストで行ったテスト項目は結合テストでは殆ど行わないか、簡易的に確認することが一般的です。結合テストでは、ただ動作するかのテストを行うのではなく操作と機能動作の組み合わせが正しいか、仕様書通りに機能しているかについても検証します。単体テストによって個々で正しく動作することが確認された機能やモジュールを対象とし、機能間の連携や一連の機能が仕様書通りに正しく動作するのかを確認します。
【ソフトウェアテスト】テスト技法の有用性
世に存在するさまざまなソフトウェアテスト技法について、自身のナレッジ整理もかねて詳細をまとめようと思いました。ですが、いろいろなプロジェクトで開発エンジニア・PdM・PM・QAなどさまざまな方と関わらせていただく中で、QAテスター/テストエンジニア等のポジションの方以外には、ソフトウェアテストに技法が存在するということや、テスト技法を用いる意味とメリットについてあまり認識されていないかも知れないと思いました。まずはソフトウェア開発現場でソフトウェアテスト技法を用いたテストを実施することの理由などについてまとめます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】状態遷移テスト
何かの操作を行うと何かのアクションを実行して実行後の状態になり、実行後の状態からさらに次の操作を行うとまたアクションを返すといったように、ソフトウェアに限らず何かしらの機能を持つものは、機能を使う前と機能を使った後でそれぞれ状態が変わります。状態が仕様想定どおりに遷移しているかどうかを確認する技法として、状態遷移テストがあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】同値分割法/境界値分析
入力されるデータによって判定を変えるという機能は、ソフトウェアの機能として広く一般的に使われます。自己責任で金銭を扱うサービスを利用する際には、18歳以上か未満かで利用の可不可を判定するという年齢確認機能が適用されていることがあります。ユーザーが任意にパスワードを設定できる機能の場合は、文字数が想定より少ない場合はセキュリティレベルが低いため無効として、文字数が想定より多い場合も仕様想定外として無効とするシステムもあります。こういった機能を対象に検証を実施する際、入力可能な数値を全て検証対象としてテストを実施しようとすると、非常に多くの工数を割かねばならないため、入力想定範囲の中で同じ処理を返す想定の数値は1つのグループとして扱い、処理の変わる境目に狙いを付けてテストするというのが、「同値分割法」と「境界値分析」です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】デシジョンテーブルテスト
さまざまな入力値が想定されており、それぞれの入力値を統合した結果として複数の状態を返すようなシステム仕様に対しては、デシジョンテーブルテスト技法を用いることで、複雑な条件を整理することができます。サービス利用時に新規アカウントを作成するような場面で、ユーザー情報を入力して登録する機能を想定した場合、[名前(ローマ字)][よみがな][任意のパスワード][パスワード確認入力][年齢][住所]などを入力し、それらの入力値が全て正常であれば登録処理を進めて、入力値のうち1つでも正常ではない値が入力されている場合は、エラーメッセージを表示して再度入力を促すようなシステムがあります。対象のステータスによって期間限定のサービス適用有無を判定するようなシステムでも、サービス対象となるかどうかを複数条件から判定するような仕様が想定されます。5年以上サービスを利用していて、アカウントの利用者ランクがゴールド以上の場合、商品購入時の金額から5%をサービス固有ポイントとして還元するというイベントを、n年n月n日~n年n月n日まで開催するといった追加開発システムのテストをする際に、デシジョンテーブルによってテスト対象を適切に抽出できます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】クラシフィケーションツリー技法
クラシフィケーションツリー技法は主に、複数のテスト対象と各対象の値が複数関連する状況で、各対象を木構造で図示することで、テスト対象の機能や状態を階層的に分類し、その組み合わせや変数いくつ分を対象とするか等の組み合わせの強度について、整理検討するときに用いる技法です。ドメイン分析テスト技法の際には、複数の境界値による動作変化の関連性と、その組み合わせで想定される複数パターンの網羅を表形式で表現する方法を取りましたが、クラシフィケーションツリー技法では、1つの機能に関わる複数の要素、各要素に想定される複数パターン、各パターンで想定される変数のパターンと、想定される内容を木構造の図で上から下へ記載して整理する方法を取ります。ブラウザベースでWebサイトを作成して、ウィンドウの表示サイズをPCサイズのレイアウトとスマホサイズのレイアウトで2パターン適用するとして、PCサイズレイアウトが正常に適用されているかを確認するときのテストスコープについて、ブラウザは[GoogleChrome][MicrosoftEdge][Firefox][Safari]をテスト対象と仮定し、各ブラウザのサイズや文字サイズ設定を変更しても問題ないか、さらに設定するウィンドウサイズは想定の最小値・最大値・全画面のパターンで、文字サイズは通常から何%拡大を対象とするかなどを考慮し、どの組み合わせでのテストを必要とするかを検討するといったような場合には、当該技法を用いることで視覚的に情報を整理しやすくなります。
テスト(運用・保守・サポート)
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
ActiveReports学習1
頂いた案件でGrapecityのActiveReportsの開発経験という条件があったため、自分の復習と併せて学習していきたいと思います。
製造・コーディング(インフラ)
ITパスポート試験過去問例
ITパスポート試験は、数種類ある情報処理技術者試験の中で、もっとも初級の入口にあたる試験です。ちなみにお題目は「ITに携わる人職業人として誰もが共通に備えておくべき基礎的な知識をはかる」というものです。パソコンが広く活用されるようになった現代では、是非ともおさえておきたい基礎知識だといえます。といっても、相変わらずITといえば慣れない人にはチンプンカンプンな横文字専門用語が目白押し。そのためにも試験では、「まず解説書を一冊完読して、用語や計算になれること」が欠かせません。本記事では、初心者向けにITパスポートの特徴や過去問に触れていきたいと思います。
【初心者向け】Packet Tracerでネットワークを学ぶ(CLI操作の基本編①)
ルータ初期設定編ではPacket Tracerを使ってルータを直接操作し色々な設定を試してみたいと思います。 まずCisco製品のルータにはPCと同様にOSがインストールされています。 それが「Cisco IOS(Internetwork Operating System)」です。 スイッチでもこのOSを利用しています。 Cisco IOSはWindowsのようなグラフィカルなインターフェースではなくコマンド入力のみで様々な操作を行うインターフェースになります。 コマンドで操作するインターフェースのことを「CLI(Command Line Interface)」と言います。
詳細設計(内部設計)(インフラ)
Springを使ったDBデータ検索画面の作成
今回はJavaから画面へ値を渡すプログラムではなく、 画面からJavaへ値を渡して、DBからデータを取得し結果を画面へ表示する 実装方法を紹介していきたいと思います。
製造・コーディング(PG/バックエンド)
Javaを使ったオセロゲームの作成
今回はJavaでオセロゲームを作成したいと思います。 とりあえず何かゲームを作りたくてお手軽にできそうだったので オセロをコンソール画面を使って作っていきたいと思います。 環境 Eclipse(Version: 2022-09 (4.25.0)) Java17
製造・コーディング(PG/バックエンド)
【初心者向け】Packet Tracerでネットワークを学ぶ(インストール編)
ネットワークエンジニアとしてCisco社のルータやスイッチの運用業務を遂行するには、 コマンドの知識やどのように機器が通信させているかよく理解しておく必要があります。 またCCNAといったネットワークのベンダー資格でも実際にコマンドを記述するシミュレーション問題が出題されることもあるので、自身のネットワークスキル向上には日頃からコマンド操作に慣れておく必要があります。 知識を定着や操作の慣れには座学だけでなく実際に機器に触れコマンドを入力し結果を確認することが一番なのですが、ルータやスイッチ等のネットワーク機器はいずれも高額であり、中古でもそれなりの値段となるので初心者が自宅に環境を作成することは簡単ではありません。 そこでCisco社のルータやスイッチに簡単に機器の設定、環境の構築、コマンドの投入練習といったことができるアプリケーションが「Packet Tracer」となります。
詳細設計(内部設計)(インフラ)
