ユニットテストについて調べた結果 まとめ②
前回の記事はこちら
さてさて。
前回の続きです。
宿題が2つありました。
1、ユニットテストの種類について
2、アジャイルでユニットテストは必須かどうか
++++++++++++++++++++++++++++
1、ユニットテストの種類について
++++++++++++++++++++++++++++
調べていくうちに2種類あることがわかりました。
アプリケーションテストとロジックテストです。
アプリケーションテストとは、実機の中で動作させるテストのこと。
カメラの動作はシュミレーターではできませんからね。
ロジックテストとは、実機の中で動作させないテストのこと。
これは言葉のまんまでロジックをテストすること。
メソッドの中の処理が正しいのかーみたいな。
基本的に「テストコード書きましょうよ」はこっちを指してそうな印象。
++++++++++++++++++++++++++++++++++++++
2、アジャイルでユニットテストは必須かどうか
++++++++++++++++++++++++++++++++++++++
アジャイル開発では、テストコードを書く工程が必須だと聞きました。
聞いただけなので、本当かどうかを調べる事にしたのです。
これについては調べるのが少し難しくて、
調べていくうちに「アジャイルテスト、テスト駆動開発、TDD」等という
キーワードが拾えてきました。
ほむほむ。アジャイル開発の背景にはテスト駆動開発があったのね。
で、一旦の結論としては「必須」となりました。
えっ?一旦って何(° ꈊ °)✧?
そう。まだよくわかっていないようです私。
こんな記事を見付けました。
ubiteku.oinker.me
記事の中にはこうあります。
Thomas氏曰く、「我々が提案する〜をやればアジャイル開発を実現できます」というコンサルタントは間違っている。理想的なコンサルタントはこのように言う、
「あなた達にとって何が最適か、私には分かりませんし、あなた達自身にも分からないでしょう。でも、とりあえずどこからかスタートすることは出来ます。まずは適当なプラクティスを選んで一ヶ月間実践してみるところから始めてみましょう。その後、何がうまく行って、何がうまく行かなかったか評価をします。そして、その評価に基づいてやり方を変えて行きます。おそらく最初に採用するプラクティスは、XPやスクラムの本を参考にするでしょう。でも、今から半年後、あなた達のやっていることは、どの有名な手法にも当てはまらなくなっています。何故なら、自分たちに最適な方法を自分たちで編み出す事になるからです。やり方はずっと変わって行きます。変化を楽しみましょう。」
アジャイルで不変なのは「アジャイルソフトウェア開発宣言」にも謳われているその「価値」であって、方法論はチームによって、あるいはチームが置かれている状況によって変化する。
これを教えてくれたのは同じ現場の人です。
👩「アジャイルってテストコード書くの必須らしいっすよ」
👦「必須ではありませんよ、これ読んでみてください(⬆️の記事)」
なるほどー。「思想」と来ましたか。
アジャイル開発でテストコードが必須であるにも関わらず、
しっかりとテストコードを書いているのは11%だそうです。
不足しているけど一応書いているレベルのプロジェクトは34%。
必須ならやるべきだし、必須なら残りの89%はアジャイルもどきとなる。
はぁ。
ウォーターフォールでもアジャイルでも、
何でもいーからルールや方針を早く決めてくれ!
何を価値とするのか提示してくれ!
ってなりました。
この疑問の答えは一体どこにあるのでしょうか。
おしまい。
気が向いたらまた書きます。
<参考になったもの>
simplearchitect.hatenablog.com