単体テストとは
単体テスト(ユニットテストと呼ばれることもあります)は、プログラムを構成する比較的小さな単位(ユニット)が個々の機能を正しく果たしているかどうかを検証するテストです。通常、関数やメソッドが単体テストの単位(ユニット)となります。 プログラムが全体として正しく動作しているかを検証する結合テストは、開発の比較的後の段階でQAチームなどによって行なわれることが多いのとは対照的に、単体テストは、コード作成時などの早い段階で開発者によって実施されることが多いのが特徴です。
初心者
【初心者】Python
Pythonは、コードの記述が短くシンプルな言語で、初心者でも比較的容易に利用できます。一方で豊富な機能も備わっているため、科学技術分野をはじめ、幅広い分野で重宝されています。
初心者
【QA】テスト観点の出し方
システム開発における評価・検証は、避けることのできないバグや不具合を市場に流通する前に可能な限り取り除くことのできる重要な工程です。またテスト観点が明確なテストケースは実施者ごとの評価精度のブレを防ぎ、不具合の発見率を高めることができます。しかしこの工程を最大限活かすには"なぜそのテストをするのか”、”そのテストで何を確認したいのか”という観点を正確かつ明確に定めていなければなりません。テスト観点の洗い出しが不十分なまま重大な不具合を見逃してしまうことで機会損失や信用を失うなど、多くのリスクを生んでしまう恐れがあります。
初心者
【初心者向け】様々なシステム開発手法
システム開発には作成するサービスやプロジェクトによって適切な開発手法がいくつかあります。今回はシステム開発の手法を数種類紹介して、それぞれの特徴や、メリット、デメリットを紹介します。下記が主な開発手法の一覧になります。 ・ウォーターフォール型開発 ・アジャイル型開発 ・プロトタイプ型開発 ・スパイラル型開発 ・DevOps(デブオプス) ・リーン開発では次からそれぞれの開発手法の特徴とメリット、デメリットを紹介します。
初心者
【ソフトウェアテスト】シナリオテスト
シナリオテストはユーザー視点で利用場面を想定し、操作フロー、入力値、発生する正常系挙動異常系挙動など、ユーザーが利用する一連の流れを想定したうえで発生しうるストーリーを元にテストを実施する手法です。ブラックボックステスト技法はさまざまあり、あくまで無数に存在しうるテストケースから粒度や対象を整理抽出してより広く浅いテストケースを目指すようなものがほとんどです。しかし、複数機能をもつシステムを実際に利用する際には、複数回の遷移を繰り返したりシステムが何重にも関連したりするので、1つの機能を対象としたテストや、2つ3つの機能間の関連をテストしただけでは、再現し得ないような組み合わせでの不具合が発生する懸念は常にあります。フリーチェックやモンキーチェックなどと呼ばれるものも、結局は「ユーザーなら再現しうる」可能性を想定して実行するものですが、それを数値や手順を明確にしてより詳細にテストし、かつ明示することでその内容をテストの履歴としたり、テストの要件自体もレビューなどで評価対象とできることがこのシナリオテスト手法の利点と考えられます。また、ユーザーのストーリーを元にテストするという点から、よりユーザーサイドでの視点から評価できるため、単純に欠陥を検出するのみならず、UI/UXの評価検討なども実施することができます。
テスト(運用・保守・サポート)
テスト観点
テスト観点とは、特定の機能に対してどのようなテストを行うことが有効なのかを考えることを指します。テストケースを作成するうえで必要不可欠な要素であり、テストの精度を高めて効率的に作業するために必要とされています。具体的な例をあげると、次の太字個所がテスト観点と呼ばれる部分に該当します。 ・住所入力テキストボックス(対象)の入力可能桁数(何)を確認する ・次へボタン(対象)押下の遷移先(何)を確認する ・氏名テキストボックスに入力した内容が氏名欄(対象)に正しく表示(何)されることを確認する特定の機能に対して、どの部分をテストしなければならないのか、その方法は何がふさわしいかを考えるのがテスト観点です。テスト観点を明確にすることで、ソフトウェアテストにおける抜けや漏れを防止することができます。
初心者
【Mac OS】簡単なバッチファイル作成
そもそもバッチファイル(batch file)とは、Windows環境において実行したいコマンド列が記述されたテキストファイルです。拡張子が「.bat」のため、BATファイルとも呼ばれます。その他にも「.sh」拡張子も使用されます。Mac OSでは「.command」や「.sh」が拡張子になります。バッチファイルにコマンドを記述してその処理を順番に実行することを、バッチ処理と言います。つまり、バッチファイルに上からコマンドを書いていけば、その順番で実行されるということです。頻繁に実行する処理の一連の流れをバッチファイルに記述しておけば、いつでもまとめてその処理を実行できます。バッチファイルのコーディングには、RubyやPythonといったスクリプト言語が用いられます。
学習・スキル
【ソフトウェアテスト】ソフトウェア開発とテスト活動について②
「【ソフトウェアテスト】テストレベルについて ①」記事に記載のとおり、開発ライフサイクルモデルには形式や期間によってさまざまなモデルがあり、テストを実施するタイミングもモデルによってさまざまです。先に挙げた開発工程の例である要件定義→設計→開発→テスト→リリース/保守を一連の流れとする開発ライフサイクルも、このフローを開発期間の流れとして実施するのはあくまでウォーターフォール型モデルのようなシーケンシャルな開発ライフサイクルであり、イテレーティブ開発モデルやインクリメンタル開発モデルでは、各工程とテストが同時に進行したり、無駄をなくすことを目的としてあえて一部工程を省くこともあります。V字モデルは各工程とテストが同時進行する例です。要件定義の段階で要件定義に対するテストを実施、システム設計の時点で設計された内容に対してテストを実施といったかたちで、開発完了後にようやくテストではなく、常に工程の早期段階でテストを実施します。開発完了後のテストで不具合が検出されると工程の手戻りが発生してしまい、工数に無駄が生じますが、早期にテストを実施することにより、上流工程の段階で不具合や懸念を可能な限り取り去って開発作業の手戻りを少なくし、無駄な工数の増加を防いだり、最終的な品質の向上を目指すことができます。このようにV字モデルの左側で行う開発活動に対して早期にテストを実施して効率的な開発活動を目指す手法をシフトレフトと呼びます。イテレーティブ開発モデルやインクリメンタル開発モデルとなると、さらに各工程とテストが早期段階で実施されていきます。全体的な流れをより細かく迅速に行い、それを細かく繰り返していくサイクルが、現在のソフトウェア開発形式の主流になってきています。
テスト(運用・保守・サポート)
【QA】不具合を発見した時
ソフトウェアやその機能についてテストを行った場合、何かしらの不具合を発見することがあります。実施者は発見した不具合が市場への流出するのを防ぐ最初の防衛ラインとなります。では実際に不具合を発見した場合、実施者はどう不具合報告をすればよいか。※開発チーム所属するQA担当であることを想定した内容となります。プロジェクトによって不具合を報告する際のルールは様々なため、この限りではないことを留意してください。
初心者