基本設計・詳細設計とは
システム開発にはさまざまな工程があります。要件定義・基本設計・詳細設計などなどの工程が存在します。設計書を作成するのは、開発工程の前段階である「設計」工程。設計工程はシステム開発の方向性を左右するため、特に重要とされています。さらに設計工程は「基本設計」と「詳細設計」に分かれます。設計業務に携わっていなくても、名前は聞いたことがあるという方は多いのではないでしょうか。ただ、具体的にどのような違いがあるのか明確に理解できていない方もいるかもしれません。
基本設計(外部設計)(PG/フロントエンド)
【テストの種類】結合テスト
結合テストとは、システム開発におけるテスト手法の1つです。システム開発では、結合テストの他に単体、機能、システムテストなどがあり、開発工程によって実施するテストが異なります。結合テストは複数のプログラムやモジュールを同時に稼働して行う動作テストで、モジュール同士を結合した際に意図した通りに動作するかの検証を行います。結合テストは、事前にテスト仕様書を作成し、テスト項目を決めてからテストを行います。結合テストの項目は前段階の単体テストが全て完了していることが前提となります。結合テスト前に行う単体テストは、個々の機能やモジュールが単体で動作するかを検証するテストになります。単体テストで行ったテスト項目は結合テストでは殆ど行わないか、簡易的に確認することが一般的です。結合テストでは、ただ動作するかのテストを行うのではなく操作と機能動作の組み合わせが正しいか、仕様書通りに機能しているかについても検証します。単体テストによって個々で正しく動作することが確認された機能やモジュールを対象とし、機能間の連携や一連の機能が仕様書通りに正しく動作するのかを確認します。
初心者
【ソフトウェアテスト】デシジョンテーブルテスト
さまざまな入力値が想定されており、それぞれの入力値を統合した結果として複数の状態を返すようなシステム仕様に対しては、デシジョンテーブルテスト技法を用いることで、複雑な条件を整理することができます。サービス利用時に新規アカウントを作成するような場面で、ユーザー情報を入力して登録する機能を想定した場合、[名前(ローマ字)][よみがな][任意のパスワード][パスワード確認入力][年齢][住所]などを入力し、それらの入力値が全て正常であれば登録処理を進めて、入力値のうち1つでも正常ではない値が入力されている場合は、エラーメッセージを表示して再度入力を促すようなシステムがあります。対象のステータスによって期間限定のサービス適用有無を判定するようなシステムでも、サービス対象となるかどうかを複数条件から判定するような仕様が想定されます。5年以上サービスを利用していて、アカウントの利用者ランクがゴールド以上の場合、商品購入時の金額から5%をサービス固有ポイントとして還元するというイベントを、n年n月n日~n年n月n日まで開催するといった追加開発システムのテストをする際に、デシジョンテーブルによってテスト対象を適切に抽出できます。
テスト(運用・保守・サポート)
システムテストについて
システムテストとはシステム開発の一環として行われるテスト手法の一つで、「総合テスト」とも呼ばれています。システム開発の最終段階で行われることが多く、実際に使用される状況と同じ設定でテストを行います。システムテストでは、開発したシステムが期待通りに動作するか、構築したシステムが仕様書通りの機能や性能要件を満たしているかについて検証します。実際の使用状況を想定して、本番と同じ環境で多角的にテストを行うことで、開発環境ではわからないバグや不具合を発見するのに役立ちます。さらに、システムの一部だけではなくシステム全体を俯瞰して、ハードウェアも含めたテストが実施されるため、ハードウェアの環境に関連する不具合も検出できます。システムテストが行われるのは、プログラムや機能ごとの確認を行う単体テストや、プログラムを結合してバグがないかを確認する結合テストを終えた、開発の最終段階です。納品前に全体を通したテストを行うことでシステムの品質を確保し、クライアントに引き渡したあとに残存するリスクをできるだけ減らすことができます。
初心者
【QA】不具合を発見した時
ソフトウェアやその機能についてテストを行った場合、何かしらの不具合を発見することがあります。実施者は発見した不具合が市場への流出するのを防ぐ最初の防衛ラインとなります。では実際に不具合を発見した場合、実施者はどう不具合報告をすればよいか。※開発チーム所属するQA担当であることを想定した内容となります。プロジェクトによって不具合を報告する際のルールは様々なため、この限りではないことを留意してください。
初心者
Reactについて基礎知識を学ぶ
Reactについて皆さんは耳にしたことはありますか。Reactはよく比較されるVue.jsやAngularと同様人気が高くあります。ほかとどう違うのか、Reactの特徴とは何か。そういった内容を調査し、今回の記事作成を通してReactの基礎知識を学んでいこうと考えています。
初心者
【Java】JavaBeansについて学ぼう
Javaを勉強したことがある人はJavaBeansについてご存じでしょうか。WEBアプリケーションでよく使われる印象ですが、なにが便利なのか、そもそもJavaBeansとはなにか、メリット・デメリットはなにか、記事作成を通して調査してまとめてみました。
初心者
【初心者向け】テスト自動化について
テスト自動化とは、人の手によって行われるソフトウェアテストの全体あるいは一部を自動化することを意味します。そもそもソフトウェアテストは、不具合を見つけることが目的です。そのため、テストを繰り返し行うことも増えています。テスト自動化によって、テストにかかる人的負担を減らし、将来的なコストの削減が期待できます。
初心者
【初心者向け】受け入れテストについて
受け入れテストとは、システムテストと同様に、システムやソフトウェアプロダクト全体の機能性と非機能性の両方について評価します。受け入れテストは、リリース直前に行われるだけでなく、ソフトウェアライフサイクルのさまざまな場面で行われます。
初心者
