単体テストの話
こんにちは。
タイトルについて。
ぼくの会社へ入社した友人から質問されたので書き書きします!
目次
そもそも単体テストってなんぞ?
作った個々のプログラムに対して『ちゃんと動くよね?』と確かめるテストです。
友人くんは車が好きなのでそっちで例えましょう。
車ってどうやって作られてる?
タイヤ、シート、ライト、ハンドル...などの個々の部品を組み合わせて作られてますね。
こいつらで言うと、
・タイヤは丸い?
・ライト、着くよね?
・シートはリクライニングできるよね?
・ってかハンドル切れるよね?
などなど、ホントに基本的なことを確かめるのが単体テストと呼ばれるものです。
これがまたキツいんだ。
で、なにが必要なの?
単体テスト仕様書が必須です。
・テスト番号
・確認項目
・前提条件
・実施方法
・予想結果
・実施結果
といった内容がつらつらと書かれています。大体どこでもエクセルを使ってます。
プログラム作成者がテスト仕様書を書き、テストも実施するのが多い気がする。
↓ テスト仕様書はこんな感じかな。
テスト仕様書通りに、ポチポチ実施していくのです。
今の現場でこんな感じで書いたら『細かいッスね』って言われた。いいじゃんね。
『書いた人以外でも実施できる』仕様書を心がけましょう。できない人多すぎ。
分かった。で、どうやるの?
書いてる通りにやれ!以上だ!
....ではなく、色々と準備をせねばなりません。
- テストケースに沿ったデータを作りましょう。
- テスト実施前のデータベース情報を取得しましょう。
- ログもテストケース毎に分けると、後で見やすいでしょう。
などなど。ここがイチバン面倒で大変だったりします。
準備できたおー
やっとか!じゃあテスト開始だ!
エビデンスは必ず取るんだぞ。
ただテストケースを消化するだけでオッケーではなく、第三者(リーダさんとか)に確認してもらう資料を用意せねばなりません。
『ちゃんとテストケースやったよ。オッケーだったよ。証拠(エビデンス)あるよ。』と示せるモノです。
エビデンス取るときに注意することあんの?
『他の人が見ても分かるようなエビデンスを取りましょう。』
テスト仕様書作成と同じ感じですね。
個人の能力によって理解できない要素は極力減らすべきです。
キャプチャーとかテーブルデータをドーン!と貼って終わりって人を見かけますが、頭おかしいんじゃねえの?って下に見てます。
↓こんなの
後から確認する人に『どこを見てほしいのか』が分かりません。
ぼくが確認する側だと発狂します。
じゃあどうすんの?
コメントを入れましょう!
↓こんなの
他人に見てもらうようなモノの場合、たった数秒の心遣いが工程をガッツリ減らすことに繋がります。
もっと複雑なエビデンスだと、で囲むとかするとさらにGOOD!
あなたの評価はうなぎのぼりだ!
ただし、凝りすぎて時間をかけるのはだめです。ほどほどにしましょう。
頑張ってるアピールをする必要はないのです。
さいごに
ぼくが気を付けてることを書きました。
参考になれば幸いでございます。
『誰が見ても分かるテスト仕様書を書く』
『誰が見ても分かるエビデンスを残す』
この2つを守るようにしてれば大体うまくいきますという経験談でした。
PL/SQLにはSPOOLが使えなかった話
PL/SQLのログ出力の話
こんにちは。
タイトルについて。
夏休み明け、思ったより仕事がありませんでした。
設計者が全然進めてなくて、さらに今日から夏休みらしいです。ふざけんな!
↓記事で書いたように、ストアドを作成中なのです。
80%の仕様は決まっているのですが、チョイチョイ矛盾してたりで、
「夏休み明けには設計終わらせときますよ~」
といっていたのに、
まだ85%だよ!!!
にっちもさっちもいかないよ!俺にどうしろってんだよ!
と思いながらも進んだ5%部分である、ログ出力に取り掛かりました。
ええ、ここから本題です。
~設計書ローディング完了~
現行だと正常終了か、エラー終了かが分からない。ふむふむ。
そのために今回の焼き直しではエラー時にログを出力するようにする。なるほどなるほど。
おぉ!エラー時のメッセージが追加されてる!やったるで!
・・・
・・・( ^ω^)??
何を使って出力させるのか書いてないお( ^ω^)
( ^ω^)「すいません、ログ出力の内容は分かったんですけど、何を使うんですか?」
開発リーダ「あーこれ、設計者が『分からねえ』とか言ってたんですよ」
( ^ω^)「アッハイ じゃあ遊びでいろいろ試しておきます」
ってなやり取りがあって調べてみました。
↓参考のサイト様
Oracle クロニクル
こちらの2-3にこんなことが書いてありました。
■ 2-3) UTL_FILEパッケージを利用した実装方法
Oracleの組み込みパッケージであるUTL_FILEパッケージから、 ファイル入出力を行う機能が提供されています。これを利用することでログをファイルに出力することができます。
ほうほう。初めて見るヤツだ。
UTL_FILE_DIRというパラメータにディレクトリを設定し、
ファイル名やメッセージをPL/SQL内で定義。
UTL_FILE.FOPENでファイルを開いて
UTL_FILE.PUT_LINEで書き込み、
最後にUTL_FILE.FCLOSEでファイルを閉じてやるらしい。
なんだ、簡単そうじゃないか!
しかし・・・
最初のUTL_FILE_DIRの設定で権限がないとのエラー。
実行ユーザの権限を調べてみるも、なーーーんにも許可されていなかった。
権限周りをイジっちゃうとトラブルの元になるため、リーダに相談してみる。
( ^ω^)「アノ、権限がなくてUTL_FILE使う方法だとファイル吐けないっす。変えちゃっていいんすかね」
開発リーダ「あ!なんかね!ログ出さなくていいかもだって!」
( ^ω^)「えっ」
開発リーダ「Oracleのユーザとサーバのユーザって違うので(つまり権限がない)、そこにファイル出力ねじ込むのどうなのって話になっててね」
( ^ω^)「えっ」
開発リーダ「なので気にせず、他のことやっていいですよ」
( ^ω^)「手が空いてるので、他の方法探して手札増やしておきます」
開発リーダ「じゃ、そんな感じで!」
( ^ω^)「あいっす」
・・・・ということになりました。
明日、SPOOLで出来ないか試してみようっと!
夏休みが終わりましたの話
こんにちは。
タイトルについて。
夏休みが終わりました。
ほぼ、引きこもり生活をしていました。
ずーーーーっっっとゲーム!!時々、飲みとホルン。
幸せ!
パズドラ、LOL、ドラクエ(ヒーローズ)を延々と繰り返す日々。
とても充実していました!
パズドラは20キャラほどスキルマ& レベルMAXにできた。
ミツネで闘技場3が安定して、良きかな。
LOLはURFをずーーーーっとやってた。がれん強い。
マリベル、マーニャ、ミネアをパーティに入れてハーレムしてます。
マリベル カワ(・∀・)イイ!!
今から寝て起きたら仕事です。
仕事内容は、SQLServerからOracleへのストアド焼き直しと新規プロセスの作成!確認よし!
頑張るぞー!
いつの間にかAmazonプライム会員になった話
こんにちは。
タイトルについて。
ふと、メールを見てるとこんなのが来てました。
申し込んだ覚え、ないんだけどなあ....
と呟いたところ、知り合いからこんなメッセージが。
( ' `)....
( ゚Д゚)!?
あ!!PSVR買ったときか!!!
メールを遡ってみる.....
あったわ!!
つーことで、
3900円払ってしまったので1年間プライム会員を楽しもうと思います。
とりあえず、見てなかったラブライブ2期でも見よう!
解約忘れそうだなー
転職サイトの話
こんにちは。
タイトルについて。
転職活動専用サイトの広告がチラホラ見られます。
ぼくが転職した時にはこれらのサイトやエージェントを利用しませんでした。
これで転職しました↓↓
やったことと言えば。
自己PRを書く
スキルを入力する
あとはチョイチョイ埋めれるところを書き書き。
すると....
直でスカウトメッセージが届きます。
(ここに入社しました)
会社訪問してそのまま飲みに行き意気投合したので入社を決意。(軽いw)
梅田駅でDODAの広告があり、広告文句の一つに違和感を覚えました。
ひとつ目の、
「給料か、やりがいか」
こんなん書くから、なんちゃってベンチャー企業に転職して搾取されるんだろうなあ。
給料とやりがい、両立できるのに。