システム開発時のテストフェーズ UT,IT,STなどの略称を解説

郷に入れば郷に従え、と言いますが、その開発現場によって、開発手法はもちろんテストの方法も異なります。

 

今回はメジャーどころからマイナーどころまで、システム開発のテストの種類について、まとめました。

一般的なテストフェーズ

システム開発におけるテストは、一般的には、以下の順番にテストが進んでいきます。

 

単体テスト → 結合テスト → 総合テスト → ユーザーテスト

 

(ここでは、ウォーターフォール型の開発手法を前提としています。)

 

そのほかに、機能的に必要であれば、性能テストや、負荷テストというものもあったり。では、順番にテストフェーズを見ていきましょう。

 

単体テスト

単体テストは、UT(Unit Test)やPT(Program Test or Part Test)、CT(Component Test or Coding Test)と呼ばれることが多いです。

 

単体テストは、新規もしくは修正したプログラムを、文字通り単体でテストすることです。プロジェクトによっては、プログラム単体ではなく、機能単体でのテストを指すこともあります。

 

そのプログラムを書いた人が、動作保証として、単体テストまで行うことが多いと思います。まずは、ここで想定通りの動きをしなければ、先に進めません。

 

結合テスト

結合テストは、IT(Integration Test)や、ST(String Test)、JT(Joint Test)、CT(Combined Test)、LT(Link Test)などと略されます。

 

結合テストでは、単体テストを合格したプログラムを組み合わせた時に問題が発生しないか、既存の機能と正しく連携できるかを確認します。

 

例えば、データ登録機能の修正を行ったら、データ登録 → 検索 → 帳票印刷 → 他システムへのデータ連携 などと、後続の処理が正しく機能するかを確認します。

 

総合テスト

総合テストは、ST(System Test)、PT(Product Test)と呼ばれることが多いです。

 

ここでは、想定されている通りの動きをするかどうか、業務システムなら本番業務を滞りなく行うことができるかを、確認します。

 

この次の段階、かつ最終段階であるユーザー受入テストのフェーズで、致命的な欠陥が見つからないよう、開発側はここで、しっかりとテストをしておきます。

 

ユーザー受入テスト

ユーザー受入テストは、UAT(User Accept Test)、UT(User Test)、AT(Accept Test)と略されます。

 

総合テストを実施し、ITベンダーが問題ないと判断したら、ユーザーが実際の業務を当てはめてテストを行います。

 

このユーザー受入テストが完了し、問題ないと判断されれば、テストは終了。残すところは本番環境の作成や、移行ということになります。

 

テストフェーズとその略称のまとめ

略称をまとめてみましたが、英単語の頭文字をとるだけなので、例えばUTと言われても、単体テストなのかユーザーテストなのか不明瞭です。

 

前後のやり取りから判断できるでしょうが、新しい開発現場で略称が出てきた際は、その略称が何を表しているのか、念のため確認するようにしましょう。

 

できれば呼称が統一されると、ムダな認識の齟齬などが発生しないんですけどね。

 

ちなみに、個人的には、単体テストはUT,結合テストはIT,総合テストがST,ユーザーテストはUAT、が1番しっくりきます。

SSHとは?【初心者向け】エンジニアなら押さえておくべき基礎知識

エンジニアの基礎知識を知るシリーズ、今回はSSHについてまとめます。

 

SSHの概要

 

SSHは、Secure Shellの略で、安全にリモートコンピューターと通信するためのプロトコルです。

 

名前の通り、shell(シェル:コンピューター上で動作しているOSに指示を与えるプログラム)の一種で、リモートのコンピューターの操作画面を呼び出して、手元のローカルコンピューターのキーボード、マウスを使ってコマンド実行が可能です。

 

リモート先のサーバーにアクセスするときに使われることが多いと思います。

 

ログインの認証部分を含むネットワーク上の通信が全て暗号化されるため、インターネット経由でも、安全にアクセスすることが可能です。

 

WindowsでSSHを使う場合のクライアントソフトは、Tera TermかPuTTYがメジャーでしょう。

 

SSHの特徴

SSH以前の問題点

 

SSHの登場前は、TelnetやFTPなどによって、リモート通信が行われていました。

 

問題点としてパスワードを暗号化されていない状態で送信するため、パスワードをのぞき見されてしまう(盗聴)リスクがありました。

 

SSHの安全性

 

SSHの通信では公開鍵暗号を利用し、共通鍵を暗号化して鍵交換を行っています。

 

共通鍵暗号を用いて通信することで通信速度のメリットもあります。

 

また認証自体も、パスワード認証、公開鍵認証、ワンタイムパスワードなど充実しており、企業は情報セキュリティポリシーに準じた認証方法を選択できます。

 

さらに、SSHはAndroidやiOSにも実装されています。ネットワーク上環境が整っていれば、にSSHの利用環境が整備されていれば、スマホやタブレットといったモバイル端末からも利用可能です。

 

セキュリティリスク

 

現在バージョン1とバージョン2の2種類のバージョンがあり、バージョン1は脆弱性が認められています。

 

また、安全に通信ができると前述しましたが、安全性が高くなるという表現が正しいです。どんなものにも、完璧はありません。

 

例えば、トロイの木馬などのウィルスによる攻撃や、キーロガーによるキーボード入力の監視、端末の盗難・紛失といった人的なリスクもありえます。

 

ポートをデフォルトの22から変更する、パスワード認証ではなく公開鍵認証を採用する、不要なアプリケーションはアンインストールする、そもそもインストールしない、などユーザーがセキュリティ意識を高めるに越したことはありません。

SSL/TLSとは?【初心者向け】エンジニアなら押さえておくべき基礎知識

エンジニアの基礎知識を知るシリーズ、今回はSSLとTLSについてまとめます。

 

 

 

SSLとは

SSLは、Secure Sockets Layerの略で、インターネット上で通信を暗号化する技術です。パソコンとサーバ間の通信をSSLによって暗号化することで、第三者によるデータの盗聴や改ざんなどを防ぐことができます。

 

個人情報やクレジットカード情報を入力するようなページでは、基本的にはSSL通信が行われるよう配慮されています。

 

最近では、googleが常時https化を推奨しているため、httpsで始まるサイトが多くなっています。SSL対応しているかどうかは、そのページのurlが、httpsで始まっているかで確認できます。(通常のhttpにsecureのsがついています。)

 

 

SSLとTLSの違いとは?

TLSとは、Transport Layer Securityの略で、SSLがバージョンアップしたものにあたります。SSLの最終バージョンはSSL3.0で、その次のバージョンがTLS1.0となります。なお、2017年1月時点ではTLSの最新バージョンは、TLS1.2です。

 

SSLが世の中に浸透しているため、本来はTLSでもSSLもしくはSSL/TLSと、表記されることが多いです。

 

SSL/TLSの種類

SSL/TLSには、3つの種類があります。1,2,3の順に信頼度が増します。その分、取得までの手続きや費用がかかります。

 

 

 

  • ドメイン認証SSL

 

 

  • 企業実在認証SSL

 

 

  • 強化認証SSL(EV SSL)

 

 

 

それぞれの違いを見ていきましょう。

 

ドメイン認証SSL

ドメインの所有名義を確認して発行されます。ただ、所有さえしていれば誰でも取得が可能です。

 

企業実在認証SSL

組織が本当に存在しているかを確認したうえで発行されるのが、企業実在認証SSLです。

 

企業が存在するかを登記書類などを基に電話で直接確認します。そのため、個人では取得することができません。

 

強化認証SSL(EV SSL)

企業実在認証SSLよりも厳格なのが強化認証SSLです。

 

申請者の在籍確認などを行い、物理的に企業が存在し、運営されているかまで確認します。

 

強化認証SSLが使われているページでは、ブラウザのアドレスが緑色になり、運営組織名が表示されますので、訪問者に安心感を与えることができます。

 

 

SSL/TLSの選び方

3つの種類の中からどれを選ぶべきかは、そのサイトの内容によります。

 

日本ジオトラストのサイトでは以下のような使い分けが推奨されていました。

 

EV SSL証明書

企業ウェブサイトのトップページ、クレジットカード番号を入力するECサイト など

 

企業認証 SSLサーバ証明書

外部向けウェブサイト(問い合わせページ、資料請求ページ) など


 

ドメイン認証 SSLサーバ証明書

内部向けウェブサイト(イントラネット、グループウェアのサイト) など

 

SSL/TLSのまとめ

インターネットを使う人なら誰でも触れる機会のあるSSL/TLS。

 

サイトを運営する側が正しい知識でセキュリティを担保しながら運営するのはもちろんですが、サイトを訪問する側も知識をつけておかないと、万が一のことも起こり得ます。

 

SSL/TLSの、対応がされていないサイトでは個人情報を入力しないようにして、信頼性を確認して、安心感をもって利用しましょう。

SEの平均年収は?年収アップするには?言語別ランキングもあり

世の中全てがお金ではありませんが、同じ労働をするなら、より高い給料をもらいたいのは当たり前です。

今回は、SEの平均年収がどれくらいかを資料で確認し、今の年収をアップさせるにはどうしたらよいか考えてみます。

 

システムエンジニアの平均年収

平成27年の賃金構造基本統計調査によると、システムエンジニアの平均年収は38歳で592万円となっています。

 

では、さらにプログラミング言語で分類した場合の平均年収ランキングを見てみましょう。

第1位 「Python」651万円

第2位 「Perl」633万円

第3位 「Ruby」606万円

第4位 「C言語」597万円

第5位 「Javascript」555万円

第6位 「PHP」538万円

第7位 「Scala」531万円

第8位 「Java」500万円

第9位 「Swift」483万円

第10位 「Objective-C」475万円

第11位 「COBOL」446万円

第12位 「アセンブラ」441万円

 

引用:日本最大級の求人検索エンジン「スタンバイ」

 

自分の年収をアップさせる方法

いかがでしたか?自分の年収と比べて、平均年収は高かったでしょうか?低かったでしょうか?

※上記は言語毎の平均年収なので、他の知識などは考慮されていません。あくまでも目安と考えてください。

 

平均年収の方が高い場合

平均年収の方が高いということは、あなたのシステムエンジニアとしての価値が平均より低いと、労働市場からはみなされている事になります。

 

あなたがまだ20代前半であったり、システムエンジニアとしての道を歩き始めたばかりなら、平均を下回っていても仕方がないかもしれません。

 

ある程度の経験を持っていながら、平均よりも低い年収の場合は、現在の雇用主に確認してみた方が良いかもしれません。どうして給料がこの金額なのか説明責任を果たしてくれるようなら、どのようにしたら給料が上がるのかも、一緒に考えていくことができるでしょう。

 

現在の職場での給与アップが難しい場合は、転職なども視野に入れて、今後の方向性を検討しましょう。

 

平均年収の方が低かった場合

あなたの年収よりも平均年収の方が低かった場合は、今の方向性では、現在よりも年収アップはあまり期待できないかもしれません。

もちろん、現場ごとに給与体系は異なります。まずは、定期的な評価のタイミングなどで、今後、給与がどのようにアップしていくのか、目安を確認するようにしましょう。

 

もしも、給与アップがあまり期待できない場合は、同様の仕事でより高待遇な職場を探すか、今のプロフェッショナルなスキルを維持しつつ、別のスキルを高めるようにしましょう。

 

例えば、Javaのプログラミングスキルは一流で、かつ、ネットワークやセキュリティにも精通している。こんな人材がいたら、好条件で手を挙げる企業も少なくないでしょう。

 

システムエンジニアの平均年収まとめ

あなたが今の給料や待遇に満足できていない場合、まずは企業と交渉してみるのが良いでしょう。企業としても、優秀な人材には辞めてほしくはありません。

交渉が難しい場合は、あなたの価値を認めてくれる企業を探しましょう。場合によっては、正社員ではなくフリーランスという働き方が合うかもしれません。

 

自分の今後のキャリアをしっかりと考えて、後悔のない方向に進みましょう。

システムエンジニアが技術力アップするための方法まとめ

どんな職業もそうでしょうが、システムエンジニアは特に常に技術力アップを意識しなければなりません。どんどん新しい技術が生まれますし、まだまだ知らない知識もたくさんあるでしょう。

 

でも時間は限られているので、できれば自分に合った方法で効率的に学習したいですよね。今回は、技術力アップのための学習方法をまとめました。

 

独学での技術力アップ

独学で学習するには、主に以下の方法が考えられます。どれか1つというよりは、複数を組み合わせて学習をすべきです。

 

書籍

まずは、書籍を購入する人が多いでしょう。

プログラミング系の書籍は、分厚くて重く、価格も高いので、電子書籍版を購入することをオススメします。

 

購入時の注意事項としては、口コミなどを調べて、評価の高いものを選ぶことです。

 

オンラインサービスの利用

最近では、プログラミング学習のオンラインサービスもあります。

 

有名なところでは、ドットインストールやprogate、udemyでしょうか。ドットインストールやprogateは、無料で利用できるので、まずは使ってみることをオススメします。

 

セミナーやイベントへの参加

各地で様々なセミナーやイベントが開催されています。もちろん、初心者向けのセミナーやイベントも、頻繁に開催されています。

 

会場に足を運ぶことで、モチベーションの維持にも繋がりますし、自分と同じ状況の参加者と出会えるかもしれません。もしかしたら、今後のメンターに出会えるかもしれません。

 

独学とは言っても、やはり他者がいる方が頑張れますし、相談もできますので、仲間探しは非常に重要です。

 

(上級者向け)イベントに開催側として参加

これは、ある程度技術力があったり、知り合いがいないと難しいかもしれませんが、イベントの開催側にまわることもできます。

 

イベントを開催しているメンバーには、より高いモチベーション、技術力を持った人が多くいるはずです。彼らに刺激を受けて、様々な技術習得ができるはずです。

 

スクールで学習

独学での学習は、モチベーションの維持が難しい、どこから手をつけたらいいか分からない、といったことから、途中でやめてしまうことが少なくありません。

 

その対策としては、スクールに通うということをオススメします。

 

スクールに通うことで、

  • スケジュールがあるため、途中で辞めにくい
  • 効率的な学習ノウハウを提供してくれる
  • 分からないところがあれば、質問ができる

といったメリットが挙げられます。

 

一方、独学と比べると、

  • 費用が高い
  • 時間的な制約が発生する
  • 場所的な制約が発生する

というデメリットもありますが、スキルを習得することによる将来的な年収アップを考えたら、これらのデメリットは、投資と考えて問題はありません。途中でやめてしまうのが、最も問題です。

 

通学型のプログラミングスクールで有名なところは、以下でしょうか。

 

 

 

  • TechAcademy

 

 

  • CodeCamp

 

 

  • リナックスアカデミー

 

 

 

システムエンジニアが技術力アップするための方法まとめ

常に勉強し続けないと、一流のシステムエンジニアでありつづけることはできません。

 

そして、技術を身につけるのであれば、できるだけ短期間で効率的に習得したいですよね。

 

自分の学習スタイルを築くことがなにより大切です。自分に合った勉強方法を確立し、一流のシステムエンジニアを目指しましょう。

Copyright © 2017 kurasutasu.com

All Rights Reserved.