システム開発のテスト工程で重要な事とは?
システム開発では、不具合やバグが無いかを検証するテスト工程と呼ばれる期間が存在します。 テスト工程には大きく分けて下記4つのテスト内容が存在します。 ・単体テスト・・画面や機能ごとに、動作の検証をする ・結合テスト・・他の機能やシステムと連携させて、動作の検証をする ・総合テスト・・本運用を想定して、システム全体の動作を検証する・ 受入れテスト・・納品前に仕様書の通り完成しているか確認する システム開発におけるテストの役割は、開発したシステム、記述したプログラムが不具合なく動作するか、バグなどがないかをチェックして修正する工程のことを指します。 どれだけ優秀なエンジニアが開発していようと、人の手が介在するシステム開発では、バグがないということは絶対にあり得ません。 たとえば、システム開発の現場でもっともポピュラーな開発の流れの「ウォーターフォール型」を採用している場合、「単体テスト」「結合テスト」「システムテスト(総合テスト)」「受け入れテスト(ユーザーテスト)」の、大きく4つのテスト工程が実施されます。
JSTQBのシラバスを読む【第一章】
本記事ではJSTQB:Foundation Levelのシラバスを読んでいきます。ISTQBテスト技術者資格制度Foundation Level シラバス 日本語版 Version 2023V4.0.J01:https://jstqb.jp/dl/JSTQB-SyllabusFoundation_VersionV40.J01.pdf
自宅のWindowsでRuby on Rails ~データベース操作2
自宅のWindowsでRuby on Rails ~データベース操作1の続きです。
【ソフトウェアテスト】CFD法
CFD法はCause Flow Diagram(原因流れ図)を略したもので、原因の集合と結果をそれぞれの関係のつながりにフォーカスして図式化し、そこからデシジョンテーブルを想定してテストケースを作成する技法です。システム設計において、正常な動作の仕様を基本として異常系の仕様もエラー動作実装のため明確に定義されているべきですが、テスト実施の際には、仕様想定上の正常系・異常系動作確認はもとより、考え得る限りの準正常系テストケース網羅も必要です。そうしたケースの考慮が足りていないと、リリース後にユーザーが想定外の操作を実行して重篤な不具合につながったり、あるいは仕様の穴を付いた不正処理などを実行されたりして、プロジェクトやサービスに損失が発生したりします。原因・結果・各関係を図示して明確に関係を洗い出すことで、実装段階では考慮が漏れているような挙動についても抜けや漏れをカバーするようにテストすることができます。また、エラーに関するもののみではなく、同値分割が可能な原因が複数関連して複数の結果が想定されるというシステムで、その関係性を図にして流れを見ることで、テストケース作成がグラフィカルに把握しやすくなります。インターネットでクレジットカードを利用して決済処理を実行する際に、完了までには以下の様な結果パターンが想定されます。・カード情報入力エラー(入力したカード利用情報に問題がある)・決済処理不能エラー(登録しているカード情報の照会時にエラーが発生)・通信不良による接続タイムアウトエラー(決済実行から完了までの通信時間が規定の時間内に処理されないことによるエラー)・決済完了上記4パターンの結果を返すまでの原因は、細部まで書き出すと煩雑になります。・複数の入力フォームに入力した情報のどこがエラーになったか・カード情報照会時にどのような理由でエラーになったか・どのページからどのページに遷移するときにエラーになったか・何秒以上の通信待機時間を過ぎたら通信エラーで処理するか等これらを一つの枠に収めてそれぞれを線でつなぐことで関係性を整理できるのが、このCFD法の利点だと思います。
テスト(運用・保守・サポート)
【ソフトウェアテスト】ユースケーステスト
ユースケース(use case)テストとは、システム開発要件や機能仕様などのテスト対象に対して利用者サイドから想定しうるテスト対象の使用状況や相互の作用をユースケースとしてシナリオを想定することで、対象の利用に際して問題がないかを主軸にしてテストを行う手法です。シナリオを想定してテストを行うため、シナリオテストと混同されやすいですが、シナリオテストと比較してテスト対象や目的やテストの粒度など違う部分があるので、ユースケーステストとシナリオテストはそれぞれ別の手法として、実施するテストケースに応じて使い分けが必要です。シナリオテストは主に特定の機能や操作の流れを一連のシナリオとしてテストするもので、対象となる仕様や要件のみならず、ストーリーとして関連が想定される動作や異常系処理などもテストスコープに含むため、ユーザーサイドの視点で対象に対して詳細なテストを実施しますが、ユースケーステストは、あくまで対象となる仕様や要件から想定されうるユーザーストーリーをテスト対象とする前提で、シナリオテストよりもテストスコープは狭くなると想定されます。また、記事内にて後述しますが、ユースケース図を用いていることもユースケーステストの特徴であり、シナリオを順序立てる記述形式はシナリオテストもユースケーステストも同様ですが、テストケースの整理や共有の方法によってテストケース自体をレビューできるため、静的テストのアプローチがしやすいテスト技法です。
テスト(運用・保守・サポート)
【初心者用】Pythonが何なのかメリット・デメリットの面からまとめてみた
エンジニアとしてのキャリアが短く、データベース・SQLについて疎い自分がデータベースとSQLについて基本から学びながら、データベースとは何か、SQLとは何かを分かりやすいように説明していきます。
製造・コーディング(インフラ)
【初心者用】SQL サブクエリについてまとめてみた
SQLのサブクエリ(副問い合わせ)について今回色々操作をしていく。 サブクエリを活用できることで、SQLの活用の幅が広がり、複雑なクエリを記述することができるため、少しずつ慣れていこう。 参考サイト https://style.potepan.com/articles/17593.html SQLの幅問い合わせ(サブクエリ)とは? 概要・種類・使い方を解説 https://hironimo.com/prog/sql/subquery/ SQLServer 副問い合わせ
【初心者向け】不具合報告書の書き方
テストエンジニアは業務内で不具合を見つけた際に不具合報告書を起票することになります。不具合報告書とは、発生した不具合の原因と対策について記載した文書です。社内の関係者への共有はもちろん、取引先に提出することもあるため、正確かつわかりやすく記載する必要があります。
【初心者用】SQLのテーブル結合についてまとめてみた
今回は現場で使用するSQLの技術である「テーブル結合」について記事をまとめてみた。 参考サイト MySQL入門4 テーブル結合とは? 内部結合と外部結合を解説! https://snome.jp/database/db-intro-4/ 初級編10 SQL Serverのテーブル結合(JOIN)の基礎 https://kaya-soft.com/sqlserver2008-toranomaki/beginner/jointable/ 内部結合(INNER JOIN句) https://www.dbonline.jp/sqlite/join/index1.html 外部結合(OUTER JOIN句) https://www.dbonline.jp/sqlite/join/index2.html
【初心者用】システム開発に用いられる設計書について
今回はシステム開発の現場で求められる、設計書の種類などについて解説していこうと思います。 設計書が読めるようになると、市場価値が上がるため高単価の案件に参画することも可能となります。 また、開発サイドではなくマネジメントサイドの仕事も行うことが可能となります。
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
2023年10月26日
テスト(運用・保守・サポート)2023年01月09日
詳細設計(内部設計)(インフラ)2023年11月17日
週間人気記事
もっと見るGit GUIツールの使い方:初心者向けチュートリアル
Gitとは、分散型バージョン管理システムの1つで、コードやファイルなどの変更履歴を記録し、複数の人で同時に開発を進めるために使われます。Linuxの開発者であるLinus Torvaldsによって開発され、現在は世界中の多くの企業やオープンソースプロジェクトで使用されています。Gitは、ファイルの変更履歴を保存するための「リポジトリ」と呼ばれるデータベースを持ち、このリポジトリに対してコミットと呼ばれる操作で変更履歴を追加していきます。また、ブランチと呼ばれる分岐を作成して、異なるバージョンのコードを管理します。Gitの主な特徴としては、以下のようなものが挙げられます。・ローカルでの高速な動作・分散型であるため、オフラインでも開発ができる・変更履歴を管理しやすく、コードの品質を高めることができる・大規模なプロジェクトでもスケーラブルに対応可能Gitは、コマンドラインツールを使って操作することもできますが、GUIツールを使って操作することもできます。
【初心者向け】Packet Tracerでネットワークを学ぶ(インストール編)
ネットワークエンジニアとしてCisco社のルータやスイッチの運用業務を遂行するには、 コマンドの知識やどのように機器が通信させているかよく理解しておく必要があります。 またCCNAといったネットワークのベンダー資格でも実際にコマンドを記述するシミュレーション問題が出題されることもあるので、自身のネットワークスキル向上には日頃からコマンド操作に慣れておく必要があります。 知識を定着や操作の慣れには座学だけでなく実際に機器に触れコマンドを入力し結果を確認することが一番なのですが、ルータやスイッチ等のネットワーク機器はいずれも高額であり、中古でもそれなりの値段となるので初心者が自宅に環境を作成することは簡単ではありません。 そこでCisco社のルータやスイッチに簡単に機器の設定、環境の構築、コマンドの投入練習といったことができるアプリケーションが「Packet Tracer」となります。
詳細設計(内部設計)(インフラ)
JUnitとは何か?初心者向け入門ガイド
Junitは、Java言語用のオープンソースの単体テストフレームワークです。単体テストは、プログラムの各部分が個別に正しく動作するかを確認するために行われます。Junitは、テスト駆動開発(TDD)と呼ばれるアジャイルソフトウェア開発の手法をサポートするために開発されました。Junitは、テストケースの定義、テストの自動実行、テスト結果のアサーション(検証)など、テストに必要な機能を提供します。また、テスト結果のレポーティング機能も備えています。Junitは、プログラマーにとって非常に便利なツールであり、プログラムの品質を向上させるために欠かせないものとなっています。Junitを使用することで、プログラムの変更がもたらす影響をすばやく確認することができます。
【初心者用】ProCとは
今度の案件でデータベースの操作関係で、Pro*Cを使用することになりそうなので今回学んでみようと思います。
【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
DBのビューとは?メリットデメリットや使用方法についても紹介!
アプリケーション開発にとってデータベースは必須スキルとなっております。データベースの知識がないと、アプリケーション開発に難航することでしょう。しかしデータベースの知識を身に付けるとなると、かなりの勉強量を要します。というのもデータベースオブジェクトには様々な種類があり、一朝一夕では身に付くものではありません。今回は、データベースのビューについてご説明いたします。ビューそのものは必ず覚えてなくてはならないと言うものではありませんが、よく使われます。まずは本記事でビューの基礎知識を身に付けてください。本記事ではメリットデメリットや具体的な使用方法について紹介しております。
【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。
詳細設計(内部設計)(インフラ)
