まったりシステム開発~テスト編~

記事
IT・テクノロジー
こんにちは!

少し間が空きましたがまったりシステム開発テスト編です!
今回も作業画面を少し出しつつ簡単に説明していこうと思います。
今回は完全に内部の話になりますので内容自体はレベルが高いです。
ご注意ください

ソースのチェック

まずはプログラミングを行った後目視でチェックしていきます。
重要な記号が1文字抜けていただけでエラーになるので
結構重要なチェックとなります。
このチェックは使用している開発ツールが場所を教えてくれる
レベルのものですので比較的簡単に終わります。
tes.png
例えばこの画像の場合合計3か所エラーがでています。
このまま実行ボタンをおしてもエラーで動作しません
trueの後ろに;がないものと存在しないbutton15という変数を指定している点
存在しないLoadというメソッドをしている点でエラーが出ています。

これは優しいエラーで大体の場合はすぐに修正できますが、
外部のライブラリを使っている場合このエラーに
苦しめられることもあります・・

ユニットテスト

ここからは実際の作業ではやったりやってなかったりですが、
必要に応じてやっている内容となります。
今回は簡単に上から足し算、引き算、
掛け算、割り算の機能を用意してみました。
tes.png
このaとbに数値を入れることで計算を行っていきます。
今回は簡単な機能となるためなにもしなくてもわかりやすいですが、
本当のソフト開発では、1つの機能が非常に複雑になります。

1つ1つの機能を精査するのも大変ですし
仕様変更で機能が大幅に変わることもあります。
それらに対応するため場合によってはユニットテストを使います。

これが上から足し算、引き算、掛け算、割り算をテストするものです。
内容が難しいため簡単に砕けた説明をすると足し算をする機能に
3と6を投げた場合に、答えの9が返ってくるかの確認をするものです。
tes.png
引き算や掛け算、割り算も同じような内容で、
掛け算では3×6が18と正常に帰ってくるかを確認しまします。

上記を実行したときの結果がこちらです。
今回は正常な結果となりました。
tes.png
計算式が間違ってたり予測値が間違っている場合は
下記のような結果になります。
tes.png
今回は上から2番目の結果が異常なものになっています。
このようにしてチェックする方法もあります。

複雑度チェック

ソースコードが複雑になるとテストもチェックも大変です。
そこで複雑度チェックも行います。
とあるソフトの複雑度チェックの結果です。
tes.png
保守容易性、サイクロマティック複雑度、継承の深さ
クラス結合、コード行という項目があります。
簡単に説明していきます。

保守容易性
0~100で表示され100に近いほど不具合修正や
機能追加などが行いやすくなります。
サイクロマティック複雑度
複雑度の指標で数値が高いほど複雑になりバグが発生しやすくなります。
継承の深さ
数値が低いほど単純なプログラムということになります。
クラス結合
こちらも数値が低いほど単純ということになります。
コード行
コードがどのくらいの行あるかの表示になります。
簡単なプログラムなら見積の参考になるかもしれません

動作チェック

あとは、実際に動かしてみてからソフトを操作してテストを行います。
実際はこの実際に動かしてのテストが多いようにおもいます。
例えば数値を入れるところに文字を入れたらどうなるかの
チェックなどを行います。

今回はテスト編を解説しましたが専門的な分野が多くて
ちょっとわかりにくかったと思います。

また複雑度やテスト結果については基本的に開示も
してませんのでブラックボックスな部分が多いです。
他の同業者もそこまで開示はしてないと思います。

次回は不具合修正編ができればと思います。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す