【ソフトウェアテスト】テスト技法の有用性
世に存在するさまざまなソフトウェアテスト技法について、自身のナレッジ整理もかねて詳細をまとめようと思いました。ですが、いろいろなプロジェクトで開発エンジニア・PdM・PM・QAなどさまざまな方と関わらせていただく中で、QAテスター/テストエンジニア等のポジションの方以外には、ソフトウェアテストに技法が存在するということや、テスト技法を用いる意味とメリットについてあまり認識されていないかも知れないと思いました。まずはソフトウェア開発現場でソフトウェアテスト技法を用いたテストを実施することの理由などについてまとめます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】同値分割法/境界値分析
入力されるデータによって判定を変えるという機能は、ソフトウェアの機能として広く一般的に使われます。自己責任で金銭を扱うサービスを利用する際には、18歳以上か未満かで利用の可不可を判定するという年齢確認機能が適用されていることがあります。ユーザーが任意にパスワードを設定できる機能の場合は、文字数が想定より少ない場合はセキュリティレベルが低いため無効として、文字数が想定より多い場合も仕様想定外として無効とするシステムもあります。こういった機能を対象に検証を実施する際、入力可能な数値を全て検証対象としてテストを実施しようとすると、非常に多くの工数を割かねばならないため、入力想定範囲の中で同じ処理を返す想定の数値は1つのグループとして扱い、処理の変わる境目に狙いを付けてテストするというのが、「同値分割法」と「境界値分析」です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】ドメイン分析テスト
同値分割法/境界値分析については他の記事で記載しましたが、ドメイン分析テストも境界値を用いてテストします。このテスト方法は、関係性のある複数の変数について、入力データの有効範囲にフォーカスしてテストをする手法です。同値分割法/境界値分析では、一つの機能に関して境界がいくつか設定されていて、各境界の前後でそれぞれ動作が変わるような仕様に対してパーティションを分けてテストしていましたが、そのような数値による境界をもつ機能がいくつか関連して複数結果に分かれるような仕様のケースでは、ドメイン分析テスト技法が使用できます。ゲームのダメージ計算式で、与えた最終ダメージ数値に応じてクリティカル倍率をかけた数値を上乗せするといった場合に、元となるダメージ数値がいくつか、相手の防御数値がいくつか、数値いくつ以上でクリティカル倍率は何倍が適用されるか、各数値には有効・無効となる境界があり、かつ最終の数値ごとに複数のクリティカル倍率が用意されているといった仕様があったときに、ドメイン分析テストによって必要なテストケースを洗い出すことができます。
テスト(運用・保守・サポート)
Python基本文法3
グローバル(global)宣言・グローバル変数とは、関数内でグローバル変数にアクセスするための宣言です。ローカル変数(関数定義の内部で定義した関数)とグローバル変数(関数定義の外側で定義した変数)があります。glb = 0def func1(): glb = 1def func2(): global glb glb = 5print(glb) # 0が出力されるfunc1()print(glb) # 0が出力されるfunc2()print(glb) # 5が出力される
【QA】テストケースの書き方
システム開発における評価・検証では評価する為の状態や手順、そして確認するべき期待結果等の情報をまとめたテストケースを事前に作成することになります。しかしテストケースの書き方が不十分であると他の実施者がそれを見た時はもちろん、テストケースを作成した本人でもいざ評価をする際にテストケースに書かれた情報を正しく読み取ることが出来ない可能性があります。良質なテストケースは"誰が実施しても同じ期待値を得られる"ということです。本稿ではそのために意識するべきことをまとめていきます。
【ソフトウェアテスト】QC7つ道具と新QC7つ道具 ②
QC7つ道具は、主に生産現場における各種数値を元に品質やリスクなどを分析して、品質管理を進める手法でしたが、品質管理に関わる問題は定量的分析のみでは対応しきれないようなものもあります。「【ソフトウェアテスト】欠陥分析手法について」記事でも触れているとおり、統計的分析は定量的解析手法で対応可能ですが、問題の要因に対してアプローチしようと考えた場合に、あらゆる要因が数値化できるのであれば定量的分析手法を用いれば解決できますが、数値化が困難であったり、集計して数値化して分析すると考えた場合に非常に手間がかかるような要-因に対しては、定性的な分析手法が必要になります。また、生産活動そのもののみではなく、プロジェクト全体の管理もQC活動、品質管理活動で対応すべき事象です。プロジェクト進行における問題点の可視化や共有に際して、数値データではない文字データや言語データでの集計管理をして、そうした定性的データを共通化された手法を用いて分析することにより、どのような生産現場でどのようなスキルの人が品質管理対応をする想定になったとしても、ある程度容易に対応できるように作成された手法のなかでも代表的な7つの手法が、新QC7つ道具(N7)として分類されています。英語ではNew Quality Control – 7 Tools等と呼ばれます。
テスト(運用・保守・サポート)
【QA】不具合を発見した時
ソフトウェアやその機能についてテストを行った場合、何かしらの不具合を発見することがあります。実施者は発見した不具合が市場への流出するのを防ぐ最初の防衛ラインとなります。では実際に不具合を発見した場合、実施者はどう不具合報告をすればよいか。※開発チーム所属するQA担当であることを想定した内容となります。プロジェクトによって不具合を報告する際のルールは様々なため、この限りではないことを留意してください。
【QA】今更聞けない3つのテスト工程
ソフトウェアや機能の評価にはいくつかの工程があり、それぞれ異なる範囲と粒度でシステムを評価する目的があります。しかしシステム開発の現場によってはローカルなテスト名が運用されることが多く、自分が具体的にどの工程のテストに触れてきたのか曖昧にしか把握していない方も少なくないのではないでしょうか。様々な種別のテストがどういう目的で行われているのかを知ることで、プロジェクトにおける評価工程の在り方を理解していきましょう。
Angularについて基礎知識を学ぶ
Angularという言葉を最近耳にすることが多くあります。私自身これまでAngularの開発に携わったことがないため、この記事作成を通してAngularとはどういったものなのか、基礎知識を学んでいきたいと考えてます。
Reactについて基礎知識を学ぶ
Reactについて皆さんは耳にしたことはありますか。Reactはよく比較されるVue.jsやAngularと同様人気が高くあります。ほかとどう違うのか、Reactの特徴とは何か。そういった内容を調査し、今回の記事作成を通してReactの基礎知識を学んでいこうと考えています。
Thymeleafについて学ぼう
皆さんはThymeleafについて耳にしたことはありますか。Javaの代表的なテンプレートエンジンでとても便利です。Thymeleafとはなにか、どういったメリットやデメリットがあるのかをこの記事作成を通して学んでいきたいと考えています。
【Java】ビルドツールについて学ぼう
Javaで開発を行う際、ビルドツールを利用された経験はありますか。Javaのビルドツールにはいろいろと種類があります。私はMavenとGradleしか知りませんでした。他に存在するビルドツールの種類についてや、メリット・デメリットについて記事作成を通して学んでいこうと考えてます。
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見るインフラエンジニア向け!Shellスクリプトの種類とその魅力
インフラエンジニアの道を歩み始めたばかりの皆さん、シェルスクリプトという言葉をすでに耳にされたでしょうか。シェルスクリプトは、システムやネットワークの設定、管理、自動化など、インフラの様々なタスクを効率よくこなすための強力なツールです。しかし、その機能や種類について深く知らない方も少なくないでしょう。本記事では、シェルとシェルスクリプトの基本的な概念から、主なシェルの種類(sh系とcsh系)、シェルスクリプトで実現できるタスク、そしてシェルスクリプトの重要性について詳細に解説します。また、シェルスクリプトの学習を通じて、自身の技術力向上やキャリア発展にどう寄与できるかについても触れます。シェルスクリプトの知識が浅い方、さらに深い理解を求めている方、ぜひ本記事を参考にして、スキルのブラッシュアップを図ってください。
【パート3】ChatGPTをデスクトップ上から使えるようにデスクトップアプリ化してみた|Node.js & Electron
前回はデスクトップアプリ化したChatGPTを、ショートカットキーで開ける様にできました。ですが、まだまだターミナルから実行する必要があったり、大文字のPを打とうとすると起動してしまったり、不完全な部分が目立ちますね。今回はそんな部分を改善し、更に実用レベルまで近付けていきたいと思います。
GitHubのReadmeをMarkdown記法で書く
Markdown記法は、プレーンテキストに特定の書式を付けることで、簡単にWebページやドキュメントを作成するための記法です。Markdown記法は、文書の見た目を整えるためのHTMLタグを記述する必要がなく、テキストファイルとしても読み書きが容易であるため、多くの人々によって広く使用されています。
ITパスポート試験過去問例
ITパスポート試験は、数種類ある情報処理技術者試験の中で、もっとも初級の入口にあたる試験です。ちなみにお題目は「ITに携わる人職業人として誰もが共通に備えておくべき基礎的な知識をはかる」というものです。パソコンが広く活用されるようになった現代では、是非ともおさえておきたい基礎知識だといえます。といっても、相変わらずITといえば慣れない人にはチンプンカンプンな横文字専門用語が目白押し。そのためにも試験では、「まず解説書を一冊完読して、用語や計算になれること」が欠かせません。本記事では、初心者向けにITパスポートの特徴や過去問に触れていきたいと思います。
【IT転職】JavaのスキルアップにはJava Silverがおすすめ!資格の概要や取得のメリットを解説します!!
Javaプログラマへの転職やJavaのスキルアップを考え、Java学習に励む方が多いと思いますが、中には具体的に何を目標にするのか悩む方も多いかと思います。そんな方に向けて、本記事ではJavaのスキルを証明することができる資格「Java Silver」を紹介し、Javaスキルアップの目標としてJava Silverがおすすめな理由を解説していきます。ぜひ参考にしてくださいね。
AADとAADCについて
Azure Active Directory(以下Azure AD)とは、Microsoftが提供するクラウドベースで「認証」と「許可」を一元管理するサービスです。Azure ADで認証を行えば、連携しているシステムにログインなしでアクセスできるようになります。Azureアカウントで、他のクラウドサービスが利用できます。例:Dropbox、Slackなど
その他(インフラ)
【初心者向け】Packet Tracerでネットワークを学ぶ(インストール編)
ネットワークエンジニアとしてCisco社のルータやスイッチの運用業務を遂行するには、 コマンドの知識やどのように機器が通信させているかよく理解しておく必要があります。 またCCNAといったネットワークのベンダー資格でも実際にコマンドを記述するシミュレーション問題が出題されることもあるので、自身のネットワークスキル向上には日頃からコマンド操作に慣れておく必要があります。 知識を定着や操作の慣れには座学だけでなく実際に機器に触れコマンドを入力し結果を確認することが一番なのですが、ルータやスイッチ等のネットワーク機器はいずれも高額であり、中古でもそれなりの値段となるので初心者が自宅に環境を作成することは簡単ではありません。 そこでCisco社のルータやスイッチに簡単に機器の設定、環境の構築、コマンドの投入練習といったことができるアプリケーションが「Packet Tracer」となります。
詳細設計(内部設計)(インフラ)
【初心者用】ProCとは
今度の案件でデータベースの操作関係で、Pro*Cを使用することになりそうなので今回学んでみようと思います。
【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
DBのビューとは?メリットデメリットや使用方法についても紹介!
アプリケーション開発にとってデータベースは必須スキルとなっております。データベースの知識がないと、アプリケーション開発に難航することでしょう。しかしデータベースの知識を身に付けるとなると、かなりの勉強量を要します。というのもデータベースオブジェクトには様々な種類があり、一朝一夕では身に付くものではありません。今回は、データベースのビューについてご説明いたします。ビューそのものは必ず覚えてなくてはならないと言うものではありませんが、よく使われます。まずは本記事でビューの基礎知識を身に付けてください。本記事ではメリットデメリットや具体的な使用方法について紹介しております。
