こんにちわ!
今回は、テストに対する苦手意識の芽生えと、習得を目指すきっかけとなったお話です。
先に結論
結局のところ私は、やらないといけない状態
に陥ることでやっと本腰を入れた形です。
テストが苦手になったきっかけ
28歳でwebの世界に飛び込みんだ当初、
HTMLやCSSのコーディング、バナーを作りをメインで行っており、ロジックの部分に関しては全てエンジニアにお願いしていました。
ロジックの作成なんてまったく行わない私は、当然ユニットテストにも出会わず、その大切さも知る由もありません。
たまにコードを見せてもらっても、私にとっては謎な英単語ばかり。
var?function?new??prototype?正規表現??? (JavaScriptやphp)
自分にはプログラミングなんてできない!ロジックなんて書けない!そういった意識から
ロジックはエンジニアが作るもの = プログラミングは謎めいている = テストはエンジニアが書いている = 自分にはテストと縁がないだろう
そう思うようになったのがきっかけでした。
単純に、怖かったんです。
テストに対する印象の変化
テストに対する印象(初期)
時は流れ、JavaScriptを用いたissue対応をする機会も少しづつ増えてきました。
しかし、ユニットテストを書くという習慣はありませんでした。
「テストって書くのが大変」 「テストを書くのに1日かかる」 「テストを書く時間がない」 「テストだるい」
当時よく見ていたweb上のコミュニティや、ブログ記事にて、こういった発言をよく見かけ(てしまった)たこともあり、やはりテストは大変で面倒臭いものなんだな、という印象は引き続き根付いていました。
テストに対する印象(変化)
さらに時は流れ、以前よりJavaScriptが書けるようになってきました。
この頃から、
複雑なロジックとテストを書けるエンジニアは凄い!自分も複雑なロジックを書きたい!
そう思うようになっていました。
プログラミングやテストに対してネガティブなイメージを持っていたからこそ、それができる人がカッコいい!
憧れがあったんです。
謎めいていたプログラミングが読めるようになり、自信もついたことで考えも変わりました。
ロジックは自分でも書ける = プログラミングが少しわかる = テストはエンジニアも書いている = 自分も書いたほうがいいのだろうか?興味がある
この時の私
テストに興味はありましたが、それでもテストを書くということはしていませんでした。
私の思うテストといえば、作ったものを実機で動かす動作確認だけ。
正しく動いていることを確認してたらすぐリリース。という流れがしみついており、早くリリースすることこそ正義で正解
と思っていました。
この頃には既に、こっちを直すとこっちがバグる
といった事に出会っていました。
もう出会いまくっていました。
処理を書き直すということをせず、ひたすら突き進む。
今のまま何とか動かすため、条件分岐をいくつも追加して...といったことをしていました。
(グチャァ)
テストと向き合うきっかけ
さらにさらに時は流れ。デザイナー(フロントエンド)としてエイチーム入社。
そして昨年、Next.jsを用いるプロジェクトにアサインしました。
TypeScriptを用いたコンポーネントやStorybookの実装をメインで取り組み、ロジック部分はエンジニアが実装。
役割を分担しながら並列で開発することで時短を図り、後から1つのブランチに統合するといったスタイルを取りました。
ロジックの実装には当然Jestを使ったテストが存在しました。
UIとうまく繋ぎこめているかレビューする必要があります。
「うっ、Jestやっぱり難しい。...ってかさすがにもうテスト苦手とか言ってれんわ!やろう!」
そんな状況に陥り、本格的にユニットテスト(Jest)に向き合う決意を固めました。
まとめと現在
以上がテストに対して持っていたイメージの始まりと、習得を目指すきっかけの出来事でした。
もしかしたら似たような経験を持った方はいらっしゃるでしょうか?
当然のようにテストがある環境にいれば、また違ったのでしょう。(それはとても素晴らしい環境だと思います)
さて、現在私は実務でテストを書いています。
テストに対する印象は書いて当然、テスト絶対書きたい
に変化もしています。
ただ、テストを書き慣れているわけでは無いので日々必死ですw
今年の夏が始まる頃には、バリバリテストを書けるようになっている予定です(決意)
それでは皆様、よいテストライフを!
次回は、今難しく感じている点をどう乗り越えたかなど話せたらと思います。
あとがき
書いて当然、テスト絶対書きたい
この意見に至ったのは下記書籍を読んでからです。
社内で開催された読書会でこちらの本を読みました。
何故テストが必要なのか、得られる恩恵は何なのか、テストとビジネスがどう結びつくのかなど知ることが出来ます。
日々の開発に取り入れる考え方や具体的な実践について解説されています。
(なのでサンプルコードはほとんど出てきません)
テストの必要性についてまだピンと来ていない方にはおすすめです。
大変、面倒臭い
とかそういう話では無いこと理解できます。
今進めている教材
-
Jestではじめるテスト入門
めちゃくちゃ詳しく丁寧に説明されており、お気に入りですね!
この本を進めてから、実際にテストを書くことが出来てきました。
おしまい