【通信プロトコル】SSL/TLSについて
みなさんは、httpやhttpsなどをよく目にすると思います。このhttpやhttpsのことをプロトコルといいます。今回はそのプロトコルについて解説するのですが、プロトコルにはかなり沢山の種類があります。その中で「SSL/TLS」について、本日はご紹介していきます。プロトコルとは何かというところから、この「SSL/TLS」がどういった場面で使用されているのかを具体例をあげながら紹介していきます。
学習・スキル
Java言語の一番メジャーなフレームワーク「Spring Framework」について解説
こんにちは、最近Javaのフレームワークに興味を持った者です。今回は、Java開発者にとって欠かせないフレームワークの一つ、Spring Frameworkについて実践形式で解説していきたいと思います。
製造・コーディング(PG/バックエンド)
ECUとはなにか、まとめてみた
ECUとは、車載ECUにおける「ECU」とは、Electronic Control Unit(エレクトロニックコントロールユニット)の略称で、車両のあらゆるシステムを制御する装置の総称です。主にライトやドア、キーレスエントリーシステムなどの車両のボディに関する分野からブレーキ、エンジン、ステアリングなどの制御、オーディオやナビ、GPSなどの情報に関わる分野などもECUが用いられています。現在市販されている自動車には、およそ100個以上ものECUが搭載されており、さらにはハイブリッド車や電気自動車などの環境に対応した最新の自動車にもECUがなくてはならないものとなっています。自動車に関連するECUという用語は、Engine Control Unit(エンジンコントロールユニット)として捉えられることもあります。エンジンコントロールユニットとは、エンジンにおける運転制御を電子的に行うためのマイクロコンピューターのことです。現在ではエンジン制御だけでなく、自動車のあらゆる分野で役割を担っていることから、総称としてElectronic Control Unit(エレクトロニックコントロールユニット)として扱われています。なお、エンジンコントロールユニットの呼び名であり、自動車技術者協会(SAE)および国際標準化機構(ISO)で定義されているものは、ECM(Engine Control Module)と呼ばれます。車載ECUは、自動車に装備されているあらゆる機器やシステムを制御します。この働きによって、エンジン性能の向上や燃費の低減、排出ガスのクリーン化、運転性(ドライバビリティ)の向上などを目指すのが、ECU搭載の目的です。自動車業界の大きな変革期である今、世界中の各自動車メーカーは自社が誇る最新技術を用いて自動車の環境性能や快適性能、安全性能の向上に力を注いでいます。自動運転技術など、これからの自動車においてさまざまな最新機能の司令塔を担うECUは今後の技術発展において必要不可欠なものになっています。
開発環境関連(PG/フロントエンド)
システム開発で行うテスト工程と概要のまとめ
開発するシステムの品質を担保するために開発工程に応じてシステムのテストを行う必要があります。開発工程ごとに行うテストではどのようなものがあるのか、そこではどのようなことを行うのかを説明します。「ウォータフォール型開発」と「アジャイル型開発」の開発手法がありますが、ここでは「ウォータフォール型開発」の手法に絞って説明します。
テスト(SE)
【ソフトウェアテスト】ユースケーステスト
ユースケース(use case)テストとは、システム開発要件や機能仕様などのテスト対象に対して利用者サイドから想定しうるテスト対象の使用状況や相互の作用をユースケースとしてシナリオを想定することで、対象の利用に際して問題がないかを主軸にしてテストを行う手法です。シナリオを想定してテストを行うため、シナリオテストと混同されやすいですが、シナリオテストと比較してテスト対象や目的やテストの粒度など違う部分があるので、ユースケーステストとシナリオテストはそれぞれ別の手法として、実施するテストケースに応じて使い分けが必要です。シナリオテストは主に特定の機能や操作の流れを一連のシナリオとしてテストするもので、対象となる仕様や要件のみならず、ストーリーとして関連が想定される動作や異常系処理などもテストスコープに含むため、ユーザーサイドの視点で対象に対して詳細なテストを実施しますが、ユースケーステストは、あくまで対象となる仕様や要件から想定されうるユーザーストーリーをテスト対象とする前提で、シナリオテストよりもテストスコープは狭くなると想定されます。また、記事内にて後述しますが、ユースケース図を用いていることもユースケーステストの特徴であり、シナリオを順序立てる記述形式はシナリオテストもユースケーステストも同様ですが、テストケースの整理や共有の方法によってテストケース自体をレビューできるため、静的テストのアプローチがしやすいテスト技法です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】欠陥分析手法について
「【ソフトウェアテスト】不具合報告のインシデントレポートについて」記事で記載したとおり、インシデントはチケット作成して報告されたのち、内容を分析して対応をし、作成から完了に至るまで管理します。そうして蓄積されたインシデントレポートは、報告対応されたそのレポート自体が、以降で類似の現象を検出した際の資料として用いられる面もありますが、内容を分析することで、今後の開発品質向上を目指すための判断材料として活用することができます。いずれのインシデントレポートも、何かしら問題があったから作成されているものであり、問題点は解決した時点で完了とはせずに、内容を振り返って同じ轍を踏まないように以降の活動を随時改善していくことが肝要です。近年のアジャイル化が進んでいるプロジェクトなどの場合は、直近の開発内容に対するインシデントレポート単体を都度分析するような時間も設けられずに次々進んでいくことがありますが、プロジェクト全体としてインシデントレポートを統合管理し、アジャイル開発の各プロジェクト進行とは別途で機会を設けて、振り返りと共に不具合分析を行うことは、高品質な開発を目指す上で必要な活動です。ソフトウェア開発現場の現状として、プロジェクト形式もインシデントレポート形式もさまざまある状況なので、欠陥分析の手法もこれが絶対という唯一のものではなく、状況や期間などに合わせて必要な手法でアプローチをすべきです。統計的内容に基づく分析、インシデントごとの要因に基づく分析、その両面からの分析など、どのような面からアプローチするかによって用いる手法もさまざまあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】シナリオテスト
シナリオテストはユーザー視点で利用場面を想定し、操作フロー、入力値、発生する正常系挙動異常系挙動など、ユーザーが利用する一連の流れを想定したうえで発生しうるストーリーを元にテストを実施する手法です。ブラックボックステスト技法はさまざまあり、あくまで無数に存在しうるテストケースから粒度や対象を整理抽出してより広く浅いテストケースを目指すようなものがほとんどです。しかし、複数機能をもつシステムを実際に利用する際には、複数回の遷移を繰り返したりシステムが何重にも関連したりするので、1つの機能を対象としたテストや、2つ3つの機能間の関連をテストしただけでは、再現し得ないような組み合わせでの不具合が発生する懸念は常にあります。フリーチェックやモンキーチェックなどと呼ばれるものも、結局は「ユーザーなら再現しうる」可能性を想定して実行するものですが、それを数値や手順を明確にしてより詳細にテストし、かつ明示することでその内容をテストの履歴としたり、テストの要件自体もレビューなどで評価対象とできることがこのシナリオテスト手法の利点と考えられます。また、ユーザーのストーリーを元にテストするという点から、よりユーザーサイドでの視点から評価できるため、単純に欠陥を検出するのみならず、UI/UXの評価検討なども実施することができます。
テスト(運用・保守・サポート)
【QA】今更聞けない3つのテスト工程
ソフトウェアや機能の評価にはいくつかの工程があり、それぞれ異なる範囲と粒度でシステムを評価する目的があります。しかしシステム開発の現場によってはローカルなテスト名が運用されることが多く、自分が具体的にどの工程のテストに触れてきたのか曖昧にしか把握していない方も少なくないのではないでしょうか。様々な種別のテストがどういう目的で行われているのかを知ることで、プロジェクトにおける評価工程の在り方を理解していきましょう。
初心者
【初心者向け】ソースコードを読む
Javaの学習をしているとソースコードを読んで理解しなければならないという状況があると思います。実際にプロジェクトに参画したばかりの時も読むことが多くなると思います。また業務の8割がコードを読むこととも言われてます。そのためソースコードを読む方法を知らなかったり、読めなかったりすると業務に支障が出てきます。今回は、学習方法の一つ、「ソースコードを読む」ということについて例をいくつかあげながらコツを含めて解説していきたいと思います。
初心者
Gitの使い方
ツールのアップデートが頻繁に行われているWEB業界では、Gitを活用して業務を効率化させることが一般的になってきています。しかし、初心者の方や業界に馴染みのない方は、Gitが何のことかわからない方もきっといらっしゃるでしょう。多くの開発者に利用されている印象のあるGitですが、実はエンジニアだけではなく、WEBデザイナーやライターにとっても便利なツールのひとつです。Gitを活用することで、チームでの作業効率を高めたり、多くのファイルを管理することが簡単になります。というわけで本記事では、Gitについて基本的な用語について解説いたします。
学習・スキル
テスト観点
テスト観点とは、特定の機能に対してどのようなテストを行うことが有効なのかを考えることを指します。テストケースを作成するうえで必要不可欠な要素であり、テストの精度を高めて効率的に作業するために必要とされています。具体的な例をあげると、次の太字個所がテスト観点と呼ばれる部分に該当します。 ・住所入力テキストボックス(対象)の入力可能桁数(何)を確認する ・次へボタン(対象)押下の遷移先(何)を確認する ・氏名テキストボックスに入力した内容が氏名欄(対象)に正しく表示(何)されることを確認する特定の機能に対して、どの部分をテストしなければならないのか、その方法は何がふさわしいかを考えるのがテスト観点です。テスト観点を明確にすることで、ソフトウェアテストにおける抜けや漏れを防止することができます。
初心者
【パート2】Node.jsでWebオンライン3Dゲーム作ってみる|ダウンロード不要
前回はひとまずThree.jsを使用し、3D空間の描画を行いました。まだまだ描画できただけで、3Dゲームとはほど遠い物になっていますが、ここから徐々に近づけていきたいと思います。
製造・コーディング(PG/バックエンド)
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
学習・スキル2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【初心者用】IISについて調べてみた
個人でプログラミングを勉強する際にIISを使用することになったのですが、「IISって具体的には何だっけ?」となったのでまとめてみます。 タイトルにある通り、初心者向けに極力噛み砕いて説明していきます。
製造・コーディング(PG/バックエンド)
Git GUIツールの使い方:初心者向けチュートリアル
Gitとは、分散型バージョン管理システムの1つで、コードやファイルなどの変更履歴を記録し、複数の人で同時に開発を進めるために使われます。Linuxの開発者であるLinus Torvaldsによって開発され、現在は世界中の多くの企業やオープンソースプロジェクトで使用されています。Gitは、ファイルの変更履歴を保存するための「リポジトリ」と呼ばれるデータベースを持ち、このリポジトリに対してコミットと呼ばれる操作で変更履歴を追加していきます。また、ブランチと呼ばれる分岐を作成して、異なるバージョンのコードを管理します。Gitの主な特徴としては、以下のようなものが挙げられます。・ローカルでの高速な動作・分散型であるため、オフラインでも開発ができる・変更履歴を管理しやすく、コードの品質を高めることができる・大規模なプロジェクトでもスケーラブルに対応可能Gitは、コマンドラインツールを使って操作することもできますが、GUIツールを使って操作することもできます。
アーキテクト・技術選定(PG/バックエンド)
【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
インデックスとは?メリットデメリットやインデックスの種類も交えてご紹介
インデックスとは、データベースを扱う際には欠かすことのできない概念となります。インデックスの取り扱いによって、データのアクセス速度が大きく変わります。特に大規模なデータを扱う場合には、取り扱いに気をつけなくてはなりません。インデックスを設定した結果、処理速度が遅くなってしまうことやそもそもインデックスを使用するような実行計画が選択されないこともあるのです。インデックスは、DBMSの種類(例えば、OracleやMySQL、Postgreなど)によっても異なります。インデックスの仕様を知らないと、開発者にとって意図しない処理をしてしまう可能性もあります。そこで今回はインデックスについてメリットデメリットや具体的にどのような種類があるのかを説明していきます。
学習・スキル
JUnitとは何か?初心者向け入門ガイド
Junitは、Java言語用のオープンソースの単体テストフレームワークです。単体テストは、プログラムの各部分が個別に正しく動作するかを確認するために行われます。Junitは、テスト駆動開発(TDD)と呼ばれるアジャイルソフトウェア開発の手法をサポートするために開発されました。Junitは、テストケースの定義、テストの自動実行、テスト結果のアサーション(検証)など、テストに必要な機能を提供します。また、テスト結果のレポーティング機能も備えています。Junitは、プログラマーにとって非常に便利なツールであり、プログラムの品質を向上させるために欠かせないものとなっています。Junitを使用することで、プログラムの変更がもたらす影響をすばやく確認することができます。
テスト(PG/バックエンド)
【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。
詳細設計(内部設計)(インフラ)
組み込み開発とOSの関係は?汎用OSとの違いから将来性まで
組み込み開発とは、家電や自動車、ロボットなどに搭載される制御ソフトウェアを開発することです。組み込み開発には、OS(オペレーティングシステム)という重要なソフトウェアが必要です。OSとは、機器の基本的な動作や管理を行うソフトウェアのことで、組み込み開発では、組み込みOSと呼ばれる特殊なOSを使用します。この記事では、OSとは何か、組み込みOSとは何か?組み込みOSの種類から、その需要と将来性まで解説していきます。
初心者
【初心者用】ifconfigの出力結果の見方
Linuxシステムでネットワーク設定や情報を確認するための基本的なコマンドの1つがifconfigです。この記事では、初心者向けにifconfigコマンドの使用方法、オプション、出力結果の解釈について詳しく説明します。また、具体的な使用シーンや例、関連するコマンドや技術についても紹介します。
その他(インフラ)
