ソフトウェアのテスト技法
読むきっかけ
システム開発において、テストケースを作ったりテスト実施をしたり、またテスト結果のレビューをしたりもしていた。 が、体系的にテストを学んだことがないな、と感じたので購入。
所感
ブラックボックス、ホワイトボックス、境界値などの言葉は 業務中に何度も耳にしていたし、同値クラスや状態遷移などは直感的に"テストすべき"とわかる、 取っ付き易いテスト。 ただそれぞれ言語として頭の中できちんと整理できていなかったので、 そこは体系的に理解できたので、スッキリした。
一方で、ペア構成、デシジョンテーブルなどの、テストケース作成のための手段・道具に ついてはあまりスタンダードなものでも理解できていなかったのだな、と感じた。 網羅テストという名前で理解していた制御フローテストやデータフローテストについても、 ケース作成のテクニックが記載されており、取っ付き易かった感。 この辺りは一度この本を読んで、概要は理解できたので、どこかしら自分の開発における テストケース作成に利用してみるかな。
また、テストケースの作成やテストそのものの技法以外にも、 テストマネジメントと言うべきか、「如何にテストを計画し、遂行するか」という点に ついての記載が多かったのが好印象。
古き良きウォーターフォールや、それに対するアジャイル開発、 それぞれどのようなタイミングでどこまでのテスト計画をたてるべきか、 テストにおいて必要な文書としては基本的に何があれば良いか、非常に丁寧に解説してあった。
この本を読んだことで、現在のプロジェクトにおいて、 テストの粒度がバラバラだったり一部できていなかったり、といったトラブルは、 如何にしたら防げるか、をじっくり思案することができ、有意義だったかな。
Output案
現在作成中のプログラムにおいて、この本を読みながらテストケースを切り、実施する。
評価
★★★★
2018-2019
こと の おこり
前々から、技術についても趣味についても圧倒的に継続的活動と、 アウトプットが足りないという懸念を持っていた。
やりたきはアウトプットによる理解の浸透と、振り返りによる各種改善アクションの策定、 キャリアプランの進路修正、備忘録という知識の蓄積など。
懸念は常に頭の中にあれど、この1年は業務でてんてこ舞いだったり、 私生活でも変化が大きかったりといった要因(言い訳でしかないが)により、 単発の活動(Golangの勉強、ハッカソンへの参加など)は実施したものの 継続性のある活動はできなかった。
心機一転、というとまたしても失敗の匂いがしてきそうだが、 そもそもブログを作ったのも技術的な記事のアウトプットが目的であったので、 まずはこれを再開することとした。
一年の計は元旦にあり、というやつを考え、まずは振り返りと計画を(もう既に二日であるが…)。
あくまで暫定版で、最初は1ヶ月ごとぐらいに見直しいたいところ。
2018年振り返り
仕事
良かったこと
- 仕事、職場そのものに慣れてきた
2017年8月に転職をしてから年度が変わる頃まで、 動き方があまりわからない中をがむしゃらにやっていたが、 徐々に周りの環境やらメンバーの人となりがわかってきた。
プロジェクトでの立ち位置や関係する人も変わってきているが、 "知る"ということの大きさ、と"わからない事柄"を"知る"ための プロセス理解は深まった。
悪かったこと
- 仕事を受け過ぎた
業務を受ける経緯は「xxをやって欲しい」という依頼であったり、 そういった依頼を受けた時に「自分がやらなければ誰も適任がいなそう」という ホスピタリティを発揮していたのだが、これが完全に裏目にでた。
元々技術要素のある業務を期待して各業務へのアサインを受領したものの、 蓋を開けると並列実行でチームリーダーを複数任されたことで、 コスト管理と上辺だけの状況把握、スケジュール管理、調整といった まるで自分の伸ばしたいスキルでない業務を行うこととなってしまった。
人の動かし方、仕事の振り方、自己管理、断片的な技術知識など、 まるで成長がないわけではないが、求むるところではなかった。
悪いこととは書きつつも、この求むるところではない、 という点に気づけたのは良かったし大きかったというのは確か。
また、この仕事を受け過ぎたことによって会議が山のように増え、 並列実行していた技術要素含む業務が優先度的に圧殺されたり、 自己成長のための技術調査の時間を設けることができなかったり、 深く物事を考えるような時間がなくなってしまった。
この辺り、業務を振られるときに深く考えなさ過ぎた節はあるし、 興味で動いた代償ではある。 深く考えなかった理由としては、上司の助言、 及びコントロールに期待していたからなのだが、それは見限った方が良いと理解。
あとは完全に自己責任の範疇だが、プロジェクト自体にそもそも やる意味があるのかないのか判然としない状況であるのも モチベーションを下げている要因である気がしている。 ここについては、自分でやる必要があるのかどうか、それに自分が関わってどうすべきか、 常に意識してアサインを受けたり意思決定せねばと猛省するのみ。
- 時間にルーズになりつつある
嫌になっているし、いた仕方ない面はあるのだが、周りから見たら怠惰であるだけである。
私生活
よかったこと
- 入籍やら結婚式やらのタスクが一段落した
後は本番を残すのみ。のはず。
タスクとしてだけではなく、結婚は良いな、という感じがある。
自身の時間が少なくなるなどの問題はあるものの、 まだまだ改善の余地はあるので、自分のやりたいことと 家庭とのバランス取る方法を模索したい。
悪かったこと
- 健康面が悪化
年のはじめ頃からランニングを定期的に行っていたが、 仕事での帰りが遅くなってやらなくなる&&精神的な疲れから お酒や食事に逃げてしまった故に体重も筋力もその他諸々悪くなっている感。
- 技術的な勉強&開発ネタを思いつくけど着手できない、持続できない
これは前から。
数日頑張ることもあるが、忙しいことをネタに止まってしまうことが多い。
朝活でやろうともしたが、忙しくて帰りが遅い→寝るのが遅いのコンボで続かず。
趣味
自転車
大学時代にできなかった琵琶湖一周は達成した。 トレーニングも兼ねて多摩川沿いを横浜-立川間で往復もした。
全体的に乗った総時間は少なかった感。
妻もロードバイクデビューしたものの同様。 連れ出す口実にするとかが良いのかもしれない。
音楽
DJは全くできず。本当に1度ぐらいしか回さなかったのではないか。
ストリームサービスに加入→音源がない→wav取り込みできない→いい曲は知っていてもDJまで繋がらない
という問題もあり。
日常Spotifyなどでどんどん放り込んでいるお気に入りからプレイリストを作ってそこから mix模索する活動につなげたい。
ゲーム
音ゲーは進捗なし。ゲーセンに行かなくなってしまったが故。
Splatoonも少しやったぐらい。
Undertaleはハマった。と言っても2日ぐらいでTrue Pacifistルートまで終わって終了している。 とてもよいものだった。Genocideルートはできる気がしない。 Deltaruneに手を出すべきか悩ましい。
年末にはスマブラの修行を開始した。 事故死が多い。
2019年抱負
まとめ
- キャリアパス考案(〜1/15)
- 継続アウトプット(通年)
- 継続開発(通年。大小問わず12プロダクト作成) → 資格
- タスク運用確立(〜1/15)
- 継続読書(通年)
- 継続英会話・英単語(通年) → 資格
- 継続運動(通年) → 体重削減
- 継続的お金の管理
- 不必要に業務を受けない
詳細
キャリアパス考える
アサインをホイホイ受けてしまう要因にもなっているが、キャリアパスがあまり精緻に考えられていないのが課題。
うっすらとやりたい/やりたくないの判別はつくものの、短期的な感情でものを言っている感もある。
- action plan
1月中頃まで長期休暇があるので、改めて何歳までに何を実現したいかを考え、書き出す。
- goal
考えた結果を書き出して机の前に張り出したら終了。
アウトプットの習慣を付ける
通年。これが一番の目標でもあると思う。後輩がうまい具合に実践していて悔しい感もある。
インプットした際に何をアウトプットするかのアクションプランも意識する。 書籍や、Pocketの記事など特に。ただ読むだけでなく、感想を書く、実際に手を動かしてみる、など読む前に決めてみる。
- action plan ブログ、Qiita、日記と使い分けて、基本的には隔日でいずれかを更新する。 完全なものを求めずに、途中経過でも書くとか100点版でなくてもどんどん出していく。
pocketの記事など軽めのものについては思考の垂れ流しtwitterでも良いから読んだら呟く。
3日坊主で空きが出た際にもとにかく復帰する。仕組み化が必要であれば仕組み化する。
開発の習慣付け
通年。
- action plan 一日1コミット。
仮にろくでもない修正や、コメントのみでもコミットしてGithub全面に芝を生やす。 そうすれば出来ていなさも実感できるし、気づきもあると仮定。
Container周りの技術にしても、分析系のプログラムにしても自分でとにかく触って、 コード的にもドキュメント的にも記録を残して、振り返り、改善する。
- goal 1ヶ月1プロダクト(年末までに12プロダクト) 資格試験
タスクコントロール
仕事も私生活もそうだがタスクコントロールが破綻しがち。
Wunderlist、Todoistなどツールはある程度使い方や運用を考えるのだが、 一度運用が崩れると放置することが多い。
タスクコントロールと、その復帰方法まで含めて考える必要がある。
継続書籍
通年。Kindle買ってもらったこともあるし、通勤に往復3時間かかるのでそれを利用して読書を推進する。 年24冊目標。これでも少ないか
- action plan 2週に1冊以上のペースで本を読む。
対象は技術書、ビジネス書、小説。
- goal 特にないが、年末までに24冊の読破が目標。
英語
単語・読解・会話それぞれが必要。 (いずれかの要素だけやろうとして毎回失敗している気がする…)
action plan 1月中頃から以降年末まで、英会話はSkypeで。 単語については今はアプリで実施中だが、選択肢性で推理ができてしまうので改善が必要。 1月中に要対策して毎日実施。
goal TOEIC、TOEFL、英検辺りに目標を定める(1月中) 目標達成(〜10月)
運動
既に2日間運動しない日が続いてしまっているが…
action plan 毎日走るor筋トレ。 最悪でも7min運動はする。
goal 体重20kg減(〜6月)
お金の管理
夫婦共々ルーズ過ぎるので管理方法を定める必要がある。
action 管理方法の検討・作成(〜1月末) 実施(2月〜)
goal 目標額まで貯金
業務を断る
- action plan キャリアパスに繋がらない業務や、不必要と思われる業務は断る。
必要でも時間の猶予ややりたいことを考え、やらないことを宣言する。
- goal "自分のやりたい業務"の比率を60%以上にする
とりあえず暫定版ということで。
夏休みの自転車旅行を中止した話
3年ほど前から毎年夏に泊りがけでロングライド(300km以上)を走っていたので、今年もシルバーウィークを利用して行った。
計画段階では1000kmを走破する経路を考えていたが、結局生憎の台風とその影響による秋雨前線により300kmに到達しない段階で断念。
来年も同じコースを走るかもしれないのでメモ程度に残す。
軌跡
旅程
0日目(9月16日)
職場で午後休をとって、自宅である横浜から本州の西端である下関に移動。 電車賃は2万円程度。 13時に横浜発、新横浜で新幹線に乗り換え、広島で新幹線各停に乗り換え。目的地の新下関駅に着いたのは19時半。 6時間半の電車は後の予定に備えて寝たり、旅行用にkindleで購入した機械学習のいろは本を読んだりして時間を潰した。
写真を撮り忘れたが、昼食には崎陽軒のシューマイ弁当を初めて購入して食べてみた。 見た目は少ないように見えるがご飯の密度が高いのか、弁当だけで十分満腹に。メインのシューマイも3つ程度で十分であった。
全体的に道のコンディションは良く、傾斜も急ではないので非常に走りやすい。 某ブログに「山口県は総理大臣を数人排出しておりその恩恵」と書いてあったのだが、本当にそうなのではないか、というぐらい整備がされている。 特に自転車と共用の歩道が殆ど全域にあったのが大きかったように思う。 トンネルにもしっかりした歩道が用意されており恐怖心は感じなかった。 とはいえ国道。トラック含む車は比較的スピードを出しているので、断片的に歩道が無い部分では緊張した。再度走る際は明るい時間帯にすべき。
行程内での大きなトラブルは無し。細かいトラブルとしてはフロントライトのバッテリー切れなどがあった。このライト、ロードバイク購入時におまけで付けてもらったもの。 光量は異様に多いのだが、その分持続力が無い。約1時間程度でバッテリーが切れ、非常に焦った。 マイクロUSB端子で充電が可能だったためモバイルバッテリーでチャージして難を逃れたが…購入時に一言欲しかったなぁ、としょんぼり。
そんなこんなで3時間ほどほぼぶっ続けで走った後新山口駅に到着。到着の後宿探し。 当初目を付けていたホテルは満室だったが、駅近くの別のホテルがとれたのでそちらに宿泊。エネルギー補給の後就寝。
1日目 (9月17日)
- 新山口~下松
朝6時起床。30分で朝食・準備を整え、6時半出発。 10km弱走ったところでNAVITIME先生から周防往還自転車道に入るよう指示があるので国道を外れる。 この自転車道、比較的早朝だったこともあってか全く人がおらず快適に走行。
の、はずだったが、自転車道に入ってすぐに後輪に違和感を覚え、確認した所パンク発覚。 パンク穴を確認しようとするも特定ができなかったためチューブ毎交換に。久々の交換ということもあってか30分以上ここでロス。 適宜やらないと忘れて駄目ですね。
その後は下松まで順調に走行。小ぶりな峠があり、日差しが強い中何度か休憩はとったものの、特に難所は無し。
- 下松~岩国~大竹
下松を過ぎると若干登りが多めになってくる。体力低下中の自分には大分厳しく休みを挟みつつ進むと岩国市へ。 岩国市に入るとじわじわくる登りは少なくなるが、逆にアップダウンが激しくなる。下る時は一気に下れるが、気持ちよく下った分は直後にまた登ることに。 ペースを崩しつつも13時ぐらいには岩国市街に到着。写真は岩国の観光名所の一つである錦帯橋。
昼ごはんを探して進むうちに岩国市街を抜けてしまう。自分の自転車旅行ではこのように「ダラダラしていて好機を逃す」のが多いように思える。 ただ、腹はどんどん空いてくる。ので、大竹市に入ってから最初に見つけたショッピングモールのマックにて昼食。
- 大竹~広島
大竹市から広島までほぼ平坦区間。途中宮島が右手に見え、少し寄りたい気分もするが時間が押す可能性もあったので先へ。駅の写真だけは撮っておいた。 広島に入っても特にペースは変わらず。信号は増えるが、横浜などと違って自転車が逐次止まる間隔ではなかったと思う。
- 広島~東広島駅
ここがこの日最大の難所だった。NAVITIMEの傾斜からも予想はついていたけれど、広島から離れるにつれどんどん山になっていき、且つ傾斜も登り調子(?)に。 さらにこのタイミングで日が暮れ始める。去年まではロングライドは8月にやっていたので、19時が自分の中で日没の目安だったのだが、この日は18時過ぎには真っ暗。 とはいえ引き返すのは癪だし、体力は残っていたので先へ。
この辺りの山道は歩道が殆ど無いか、あったとしても自転車向けでないので結局車道を走る。ただ、車道にはトラックが多いという八方塞がり。 道そのものもカーブが多く且つ登りばかりなので完全にここで体力が無くなっていた。
山道を何とか通り過ぎ、東広島市に入ると、急に市街地に入る。 ただし、この日目的地としていた新幹線東広島駅は市街地を下ったところにあるのでひたすら下る。 この下りが10km程度と意外と長く、雨も降ってきたため市街地にも関わらず体力を持っていかれた。
そんなこんなで何とか東広島駅にたどり着き、宿探し。東広島駅は人気が無さ過ぎて少し怖いレベル。
が、ここで大誤算。 新幹線東広島駅付近にはホテルが2件ほどしか無いことが判明した上、どちらも満室。 東広島市街地の方にもホテルがあったのでそちらにも連絡したが、満室。あとで聞いたところによると 広島カープ優勝に伴った?試合があり、且つシルバーウィークということもあって満室だったとのこと。悲しみ。 流石に野宿は体が保たないので焦ってホテルを探すが、周りには無いため次の都市(三原市)のホテルを確保。 そのホテルもツインが一室のみ残っていただけなのでギリギリ。体力的には限界だったが、下り&小雨ということもあり次の街に行くことに。
出発直後、雨脚が強くなった上また山道のみになり、先の判断が誤っていたということを痛感。だが後戻りも出来ないため先に進む。 予想通り主に下りではあるのだが、山道でアップダウンがあり、且つ雨も酷く、暗い中、トラックが高速で横を走り抜けるという地獄。 さらに、下りであるがゆえに、ブレーキ握りっぱなしだったのだが、雨のため制動距離が伸びるため手にかかる負担が最高潮に。
去年度の自転車旅行の際問題と鳴った体温の低下を教訓に、今回はレインウェアをすぐ着たのが幸いし凍えることは無かったが、三原に付く頃には肉体的・精神的にボロボロに。 到着したのは22時半とそこまで遅くはなかったが、ホテルにチェックイン&エネルギー補給してから倒れるように眠った。
2日目 (9月18日)
朝6時起床。天気予報にて広島全域に大雨注意報が発令されていたため、この時点で旅行を断念。
所感
旅程に記載したように主に天候のため断念したのだが、1日目の終了段階で肉体・精神が死んでたのも確か。 来年は下記反省点を活かして臨みたい。
- 体力面
体力に関しては今回慣らしのために横浜⇒甲府の100km程度の走行はしていたが、開始前2週間前に始め、且つ週一ペースだったので十分とは言えない。
- 精神面
今更だが、自分の一日の適性距離が150km程度なのに、行程内で1日200km以上走る日が存在していた時点で何かがおかしい。 また、日没の確認が甘かったために夜山道を走る羽目になっていたのも反省点。
装備
参考までに今回の装備。 必要最低限ではあると思うが、来年は15を除去したいところ。