ペアプロやってみた

3月行われるTDD Boot Camp福岡に参加申し込みしました。
そこでテスト駆動開発の練習としてNaoki_Rin氏とペアプログラミングをやってみました。


使用した言語はC++で、テストはBoost::TestとGoogle Testの2種類で行いました。
C++でテスト行うのは初めてだったものだからNaoki_Rin氏からアレやコレやと教えてもらいました。
実際にどんな事やったか細かく記載しようかなと思ったのですが、0時過ぎてて眠いのと明日の朝から全体ゼミがあるという事を考慮してザックリ記述します。(けして怠けてるわけでは…)


今回行ったペアプログラミングのお題は次のとおり。

 ・FizzBuzz
   使用したテスティングフレームワーク:Boost::Test
   主に記述した人:私(その後、Naoki_Rin氏によるリファクタリング)
 ・マイヤーズの三角形問題
   使用したテスティングフレームワークGoogle Test
   主に記述した人:Naoki_Rin氏
 ・HelloWorld
   使用したテスティングフレームワークGoogle Test
   主に記述した人:私

使用したテストって書いたけど、実際にはライブラリと書いたほうが良かったのかな?*1
眠くて判断が(´・ω・`)。
何か言ってる事変だったら色々突っ込んでください後日修正します。多分…


まず最初にFizzBuzzを作成しました。
FizzBuzzっていうのは、1から順番に数字を言っていって、3の倍数だったらFizz、5の倍数だったらBuzz、15の倍数ならFizzBuzzと答える英語圏の言葉遊びらしいです。
今回は値を渡したらそれに対応する結果を返すように作成。
うん何ていうの色々とミスりました。
タイプミスとか、タイプミスとか、クラス作るのでもたついたりとか後タイプミスしました。
クラス作りでもたついたというのは厳密に言うと

 ・コンストラクタをprivateに書きそうになる
 ・値をgetしたりsetしたりするためにpublicじゃなくてprivateに(ry
 ・メソッドの戻り値の型を記述しそこねた。
 ・new演算子つかってインスタンス化したのにdeleteするの忘れてた

などというミス。いろいろ酷い…正直すまんかったorz


次にやったのがマイアーズの三角形です。
内容はこんな感じ

三角形の3辺の長さを表す3つの整数を読み、できた三角形が不等辺三角形・二等辺三角形・正三角形のうちのどれであるかを判断する。

家に帰ってからこの問題について少し調べてみるとソフトウェア・テストの技法という本の冒頭に書かれている問題だそうです。
でもってこの問題を設計する場合に重要となるポイントは14個あるそうです。
あの時、実装したのは4個*2だから後10個ある事になるのか…なんだろ?
与えられたのが数字以外であるとか、渡されたデータが不足してるとかそういうのかな?
でもそれ足しても6個くらいだからまだ半分いってない事にむむむ…


最後にHelloWorldやりました。
やってない私がGoogleTestを見て終わるのはアレだから実際に使ってみようというのと、分散型バージョン管理システムMercurialを使う練習を兼ねてます。
渡した文字列をHelloの後ろに付けて返すように作成。
でもって作成したコードを利用してコミットや、ログの確認、diffの確認をしました。


初めてペアプロやったんですが、率直な感想いうと楽しかったと思います。
方針決めてアレやコレやと作成したり、使った事ない機能とかについて色々聞いたりとワイワイやるのはいいのうと思いました。
その分説明してたNaoki_Rin氏は凄く大変だっただろうけど(´・ω・`)。
ペアプログラミングを行う環境の準備から何から色々お疲れ様でした。


反省点として特に申し訳ないなぁと思ったのはコーディング久しぶりで色々ミスとかして足引っ張ってしまった事でしょうか。*3
勉強会では「あんまり(ry」みたいな事ばっかり言ってたら話にならないので、そうならない様にもっと勉強頑張らないといけないなーと再確認しました。
あとjavaC++とかでテスト出来るように環境整えるというのもありますが、SCM関係全く入れてないし触ってないという状況だからそっちの方も何とかしないとなと思ってます。
3月の上旬くらいに実家へ帰るので、それまでにある程度の環境をノートPCに入れておきたい所です。
HDDを現段階で結構圧迫してるし冷却ファンの音が音が怪しいので一寸不安だけど実家だとそれだけが頼りだからなぁ。
もう一寸なんじゃ…もう一寸だけ持っておくれ…(´・ω・`)


とりあえずTDD Boot Camp福岡まで後一ヶ月とチョイくらいなので、やれるだけの事はやっておきます。
また4月に控えた基本情報の勉強も頑張ります。
2月に入ったら勉強しようとか言ってたのにまだやって無かったよ…orz

*1:テスティングフレームワークに後日修正。コレで大丈夫かな?

*2:正三角形である、二等辺三角形である、不等辺三角形となる、2辺の和が1辺より短い為三角形が出来ないの4つ

*3:何か毎回言ってる気がするコレ…