【ソフトウェアテスト】同値分割法/境界値分析
入力されるデータによって判定を変えるという機能は、ソフトウェアの機能として広く一般的に使われます。自己責任で金銭を扱うサービスを利用する際には、18歳以上か未満かで利用の可不可を判定するという年齢確認機能が適用されていることがあります。ユーザーが任意にパスワードを設定できる機能の場合は、文字数が想定より少ない場合はセキュリティレベルが低いため無効として、文字数が想定より多い場合も仕様想定外として無効とするシステムもあります。こういった機能を対象に検証を実施する際、入力可能な数値を全て検証対象としてテストを実施しようとすると、非常に多くの工数を割かねばならないため、入力想定範囲の中で同じ処理を返す想定の数値は1つのグループとして扱い、処理の変わる境目に狙いを付けてテストするというのが、「同値分割法」と「境界値分析」です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】クラシフィケーションツリー技法
クラシフィケーションツリー技法は主に、複数のテスト対象と各対象の値が複数関連する状況で、各対象を木構造で図示することで、テスト対象の機能や状態を階層的に分類し、その組み合わせや変数いくつ分を対象とするか等の組み合わせの強度について、整理検討するときに用いる技法です。ドメイン分析テスト技法の際には、複数の境界値による動作変化の関連性と、その組み合わせで想定される複数パターンの網羅を表形式で表現する方法を取りましたが、クラシフィケーションツリー技法では、1つの機能に関わる複数の要素、各要素に想定される複数パターン、各パターンで想定される変数のパターンと、想定される内容を木構造の図で上から下へ記載して整理する方法を取ります。ブラウザベースでWebサイトを作成して、ウィンドウの表示サイズをPCサイズのレイアウトとスマホサイズのレイアウトで2パターン適用するとして、PCサイズレイアウトが正常に適用されているかを確認するときのテストスコープについて、ブラウザは[GoogleChrome][MicrosoftEdge][Firefox][Safari]をテスト対象と仮定し、各ブラウザのサイズや文字サイズ設定を変更しても問題ないか、さらに設定するウィンドウサイズは想定の最小値・最大値・全画面のパターンで、文字サイズは通常から何%拡大を対象とするかなどを考慮し、どの組み合わせでのテストを必要とするかを検討するといったような場合には、当該技法を用いることで視覚的に情報を整理しやすくなります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】エラー推測テスト
エラー推測テストは経験ベーステストの一種です。最も単純な表現をするならば、「どうすればエラーが発生するか」を想像して試行し、エラーを再現させることを目的としたテストの手法です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】QC7つ道具と新QC7つ道具 ①
生産の分野における管理手法に関して、各種データの分析に使用する代表的な7種類の手法が、QC7つ道具と呼ばれています。もともとは工業系生産などの製造現場における品質に関して、顧客信頼度を高めたり現場の問題解決に取り組むための視点として、品質管理の思考が波及しました。そのことから、管理の手法を明示化することで、手法を用いて誰でも品質管理に取り組むことができるようになることを目的としてさまざまな手法が作成されました。それらの中でも特に代表的なものがQC7つ道具と呼ばれるようになりました。ソサエティー5.0が提唱されている現代において、市場や製造現場におけるソフトウェア関連開発業務の割合は増えています。ITの基本資格でもある基本情報技術者試験のストラテジ系領域の内容にもQC7つ道具に関する問題が含まれており、ソフトウェア開発現場におけるQC(Quality Control)活動においても、QC7つ道具の利用される場面は増えています。QC7つ道具は主に、数値などの定量的分析が可能なデータを取り扱う分析の際に用いられる手法です。定性的な事象の分析に用いるような手法は新QC7つ道具として別でまとめられています。※以降に記載する図の中でも定性的事象分析に使用できる図はあるため、QC7つ道具が必ずしも定量的分析にしか使用しないものというわけではありません。
テスト(運用・保守・サポート)
【ソフトウェアテスト】QC7つ道具と新QC7つ道具 ②
QC7つ道具は、主に生産現場における各種数値を元に品質やリスクなどを分析して、品質管理を進める手法でしたが、品質管理に関わる問題は定量的分析のみでは対応しきれないようなものもあります。「【ソフトウェアテスト】欠陥分析手法について」記事でも触れているとおり、統計的分析は定量的解析手法で対応可能ですが、問題の要因に対してアプローチしようと考えた場合に、あらゆる要因が数値化できるのであれば定量的分析手法を用いれば解決できますが、数値化が困難であったり、集計して数値化して分析すると考えた場合に非常に手間がかかるような要-因に対しては、定性的な分析手法が必要になります。また、生産活動そのもののみではなく、プロジェクト全体の管理もQC活動、品質管理活動で対応すべき事象です。プロジェクト進行における問題点の可視化や共有に際して、数値データではない文字データや言語データでの集計管理をして、そうした定性的データを共通化された手法を用いて分析することにより、どのような生産現場でどのようなスキルの人が品質管理対応をする想定になったとしても、ある程度容易に対応できるように作成された手法のなかでも代表的な7つの手法が、新QC7つ道具(N7)として分類されています。英語ではNew Quality Control – 7 Tools等と呼ばれます。
テスト(運用・保守・サポート)
【初心者用】Linuxファイルシステムとは何か
【図解】初心者向けファイルシステムの基礎知識〜仕組み, OSとの関係, アクセス権との連携〜Linuxファイルシステムとは、コンピュータ上でデータを格納し、組織化するための仕組みです。ファイルやディレクトリ(フォルダ)などのデータを管理し、アクセスするための基盤となります。異なる種類のファイルシステムが存在し、それぞれ異なる特徴を持っています。
その他(インフラ)
【ソフトウェアテスト】ソフトウェアテスト関連で耳にするJSTQBとは何か
JSTQBやJSTQB関連資格について、QAやテストといった役割で業務にあたる方のみならず、ソフトウェア開発現場に就業されている各役割の方々(開発エンジニアやPL/PMの方等)にとっても業務に活用できる部分があると思うので、そもそもJSTQBとは何なのかというところを記載していきます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】テスト技法の有用性
世に存在するさまざまなソフトウェアテスト技法について、自身のナレッジ整理もかねて詳細をまとめようと思いました。ですが、いろいろなプロジェクトで開発エンジニア・PdM・PM・QAなどさまざまな方と関わらせていただく中で、QAテスター/テストエンジニア等のポジションの方以外には、ソフトウェアテストに技法が存在するということや、テスト技法を用いる意味とメリットについてあまり認識されていないかも知れないと思いました。まずはソフトウェア開発現場でソフトウェアテスト技法を用いたテストを実施することの理由などについてまとめます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】状態遷移テスト
何かの操作を行うと何かのアクションを実行して実行後の状態になり、実行後の状態からさらに次の操作を行うとまたアクションを返すといったように、ソフトウェアに限らず何かしらの機能を持つものは、機能を使う前と機能を使った後でそれぞれ状態が変わります。状態が仕様想定どおりに遷移しているかどうかを確認する技法として、状態遷移テストがあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】ドメイン分析テスト
同値分割法/境界値分析については他の記事で記載しましたが、ドメイン分析テストも境界値を用いてテストします。このテスト方法は、関係性のある複数の変数について、入力データの有効範囲にフォーカスしてテストをする手法です。同値分割法/境界値分析では、一つの機能に関して境界がいくつか設定されていて、各境界の前後でそれぞれ動作が変わるような仕様に対してパーティションを分けてテストしていましたが、そのような数値による境界をもつ機能がいくつか関連して複数結果に分かれるような仕様のケースでは、ドメイン分析テスト技法が使用できます。ゲームのダメージ計算式で、与えた最終ダメージ数値に応じてクリティカル倍率をかけた数値を上乗せするといった場合に、元となるダメージ数値がいくつか、相手の防御数値がいくつか、数値いくつ以上でクリティカル倍率は何倍が適用されるか、各数値には有効・無効となる境界があり、かつ最終の数値ごとに複数のクリティカル倍率が用意されているといった仕様があったときに、ドメイン分析テストによって必要なテストケースを洗い出すことができます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】直交表/ペアワイズ法 ②
直交表そのものについては直交表/ペアワイズ法 ①で記載しています。この記事では主にペアワイズ法についてまとめます。ペアワイズ法は組み合わせテスト技法の一つであり、直交表で考慮した各因子に想定されている水準が均等に分布するという条件を緩和し、各水準の組み合わせが少なくとも1回以上出現するようなペアを選択することで、直交法そのものよりもテストの粒度を粗くしてテストケース数を抑える手法です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】欠陥分析手法について
「【ソフトウェアテスト】不具合報告のインシデントレポートについて」記事で記載したとおり、インシデントはチケット作成して報告されたのち、内容を分析して対応をし、作成から完了に至るまで管理します。そうして蓄積されたインシデントレポートは、報告対応されたそのレポート自体が、以降で類似の現象を検出した際の資料として用いられる面もありますが、内容を分析することで、今後の開発品質向上を目指すための判断材料として活用することができます。いずれのインシデントレポートも、何かしら問題があったから作成されているものであり、問題点は解決した時点で完了とはせずに、内容を振り返って同じ轍を踏まないように以降の活動を随時改善していくことが肝要です。近年のアジャイル化が進んでいるプロジェクトなどの場合は、直近の開発内容に対するインシデントレポート単体を都度分析するような時間も設けられずに次々進んでいくことがありますが、プロジェクト全体としてインシデントレポートを統合管理し、アジャイル開発の各プロジェクト進行とは別途で機会を設けて、振り返りと共に不具合分析を行うことは、高品質な開発を目指す上で必要な活動です。ソフトウェア開発現場の現状として、プロジェクト形式もインシデントレポート形式もさまざまある状況なので、欠陥分析の手法もこれが絶対という唯一のものではなく、状況や期間などに合わせて必要な手法でアプローチをすべきです。統計的内容に基づく分析、インシデントごとの要因に基づく分析、その両面からの分析など、どのような面からアプローチするかによって用いる手法もさまざまあります。
テスト(運用・保守・サポート)
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年11月17日
学習・スキル2023年10月26日
テスト(運用・保守・サポート)2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
【初心者向け】SQLの基礎について網羅的に学ぶ
WEBアプリケーション開発やスマホアプリ開発などを学ぶ際に切っても切れない関係にあるのがデータベースの知識となります。 こちらは前回の記事でざっくりと解説させて頂きましたが、今回はデータベースを操作するためのデータベース言語である、SQLについて解説した記事を書いていこうと思います。 SQLを使用することで、データベースに対して作成・更新・削除・参照などの処理を効率的に行うことが可能となります。 プログラミング言語とSQLの違いについては、プログラミング言語はJavaやPython等のコンピュータに関して指示を送るプログラミング言語なのに対して、SQLはデータベースに対して”のみ”指示を送ることが出来るデータベース言語となるので、実態としては全く別の物となります。 最初のうちは、ややこしいので理解に苦しむかもしれませんが、やっていく内に嫌でも覚えていくこととなるので、ご安心ください。 今回の記事ではSQLの基本的な部分や、データベースの選択方法などについて解説していきます! この記事を読むことで分かること SQLの基本的な操作方法 データベースの種類 データベースの選択方法 注意点 どのデータベースを使うにしてもSQLの概念等は同じなのですが、データベースの種類によって若干書き方が異なります。 今回は代表的なSQLの書き方を紹介するので、使用するデータベースのよって書き方が若干異なることを念頭に置いて頂ければと思います。
製造・コーディング(PG/バックエンド)
オブジェクト指向プログラミングとは?その特徴と代表的な言語を紹介
プログラミングというと、難しくて理解しにくいものと思われがちですが、実は私たちの身の回りにあるものや現象をモデル化して表現する方法の一つです。プログラミングにはさまざまな種類や手法がありますが、その中でも最も一般的で人気の高いものがオブジェクト指向プログラミングです。では、オブジェクト指向プログラミングとは、どのようなものなのでしょうか?また、どのような特徴やメリットがあるのでしょうか?この記事では、オブジェクト指向プログラミングの基礎と特徴、そして代表的な言語を紹介します。
【入門編】AWSとは何か?人気の理由まで解説
ITの業務に従事されている方や、インターネットやSNS等でIT関連の情報を収集されている方なら一度は聞いたことのある言葉の一つが、「AWS」ではないでしょうか? AWSとはアマゾンが提供するクラウドプラットフォームであり、正式名称はAmazon Web Service(アマゾンウェブサービス)です。 本記事では、AWSを使うと何ができるのか?なぜそんなに人気なのか?など、初心者の方が疑問に持つであろう部分を網羅的にまとめた記事となっております。 この記事を読むことで分かること ・AWSとは何かが理解できる ・AWSが人気な理由が分かる
製造・コーディング(PG/バックエンド)
【初心者用】JavaとJavaScriptの違いは?Javascriptで出来ることは?
JavaScript(ジャバスクリプト)は、プログラミング言語の一種です。 名前は聞いたことがあっても「実際に、どういうことに使われているのか?」「JavaScriptは何のジャンルが得意で、どういったことが実現できるのか?」ということまでは、あまり知られていないのではないでしょうか? 初心者の方で特に多いのが「Javaが得意な人は、JavaScriptも得意」という誤った認識です。 良く混同されがちですが、JavaとJavaScriptとはまったくの別物です。 では、具体的にどのような違いがあるのでしょうか? JavaScriptの詳しい説明も交えながら、JavaとJavaScriptの違いについてまとめてみました。
製造・コーディング(PG/バックエンド)
【初心者用】javaで出来ることとは?
Javaはプログラミング言語の中でも、昔からエンジニアの圧倒的な支持率とシェア率を持ち、言語の人気では常に上位に位置するプログラミング言語です。 Javaで開発されているシステムはWebサービスから業務系システム、組み込み、スマホアプリまで非常に多岐にわたり、様々な業界、様々な分野の開発現場でjavaは採用されています。 何でもできる汎用性の高さから、エンジニアを目指す際にJavaを習得しようと考える人も多いのが現状です。
製造・コーディング(PG/バックエンド)
DBのビューとは?メリットデメリットや使用方法についても紹介!
アプリケーション開発にとってデータベースは必須スキルとなっております。データベースの知識がないと、アプリケーション開発に難航することでしょう。しかしデータベースの知識を身に付けるとなると、かなりの勉強量を要します。というのもデータベースオブジェクトには様々な種類があり、一朝一夕では身に付くものではありません。今回は、データベースのビューについてご説明いたします。ビューそのものは必ず覚えてなくてはならないと言うものではありませんが、よく使われます。まずは本記事でビューの基礎知識を身に付けてください。本記事ではメリットデメリットや具体的な使用方法について紹介しております。
学習・スキル
Gitの使い方
ツールのアップデートが頻繁に行われているWEB業界では、Gitを活用して業務を効率化させることが一般的になってきています。しかし、初心者の方や業界に馴染みのない方は、Gitが何のことかわからない方もきっといらっしゃるでしょう。多くの開発者に利用されている印象のあるGitですが、実はエンジニアだけではなく、WEBデザイナーやライターにとっても便利なツールのひとつです。Gitを活用することで、チームでの作業効率を高めたり、多くのファイルを管理することが簡単になります。というわけで本記事では、Gitについて基本的な用語について解説いたします。
学習・スキル
マニュアル作成で心がけることとは
皆さんはシステム開発現場のマニュアルや仕様書などのドキュメントに対して、どのようなイメージをお持ちでしょうか。 実際にシステム開発の現場で整備されていたマニュアルが、めちゃくちゃ役に立ったと考えているかたは、ごく少数なのではないでしょうか。 各プロジェクトで、エンジニアの入れ替わりが当たり前になった昨今では、業務マニュアルやシステムの操作マニュアルがない会社はないと言っても過言ではありません。 ・分厚くて読む気がしない ・どこに何が書いてあるのか分かりにくい ・そもそも読んでも理解できない ・プロセスやトラブルの解決策が抜けがち ・書いてある内容が古い(アップデートされていない) 上記の内容はいずれも、マニュアルが風化する原因の1つです。 裏を返せば、マニュアルを作る側が、上記のような状態にならないように気をつけるべき項目とも考えることが出来ます。 実際、多くのシステム開発の現場で、マニュアルと実際に稼働しているシステムとの情報が乖離しており、マニュアルはストレージを圧迫する邪魔な存在。だと認識されているケースが多いです。 今回の記事では、システムの操作マニュアルに関して、みなさんが実際にマニュアルを作成する場合に、分かりやすく使いやすいマニュアルを作るために心がけるべき5つのポイントについて解説していこうと思います。
製造・コーディング(PG/バックエンド)