【初心者】Python
Pythonは、コードの記述が短くシンプルな言語で、初心者でも比較的容易に利用できます。一方で豊富な機能も備わっているため、科学技術分野をはじめ、幅広い分野で重宝されています。
【ソフトウェアテスト】ドメイン分析テスト
同値分割法/境界値分析については他の記事で記載しましたが、ドメイン分析テストも境界値を用いてテストします。このテスト方法は、関係性のある複数の変数について、入力データの有効範囲にフォーカスしてテストをする手法です。同値分割法/境界値分析では、一つの機能に関して境界がいくつか設定されていて、各境界の前後でそれぞれ動作が変わるような仕様に対してパーティションを分けてテストしていましたが、そのような数値による境界をもつ機能がいくつか関連して複数結果に分かれるような仕様のケースでは、ドメイン分析テスト技法が使用できます。ゲームのダメージ計算式で、与えた最終ダメージ数値に応じてクリティカル倍率をかけた数値を上乗せするといった場合に、元となるダメージ数値がいくつか、相手の防御数値がいくつか、数値いくつ以上でクリティカル倍率は何倍が適用されるか、各数値には有効・無効となる境界があり、かつ最終の数値ごとに複数のクリティカル倍率が用意されているといった仕様があったときに、ドメイン分析テストによって必要なテストケースを洗い出すことができます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】クラシフィケーションツリー技法
クラシフィケーションツリー技法は主に、複数のテスト対象と各対象の値が複数関連する状況で、各対象を木構造で図示することで、テスト対象の機能や状態を階層的に分類し、その組み合わせや変数いくつ分を対象とするか等の組み合わせの強度について、整理検討するときに用いる技法です。ドメイン分析テスト技法の際には、複数の境界値による動作変化の関連性と、その組み合わせで想定される複数パターンの網羅を表形式で表現する方法を取りましたが、クラシフィケーションツリー技法では、1つの機能に関わる複数の要素、各要素に想定される複数パターン、各パターンで想定される変数のパターンと、想定される内容を木構造の図で上から下へ記載して整理する方法を取ります。ブラウザベースでWebサイトを作成して、ウィンドウの表示サイズをPCサイズのレイアウトとスマホサイズのレイアウトで2パターン適用するとして、PCサイズレイアウトが正常に適用されているかを確認するときのテストスコープについて、ブラウザは[GoogleChrome][MicrosoftEdge][Firefox][Safari]をテスト対象と仮定し、各ブラウザのサイズや文字サイズ設定を変更しても問題ないか、さらに設定するウィンドウサイズは想定の最小値・最大値・全画面のパターンで、文字サイズは通常から何%拡大を対象とするかなどを考慮し、どの組み合わせでのテストを必要とするかを検討するといったような場合には、当該技法を用いることで視覚的に情報を整理しやすくなります。
テスト(運用・保守・サポート)
Python基本文法2
Python基本文法についてです。
【ソフトウェアテスト】CFD法
CFD法はCause Flow Diagram(原因流れ図)を略したもので、原因の集合と結果をそれぞれの関係のつながりにフォーカスして図式化し、そこからデシジョンテーブルを想定してテストケースを作成する技法です。システム設計において、正常な動作の仕様を基本として異常系の仕様もエラー動作実装のため明確に定義されているべきですが、テスト実施の際には、仕様想定上の正常系・異常系動作確認はもとより、考え得る限りの準正常系テストケース網羅も必要です。そうしたケースの考慮が足りていないと、リリース後にユーザーが想定外の操作を実行して重篤な不具合につながったり、あるいは仕様の穴を付いた不正処理などを実行されたりして、プロジェクトやサービスに損失が発生したりします。原因・結果・各関係を図示して明確に関係を洗い出すことで、実装段階では考慮が漏れているような挙動についても抜けや漏れをカバーするようにテストすることができます。また、エラーに関するもののみではなく、同値分割が可能な原因が複数関連して複数の結果が想定されるというシステムで、その関係性を図にして流れを見ることで、テストケース作成がグラフィカルに把握しやすくなります。インターネットでクレジットカードを利用して決済処理を実行する際に、完了までには以下の様な結果パターンが想定されます。・カード情報入力エラー(入力したカード利用情報に問題がある)・決済処理不能エラー(登録しているカード情報の照会時にエラーが発生)・通信不良による接続タイムアウトエラー(決済実行から完了までの通信時間が規定の時間内に処理されないことによるエラー)・決済完了上記4パターンの結果を返すまでの原因は、細部まで書き出すと煩雑になります。・複数の入力フォームに入力した情報のどこがエラーになったか・カード情報照会時にどのような理由でエラーになったか・どのページからどのページに遷移するときにエラーになったか・何秒以上の通信待機時間を過ぎたら通信エラーで処理するか等これらを一つの枠に収めてそれぞれを線でつなぐことで関係性を整理できるのが、このCFD法の利点だと思います。
テスト(運用・保守・サポート)
テスト技法の種類をまとめる
業務でテスト設計を行うことになったのでテスト技法について学んでいきたいと思います。
【ソフトウェアテスト】直交表/ペアワイズ法 ①
本記事では直交表について記載します。さまざまな資料を調べて情報をまとめているうちに、直交表、ペアワイズ、HAYST法はそれぞれ直交表を元に関連しているようだと思ったので、直交表から順を追って記載していこうと思います。しかし、それぞれが個別の手法として確立しており、その手法を使用するシーンも違うことから、記事としては独立させたほうが適切かと思ったので、まずは直交表についてまとめたのち、続いて別の記事でペアワイズ法をまとめていきます。
テスト(運用・保守・サポート)
Python基本文法3
グローバル(global)宣言・グローバル変数とは、関数内でグローバル変数にアクセスするための宣言です。ローカル変数(関数定義の内部で定義した関数)とグローバル変数(関数定義の外側で定義した変数)があります。glb = 0def func1(): glb = 1def func2(): global glb glb = 5print(glb) # 0が出力されるfunc1()print(glb) # 0が出力されるfunc2()print(glb) # 5が出力される
【ソフトウェアテスト】直交表/ペアワイズ法 ②
直交表そのものについては直交表/ペアワイズ法 ①で記載しています。この記事では主にペアワイズ法についてまとめます。ペアワイズ法は組み合わせテスト技法の一つであり、直交表で考慮した各因子に想定されている水準が均等に分布するという条件を緩和し、各水準の組み合わせが少なくとも1回以上出現するようなペアを選択することで、直交法そのものよりもテストの粒度を粗くしてテストケース数を抑える手法です。
テスト(運用・保守・サポート)
【QA】テスト観点の出し方
システム開発における評価・検証は、避けることのできないバグや不具合を市場に流通する前に可能な限り取り除くことのできる重要な工程です。またテスト観点が明確なテストケースは実施者ごとの評価精度のブレを防ぎ、不具合の発見率を高めることができます。しかしこの工程を最大限活かすには"なぜそのテストをするのか”、”そのテストで何を確認したいのか”という観点を正確かつ明確に定めていなければなりません。テスト観点の洗い出しが不十分なまま重大な不具合を見逃してしまうことで機会損失や信用を失うなど、多くのリスクを生んでしまう恐れがあります。
【ソフトウェアテスト】ユースケーステスト
ユースケース(use case)テストとは、システム開発要件や機能仕様などのテスト対象に対して利用者サイドから想定しうるテスト対象の使用状況や相互の作用をユースケースとしてシナリオを想定することで、対象の利用に際して問題がないかを主軸にしてテストを行う手法です。シナリオを想定してテストを行うため、シナリオテストと混同されやすいですが、シナリオテストと比較してテスト対象や目的やテストの粒度など違う部分があるので、ユースケーステストとシナリオテストはそれぞれ別の手法として、実施するテストケースに応じて使い分けが必要です。シナリオテストは主に特定の機能や操作の流れを一連のシナリオとしてテストするもので、対象となる仕様や要件のみならず、ストーリーとして関連が想定される動作や異常系処理などもテストスコープに含むため、ユーザーサイドの視点で対象に対して詳細なテストを実施しますが、ユースケーステストは、あくまで対象となる仕様や要件から想定されうるユーザーストーリーをテスト対象とする前提で、シナリオテストよりもテストスコープは狭くなると想定されます。また、記事内にて後述しますが、ユースケース図を用いていることもユースケーステストの特徴であり、シナリオを順序立てる記述形式はシナリオテストもユースケーステストも同様ですが、テストケースの整理や共有の方法によってテストケース自体をレビューできるため、静的テストのアプローチがしやすいテスト技法です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】不具合報告のインシデントレポートについて
開発プロジェクトで発生した問題はインシデントとして、管理・分析・対応が必要です。プロジェクト全体を通しての問題となるとかなり範囲は広く、人的トラブルやステークホルダー間での問題など、開発しているプロダクト以外の問題も含んでしまうので、本記事では主にプロダクトのテストに関して検出された動作の不具合(バグ)に焦点を絞って記載します。プロダクトのテストに際して検出した不具合は、報告・対応したあとは蓄積データとして、引き続きプロジェクトで参照・活用されます。実際の開発現場によっては、早期レビューでのやりとりに関するものや、開発とテスターが口頭で連携できるような状況で報告即時対応できる程度の不具合対応など、状況により必ずしも定められたドキュメントの形式で報告されるものとは限りませんが、可能な限り検出対応した不具合は履歴を残しておくことで、プロダクトの品質向上を目指すことができます。ほとんどの場合は不具合管理に別途外部のbug tracking system(BTS)を使用しています。BTSはインシデントレポート1件をチケットという1単位で扱います。チケットの形式や内容が必ずしも同一の形式に沿っているというものではありませんが、不具合の報告管理をするチケットの内容は、管理運用の観点から記載が必要となる項目はある程度決まっています。余談ですが、BTSは不具合報告のみならず、チケット駆動開発 (TiDD) を実施するプロジェクトでは開発作業自体の管理進行目的で使用される場合もあります。
テスト(運用・保守・サポート)
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年11月17日
学習・スキル2023年10月26日
テスト(運用・保守・サポート)2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【初心者用】ifconfigの出力結果の見方
Linuxシステムでネットワーク設定や情報を確認するための基本的なコマンドの1つがifconfigです。この記事では、初心者向けにifconfigコマンドの使用方法、オプション、出力結果の解釈について詳しく説明します。また、具体的な使用シーンや例、関連するコマンドや技術についても紹介します。
その他(インフラ)
セキュリティエンジニアに必要なスキル | 2年目からのロードマップ
デジタル化が進む現代社会では、個人情報や企業の重要な情報を保護するセキュリティエンジニアの役割が急速に重要視されています。特に日本においては、2020年の「JIPDEC(一般財団法人日本情報経済社会推進協会)」の報告によれば、セキュリティ監査を実施している企業は8割を超え、国内のセキュリティ意識の高さが垣間見えます。この背景には、企業のデジタルトランスフォーメーション(DX)の進展やテレワークの普及などにより、サイバー攻撃の標的となりやすい状況が増え、それに対応するためのセキュリティ対策の強化が求められているためです。しかし、セキュリティエンジニアは他のIT職種と比べて高度な専門知識が求められる職種であり、そのための教育・育成体制もまだ十分に整っていないというのが現状です。セキュリティエンジニアとしてキャリアを進める際は、このような市場の状況を理解し、自身のスキルを高め、資格を取得することで市場価値を高め、多くのチャンスをつかむことが可能になるでしょう。本記事では、セキュリティエンジニアとは何か、キャリアアップするには、どのようなスキルや資格が必要なのか、そして現在の業界の状況と平均年収についても解説します。
学習・スキル
Salesforceエンジニアになるためには?必要な基本知識とスキル、ロードマップを解説
Salesforceエンジニアとは、Salesforceというクラウド型のCRM(顧客管理)システムを開発・運用するエンジニアのことです。主に、Salesforceの機能やカスタマイズを行い、企業のビジネスニーズに応えるシステムを構築する仕事です。この記事では、高い需要と高い報酬を得られる職種として注目されている、Salesforceエンジニアの仕事内容や将来性について解説します。
【これからJP1に触れる人向け】SQL文
SQLとはデータベース(関連したデータをコンピューター上で一定の規則に従って集積し、整理されたもの)の表を作成したり、データを編集したりする際に用いられる言語である。SQLには表やビュー、データベースなどを定義するデータ定義言語と、データベースのデータの編集(抽出、挿入など)を行うデータ操作言語がある。
テスト(運用・保守・サポート)
【初心者向け】Packet Tracerでネットワークを学ぶ(CLI操作の基本編①)
ルータ初期設定編ではPacket Tracerを使ってルータを直接操作し色々な設定を試してみたいと思います。 まずCisco製品のルータにはPCと同様にOSがインストールされています。 それが「Cisco IOS(Internetwork Operating System)」です。 スイッチでもこのOSを利用しています。 Cisco IOSはWindowsのようなグラフィカルなインターフェースではなくコマンド入力のみで様々な操作を行うインターフェースになります。 コマンドで操作するインターフェースのことを「CLI(Command Line Interface)」と言います。
詳細設計(内部設計)(インフラ)
【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。
詳細設計(内部設計)(インフラ)
【初心者用】SWCについて
Reactの開発関連の勉強などをしていく中で、SWCなどを適用するかどうかなどの文言が出てきました。導入すると開発でメリットがあるようなのですが、どんなことができるのか理解していないため勉強のためにまとめます。
その他(PG/フロントエンド)
GitHubのReadmeをMarkdown記法で書く
Markdown記法は、プレーンテキストに特定の書式を付けることで、簡単にWebページやドキュメントを作成するための記法です。Markdown記法は、文書の見た目を整えるためのHTMLタグを記述する必要がなく、テキストファイルとしても読み書きが容易であるため、多くの人々によって広く使用されています。
プロジェクト推進・管理(PG/バックエンド)
テスト計画書とは?作成する理由や記載必須の内容について教えます!
開発プロセスにおけるテストとは、そのソフトウェアの品質を決める重要なファクターとなっております。テストを正しく実施することはそのまま品質を上げることになります。テストとはいっても、ただやるだけではなく、事前に計画を立てて無理のないスケジューリングを行った上で実施する必要があります。そこで今回はテストにおけるテスト計画書の作成方法やテスト設計所との違い、なぜ必要であるかをご説明いたします。
学習・スキル
【初心者用】Pythonでできることについて
現在、最も注目を集めているプログラミング言語の1つといわれているのが、今回紹介する「Python (パイソン)」です。 Pythonの特長としては、人工知能(機械学習や深層学習)などの最先端分野の開発にも使われている一方、プログラムの記述方法が簡単なため、 プログラミングを始めたばかりの初心者の方でも大規模なWebアプリケーション開発が短期間でできることがあげられます。 今回は、そんなPython の魅力について詳しくご紹介します。
製造・コーディング(PG/バックエンド)