見出し画像

【ITエンジニア・ベテランブログ】~システム開発はテストが肝心~テストが若者を成長させる理由

株式会社CREARAIZE ベテランSEのTanakaです。
最近は気温が少し下がり、日中もかなり過ごしやすくなってきましたね。
ここのところ35℃以上の日が続いていたので、30℃くらいだと涼しく感じます!
慣れは怖いですね。
日々、開発をしていると慣れで行ってしまうことがあるので、定期的に知識の棚卸をして、初心を思い出すのも大事ですね。


今回は、テスト工程について、詳しく解説したいと思います。
テストはボリュームが多く、テストの意味や意義を理解していないと、取り返しがつかない事態になってしまいます。とても大事な工程ですね。
テストの解説をするには、システム開発の工程を知らないといけません。そこで、先ずは、どんな工程があるか解説していきます。

システム開発の工程のおさらい

システム開発は、いくつかの工程に分かれていて、上流工程と下流工程の大きな分類に分かれています。それぞれの工程で、必要となる知識が異なります。

上流工程・・・

要求定義
 お客様から要望をヒアリングし、どのようなシステムを作るのか整理していきます。
何を実現したいのか!を整理します。
要件定義
 システム化するべき、機能や条件を整理し動作する範囲を決めます。
システム化するためには何が必要か!を整理します。
設計書作成
 要件定義を元に、システムに必要な機能を開発ができるように設計書に落とし込みます。設計には「基本設計・詳細設計」の2つがあります。

下流工程・・・

実装(コーディング)
 上流工程で作成された、設計書を元にコーディングを行います。
 一般的に、システム開発と言うと、この実装工程が思い当たるのではないでしょうか!
テスト
 コーディングされたソースが正しいか、確認をします。
 テスト工程にも、大きく「単体テスト・結合テスト・総合テスト・受入れテスト」の4つの工程に分かれています。
 
沢山の工程に分かれていて、どの工程も重要で、欠かせない工程ですね。

テスト工程の詳しい説明

その大事な工程のテストについて、もう少し詳しく解説しましょう。
各テストは、上記で示した工程に紐づいて実施されます。
・単体テスト < ----- > 詳細設計
画面や機能ごとに動作検証を行います。
・結合テスト < ----- > 基本設計
他のシステムやプログラムと連結させて動作検証を行います。
・総合テスト < ----- > 要件定義
本番運用を想定した、システム全体での動作検証を行います。
・受入テスト < ----- > 要求定義
お客様が希望通りでできているか、システム全体の動作検証を行います。
 
テストの順番は、単体テスト→結合テスト→総合テスト→受入テスとなり、上流工程を遡る形になっています。
各テストごとに、どんなことをテストするのか項目を決めるテスト仕様書と、そのテスト仕様書の通りにテストを実施する打鍵に分かれています。
テストは上流工程の成果物ごとに実施されるため、とてもボリュームが大きくなることが分かります。

テストのタイミングは

大規模なシステム開発は、ウォーターフォールで開発されることが多いです。
ウォーターフォールは日本語で言うと、滝の意味です。システム開発も同様に上流工程から下流工程に順番に開発の工程が進められます。これが上から下に流れる滝のように見えるため、ウォーターフォールと言われています。
テスト工程は、ウォーターフォールの最後になる大事な工程です。プロジェクトも大詰めとなり緊張感が高まる時期ですね。

テスト工程にこだわる理由

各工程ごとに作成したものは、有識者やお客様がレビューを行います。それでも見落としや勘違いなどでバグが潜んでしまうこともあります。
そのため、開発したシステムの精度を高めるための最後の砦が、テストということになります。
障害が発生した時は、そのテストができていなかったことになります。逆を言えば、そのテストの実施ができていれば、障害を防げたことになりますよね。
そのため、テストではシステムが突然止まるなどの想定外が無いように、色々な観点で実施します。
つまり品質の高いテストは、システムの品質に繋がっています。

テストが成長の近道

テストは若手が実施するイメージが強いかもしれません。
実際、若手は単体テストなど担当することが多いものです。
実は、上流工程に紐づくテストは、決められた通にできているのは当たり前で、今までの経験を活かし、テストの観点に不足が無いかテストをしながらチェックもしています。
そのため、若手では難しく経験を積んだメンバーが担当することが大切です。
 
若手はテストを担当す際に、決められた通りに機械的に実施しては、勿体ないと思っています。
なぜ、こんなテスト項目があるのか!や、テストをする際の手順やデータ構成なども興味を持って見てみると、お客様の業務やシステム開発の理解に繋がります。
知識を吸収するチャンスなのです。当社では若手社員に積極的にテストに関わってもらい、経験を積んでもらっています。

まとめ

如何だったでしょうか?
プロとアマの違いに、テストに掛けるコストの違いがあると思います。
細心の注意をどんなに払って作成しても、バグはあるものなのです。そのため、テストが重要になるわけですね。
また次回、お会いしましょう😊

-------------------------------------------------------
弊社では、
新卒の方、転職活動中の方、検討中の方含め
経験者未経験者問わず積極採用中!
あなたのことを聞かせて下さい!

https://en-gage.net/crearaizeinfo_career/
-------------------------------------------------------

リンク

弊社ホームページ:

弊社ブログ:

弊社新規募集 Re就活テック

弊社Facebook:

弊社X(Twitter):https://twitter.com/crearaize