【ソフトウェアテスト】状態遷移テスト
何かの操作を行うと何かのアクションを実行して実行後の状態になり、実行後の状態からさらに次の操作を行うとまたアクションを返すといったように、ソフトウェアに限らず何かしらの機能を持つものは、機能を使う前と機能を使った後でそれぞれ状態が変わります。状態が仕様想定どおりに遷移しているかどうかを確認する技法として、状態遷移テストがあります。
テスト(運用・保守・サポート)
Python基本文法2
Python基本文法についてです。
【ソフトウェアテスト】CFD法
CFD法はCause Flow Diagram(原因流れ図)を略したもので、原因の集合と結果をそれぞれの関係のつながりにフォーカスして図式化し、そこからデシジョンテーブルを想定してテストケースを作成する技法です。システム設計において、正常な動作の仕様を基本として異常系の仕様もエラー動作実装のため明確に定義されているべきですが、テスト実施の際には、仕様想定上の正常系・異常系動作確認はもとより、考え得る限りの準正常系テストケース網羅も必要です。そうしたケースの考慮が足りていないと、リリース後にユーザーが想定外の操作を実行して重篤な不具合につながったり、あるいは仕様の穴を付いた不正処理などを実行されたりして、プロジェクトやサービスに損失が発生したりします。原因・結果・各関係を図示して明確に関係を洗い出すことで、実装段階では考慮が漏れているような挙動についても抜けや漏れをカバーするようにテストすることができます。また、エラーに関するもののみではなく、同値分割が可能な原因が複数関連して複数の結果が想定されるというシステムで、その関係性を図にして流れを見ることで、テストケース作成がグラフィカルに把握しやすくなります。インターネットでクレジットカードを利用して決済処理を実行する際に、完了までには以下の様な結果パターンが想定されます。・カード情報入力エラー(入力したカード利用情報に問題がある)・決済処理不能エラー(登録しているカード情報の照会時にエラーが発生)・通信不良による接続タイムアウトエラー(決済実行から完了までの通信時間が規定の時間内に処理されないことによるエラー)・決済完了上記4パターンの結果を返すまでの原因は、細部まで書き出すと煩雑になります。・複数の入力フォームに入力した情報のどこがエラーになったか・カード情報照会時にどのような理由でエラーになったか・どのページからどのページに遷移するときにエラーになったか・何秒以上の通信待機時間を過ぎたら通信エラーで処理するか等これらを一つの枠に収めてそれぞれを線でつなぐことで関係性を整理できるのが、このCFD法の利点だと思います。
テスト(運用・保守・サポート)
【ソフトウェアテスト】直交表/ペアワイズ法 ①
本記事では直交表について記載します。さまざまな資料を調べて情報をまとめているうちに、直交表、ペアワイズ、HAYST法はそれぞれ直交表を元に関連しているようだと思ったので、直交表から順を追って記載していこうと思います。しかし、それぞれが個別の手法として確立しており、その手法を使用するシーンも違うことから、記事としては独立させたほうが適切かと思ったので、まずは直交表についてまとめたのち、続いて別の記事でペアワイズ法をまとめていきます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】直交表/ペアワイズ法 ②
直交表そのものについては直交表/ペアワイズ法 ①で記載しています。この記事では主にペアワイズ法についてまとめます。ペアワイズ法は組み合わせテスト技法の一つであり、直交表で考慮した各因子に想定されている水準が均等に分布するという条件を緩和し、各水準の組み合わせが少なくとも1回以上出現するようなペアを選択することで、直交法そのものよりもテストの粒度を粗くしてテストケース数を抑える手法です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】ユースケーステスト
ユースケース(use case)テストとは、システム開発要件や機能仕様などのテスト対象に対して利用者サイドから想定しうるテスト対象の使用状況や相互の作用をユースケースとしてシナリオを想定することで、対象の利用に際して問題がないかを主軸にしてテストを行う手法です。シナリオを想定してテストを行うため、シナリオテストと混同されやすいですが、シナリオテストと比較してテスト対象や目的やテストの粒度など違う部分があるので、ユースケーステストとシナリオテストはそれぞれ別の手法として、実施するテストケースに応じて使い分けが必要です。シナリオテストは主に特定の機能や操作の流れを一連のシナリオとしてテストするもので、対象となる仕様や要件のみならず、ストーリーとして関連が想定される動作や異常系処理などもテストスコープに含むため、ユーザーサイドの視点で対象に対して詳細なテストを実施しますが、ユースケーステストは、あくまで対象となる仕様や要件から想定されうるユーザーストーリーをテスト対象とする前提で、シナリオテストよりもテストスコープは狭くなると想定されます。また、記事内にて後述しますが、ユースケース図を用いていることもユースケーステストの特徴であり、シナリオを順序立てる記述形式はシナリオテストもユースケーステストも同様ですが、テストケースの整理や共有の方法によってテストケース自体をレビューできるため、静的テストのアプローチがしやすいテスト技法です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】欠陥分析手法について
「【ソフトウェアテスト】不具合報告のインシデントレポートについて」記事で記載したとおり、インシデントはチケット作成して報告されたのち、内容を分析して対応をし、作成から完了に至るまで管理します。そうして蓄積されたインシデントレポートは、報告対応されたそのレポート自体が、以降で類似の現象を検出した際の資料として用いられる面もありますが、内容を分析することで、今後の開発品質向上を目指すための判断材料として活用することができます。いずれのインシデントレポートも、何かしら問題があったから作成されているものであり、問題点は解決した時点で完了とはせずに、内容を振り返って同じ轍を踏まないように以降の活動を随時改善していくことが肝要です。近年のアジャイル化が進んでいるプロジェクトなどの場合は、直近の開発内容に対するインシデントレポート単体を都度分析するような時間も設けられずに次々進んでいくことがありますが、プロジェクト全体としてインシデントレポートを統合管理し、アジャイル開発の各プロジェクト進行とは別途で機会を設けて、振り返りと共に不具合分析を行うことは、高品質な開発を目指す上で必要な活動です。ソフトウェア開発現場の現状として、プロジェクト形式もインシデントレポート形式もさまざまある状況なので、欠陥分析の手法もこれが絶対という唯一のものではなく、状況や期間などに合わせて必要な手法でアプローチをすべきです。統計的内容に基づく分析、インシデントごとの要因に基づく分析、その両面からの分析など、どのような面からアプローチするかによって用いる手法もさまざまあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】シナリオテスト
シナリオテストはユーザー視点で利用場面を想定し、操作フロー、入力値、発生する正常系挙動異常系挙動など、ユーザーが利用する一連の流れを想定したうえで発生しうるストーリーを元にテストを実施する手法です。ブラックボックステスト技法はさまざまあり、あくまで無数に存在しうるテストケースから粒度や対象を整理抽出してより広く浅いテストケースを目指すようなものがほとんどです。しかし、複数機能をもつシステムを実際に利用する際には、複数回の遷移を繰り返したりシステムが何重にも関連したりするので、1つの機能を対象としたテストや、2つ3つの機能間の関連をテストしただけでは、再現し得ないような組み合わせでの不具合が発生する懸念は常にあります。フリーチェックやモンキーチェックなどと呼ばれるものも、結局は「ユーザーなら再現しうる」可能性を想定して実行するものですが、それを数値や手順を明確にしてより詳細にテストし、かつ明示することでその内容をテストの履歴としたり、テストの要件自体もレビューなどで評価対象とできることがこのシナリオテスト手法の利点と考えられます。また、ユーザーのストーリーを元にテストするという点から、よりユーザーサイドでの視点から評価できるため、単純に欠陥を検出するのみならず、UI/UXの評価検討なども実施することができます。
テスト(運用・保守・サポート)
テスト工程について
初心に帰ってテスト工程について復習していきたいと思います。
テスト技法と種類
テスト技法とは、ソフトウェアテストのテストケースを作成するための技法です。同値分割法、境界値分析、デシジョンテーブルテストなど、さまざまなテスト技法が存在します。テスト技法を利用することで、テストケースの抜け漏れを防いだり、効率よくテストケースを作成することができます。
【Mac OS】簡単なバッチファイル作成
そもそもバッチファイル(batch file)とは、Windows環境において実行したいコマンド列が記述されたテキストファイルです。拡張子が「.bat」のため、BATファイルとも呼ばれます。その他にも「.sh」拡張子も使用されます。Mac OSでは「.command」や「.sh」が拡張子になります。バッチファイルにコマンドを記述してその処理を順番に実行することを、バッチ処理と言います。つまり、バッチファイルに上からコマンドを書いていけば、その順番で実行されるということです。頻繁に実行する処理の一連の流れをバッチファイルに記述しておけば、いつでもまとめてその処理を実行できます。バッチファイルのコーディングには、RubyやPythonといったスクリプト言語が用いられます。
【初心者向け】デシジョンテーブルについて
本記事ではテスト技法の一つの「デシジョンテーブル」について解説していきます。
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
-
2023年10月02日
製造・コーディング(PG/フロントエンド) -
2023年07月18日
-
2023年10月26日
テスト(運用・保守・サポート) -
2023年01月09日
詳細設計(内部設計)(インフラ) -
2023年11月17日
週間人気記事
もっと見る【初心者向け】Packet Tracerでネットワークを学ぶ(CLI操作の基本編①)
ルータ初期設定編ではPacket Tracerを使ってルータを直接操作し色々な設定を試してみたいと思います。 まずCisco製品のルータにはPCと同様にOSがインストールされています。 それが「Cisco IOS(Internetwork Operating System)」です。 スイッチでもこのOSを利用しています。 Cisco IOSはWindowsのようなグラフィカルなインターフェースではなくコマンド入力のみで様々な操作を行うインターフェースになります。 コマンドで操作するインターフェースのことを「CLI(Command Line Interface)」と言います。
詳細設計(内部設計)(インフラ)
【IT転職】Androidエンジニアって何?必要なスキルや資格を解説します!!
世界中で使用者が増え続けるスマホOSの一つであるAndroidですが、その成長の背景にはAndroid端末を専門にアプリケーション開発をするAndroidエンジニアの存在があります。将来性が高いと噂されるAndroidエンジニアですが、その実態はどうなのでしょうか。今回は、Androidエンジニアとは何か、将来性はあるのか、そしてAndroidエンジニアになるために必要なスキルや資格を紹介します。ぜひ最後までご覧くださいね。この記事を読むのにおすすめな人この記事は以下のような人におすすめです。・Androidエンジニアになりたいと考えている人・Androidエンジニアになるにあたって必要なスキルや資格を知りたい人・インフラエンジニアなどの他職種からAndroidエンジニアへに転職を考えている人
【初心者用】SWCについて
Reactの開発関連の勉強などをしていく中で、SWCなどを適用するかどうかなどの文言が出てきました。導入すると開発でメリットがあるようなのですが、どんなことができるのか理解していないため勉強のためにまとめます。
その他(PG/フロントエンド)
テスト計画書とは?作成する理由や記載必須の内容について教えます!
開発プロセスにおけるテストとは、そのソフトウェアの品質を決める重要なファクターとなっております。テストを正しく実施することはそのまま品質を上げることになります。テストとはいっても、ただやるだけではなく、事前に計画を立てて無理のないスケジューリングを行った上で実施する必要があります。そこで今回はテストにおけるテスト計画書の作成方法やテスト設計所との違い、なぜ必要であるかをご説明いたします。
【初心者向け】CCNA基礎 11章
こちらでは、CCNAの資格取得へ向けた情報を記載いたします。
#09 社員インタビュー【育児もキャリアも、どちらも大切にしたい。フロントエンドエンジニアとして働く、私のリアルな毎日】
こんにちは!今回は、ラーニンギフトで活躍中のフロントエンドエンジニアにインタビュー🎤育児と仕事を両立しながら、自分らしいキャリアを歩んでいる社員のリアルな声をお届けします!「エンジニアとして成長したい」「でも、子どもとの時間も諦めたくない」そんな想いを持っている方に、ぜひ読んでほしい内容です😊
#11キャリアサポーターって何してるの?【“案件に入って終わり”じゃない。キャリサポのリアルに密着】
こんにちは!採用担当です😊今回は、当社でエンジニアのキャリア支援を行っている「キャリアサポーター(通称:キャリサポ)」にインタビュー!SES業界では、「案件参画後は放置だった…」 「相談できる人がいなかった…」そんな声を聞くことも少なくありません。では実際に、当社のキャリサポはどんなことをしているのでしょうか?今回は、・面談で何を見ているのか・どんな人が伸びやすいのか・印象に残っている支援事例 など、“キャリア支援のリアル”について聞いてみました✨
【JSTQB(FL)対策】第5章テストマネジメント<5.1テスト組織~5.2テスト計画作業と見積り
こちらの記事ではJSTQBのシラバスのうち、第5章テストマネジメント分野<5.1テスト組織~5.2テスト計画作業と見積り>における以下の分野の学習内容及び学習してみて私が思ったことについて記載します。
テスト(運用・保守・サポート)
Salesforceエンジニアになるためには?必要な基本知識とスキル、ロードマップを解説
Salesforceエンジニアとは、Salesforceというクラウド型のCRM(顧客管理)システムを開発・運用するエンジニアのことです。主に、Salesforceの機能やカスタマイズを行い、企業のビジネスニーズに応えるシステムを構築する仕事です。この記事では、高い需要と高い報酬を得られる職種として注目されている、Salesforceエンジニアの仕事内容や将来性について解説します。
