ホルン吹きでSEなブログ

趣味でホルン吹き、仕事でSEやってます

単体テストの話

 f:id:t910827:20170823211447p:plain

こんにちは。
タイトルについて。

 

 ぼくの会社へ入社した友人から質問されたので書き書きします!

 

目次

 

そもそも単体テストってなんぞ?

 

作った個々のプログラムに対して『ちゃんと動くよね?』と確かめるテストです。

 

友人くんは車が好きなのでそっちで例えましょう。

 

f:id:t910827:20170823225639p:plain

車ってどうやって作られてる?

タイヤ、シート、ライト、ハンドル...などの個々の部品を組み合わせて作られてますね。

 

こいつらで言うと、

 

・タイヤは丸い?

・ライト、着くよね?

・シートはリクライニングできるよね?

・ってかハンドル切れるよね?

 

 などなど、ホントに基本的なことを確かめるのが単体テストと呼ばれるものです。

これがまたキツいんだ。

 

で、なにが必要なの?

 

 単体テスト仕様書が必須です。

 

・テスト番号

・確認項目

・前提条件

・実施方法

・予想結果

・実施結果

 

 といった内容がつらつらと書かれています。大体どこでもエクセルを使ってます。

 プログラム作成者がテスト仕様書を書き、テストも実施するのが多い気がする。

 

↓ テスト仕様書はこんな感じかな。

f:id:t910827:20170823232255p:plain

 

テスト仕様書通りに、ポチポチ実施していくのです。

今の現場でこんな感じで書いたら『細かいッスね』って言われた。いいじゃんね。

 

『書いた人以外でも実施できる』仕様書を心がけましょう。できない人多すぎ。

 

分かった。で、どうやるの?

 

書いてる通りにやれ!以上だ!

 

 

....ではなく、色々と準備をせねばなりません。

  • テストケースに沿ったデータを作りましょう。
  • テスト実施前のデータベース情報を取得しましょう。
  • ログもテストケース毎に分けると、後で見やすいでしょう。

などなど。ここがイチバン面倒で大変だったりします。

 

準備できたおー

 

 やっとか!じゃあテスト開始だ!

 エビデンスは必ず取るんだぞ。

 

 

ただテストケースを消化するだけでオッケーではなく、第三者(リーダさんとか)に確認してもらう資料を用意せねばなりません。

 

『ちゃんとテストケースやったよ。オッケーだったよ。証拠(エビデンス)あるよ。』と示せるモノです。

 

エビデンス取るときに注意することあんの?

 

『他の人が見ても分かるようなエビデンスを取りましょう。』

テスト仕様書作成と同じ感じですね。

個人の能力によって理解できない要素は極力減らすべきです。

 

キャプチャーとかテーブルデータをドーン!と貼って終わりって人を見かけますが、頭おかしいんじゃねえの?って下に見てます

 

↓こんなの

f:id:t910827:20170823235027p:plain

 

後から確認する人に『どこを見てほしいのか』が分かりません。

ぼくが確認する側だと発狂します。

 

じゃあどうすんの?

コメントを入れましょう!

↓こんなの

f:id:t910827:20170823235508p:plain

 

他人に見てもらうようなモノの場合、たった数秒の心遣いが工程をガッツリ減らすことに繋がります。

もっと複雑なエビデンスだと、f:id:t910827:20170824000215p:plainで囲むとかするとさらにGOOD!

あなたの評価はうなぎのぼりだ!f:id:t910827:20170824000926p:plain

 

 

ただし、凝りすぎて時間をかけるのはだめです。ほどほどにしましょう。

頑張ってるアピールをする必要はないのです。

 

さいごに

 

ぼくが気を付けてることを書きました。

参考になれば幸いでございます。

 

『誰が見ても分かるテスト仕様書を書く』

『誰が見ても分かるエビデンスを残す』

 

この2つを守るようにしてれば大体うまくいきますという経験談でした。

PL/SQLにはSPOOLが使えなかった話

f:id:t910827:20170822202850p:plain

こんにちは。
タイトルについて。


昨日の記事の続きです。


www.hornengineer.site


PL/SQLを使ってログ出力を行う件。


できませんでした( ;∀;)

f:id:t910827:20170809005847p:plain:w400


ウキウキしながら出勤し、spoolでログを出力しようとしました。
で、できねー!

グーグルせんせー!

↓参考にしたサイト様より引用

qiita.com

SPOOLはSQLPLUSのコマンドなので、PLSQLの処理内部に組み込めない


ΩΩΩ<な、なんだってー!

f:id:t910827:20170822203529p:plain:w400



なるほど。。。
PL/SQL外に書いてみるも、設計からかなーりズレてしまうためメンドクさそうだし諦めることに。


というわけで、PL/SQLにSPOOLは使えませんでした。おしまい。

PL/SQLのログ出力の話

f:id:t910827:20170821201054p:plain


こんにちは。
タイトルについて。


夏休み明け、思ったより仕事がありませんでした。
設計者が全然進めてなくて、さらに今日から夏休みらしいです。ふざけんな!


↓記事で書いたように、ストアドを作成中なのです。

www.hornengineer.site


80%の仕様は決まっているのですが、チョイチョイ矛盾してたりで、
「夏休み明けには設計終わらせときますよ~」
といっていたのに、

まだ85%だよ!!!

f:id:t910827:20170821202808p:plain:w400


にっちもさっちもいかないよ!俺にどうしろってんだよ!

と思いながらも進んだ5%部分である、ログ出力に取り掛かりました。

ええ、ここから本題です。

f:id:t910827:20170821204004p:plain
~設計書ローディング完了~

現行だと正常終了か、エラー終了かが分からない。ふむふむ。

そのために今回の焼き直しではエラー時にログを出力するようにする。なるほどなるほど。

おぉ!エラー時のメッセージが追加されてる!やったるで!


・・・


・・・( ^ω^)??


何を使って出力させるのか書いてないお( ^ω^)

( ^ω^)「すいません、ログ出力の内容は分かったんですけど、何を使うんですか?」
開発リーダ「あーこれ、設計者が『分からねえ』とか言ってたんですよ」
( ^ω^)「アッハイ じゃあ遊びでいろいろ試しておきます」



ってなやり取りがあって調べてみました。
↓参考のサイト様
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でファイルを閉じてやるらしい。

なんだ、簡単そうじゃないか!


しかし・・・


f:id:t910827:20170821205509p:plain:w400



最初のUTL_FILE_DIRの設定で権限がないとのエラー。
実行ユーザの権限を調べてみるも、なーーーんにも許可されていなかった。


権限周りをイジっちゃうとトラブルの元になるため、リーダに相談してみる。


( ^ω^)「アノ、権限がなくてUTL_FILE使う方法だとファイル吐けないっす。変えちゃっていいんすかね」
開発リーダ「あ!なんかね!ログ出さなくていいかもだって!


( ^ω^)「えっ」
開発リーダ「Oracleのユーザとサーバのユーザって違うので(つまり権限がない)、そこにファイル出力ねじ込むのどうなのって話になっててね」


( ^ω^)「えっ」
開発リーダ「なので気にせず、他のことやっていいですよ


( ^ω^)「手が空いてるので、他の方法探して手札増やしておきます」
開発リーダ「じゃ、そんな感じで!
( ^ω^)「あいっす」





・・・・ということになりました。
明日、SPOOLで出来ないか試してみようっと!

夏休みが終わりましたの話

f:id:t910827:20170820232848p:plain

 

こんにちは。

タイトルについて。

 

夏休みが終わりました。

ほぼ、引きこもり生活をしていました。

 

 

ずーーーーっっっとゲーム!!時々、飲みとホルン。

幸せ!

 

パズドラ、LOLドラクエ(ヒーローズ)を延々と繰り返す日々。

 

f:id:t910827:20170802230943p:plain

 

f:id:t910827:20170802231017j:plain

 

f:id:t910827:20170802231117j:plain

 

 とても充実していました!

 

パズドラは20キャラほどスキルマ& レベルMAXにできた。

ミツネで闘技場3が安定して、良きかな。

 

f:id:t910827:20170821002555j:image

 

 

LOLはURFをずーーーーっとやってた。がれん強い。

 

f:id:t910827:20170821002733p:plain

 

ドラクエマーニャクリフトが仲間になるとこまで進んだ。

マリベルマーニャ、ミネアをパーティに入れてハーレムしてます。

 

マリベル カワ(・∀・)イイ!!

 

今から寝て起きたら仕事です。

仕事内容は、SQLServerからOracleへのストアド焼き直しと新規プロセスの作成!確認よし!

頑張るぞー!

いつの間にかAmazonプライム会員になった話

 

f:id:t910827:20170814104336p:plain

 

こんにちは。

タイトルについて。

 

ふと、メールを見てるとこんなのが来てました。 

 

f:id:t910827:20170814102042p:plain

 

申し込んだ覚え、ないんだけどなあ....

と呟いたところ、知り合いからこんなメッセージが。

 

f:id:t910827:20170814104618p:plain

 

( ' `)....

 

 

( ゚Д゚)!?

 

 

あ!!PSVR買ったときか!!!

 

メールを遡ってみる.....

 

f:id:t910827:20170814104948p:plain

 

あったわ!!

 

つーことで、

3900円払ってしまったので1年間プライム会員を楽しもうと思います。

 

f:id:t910827:20170814110140j:plain

 

とりあえず、見てなかったラブライブ2期でも見よう!

解約忘れそうだなー

夏休みの話

f:id:t910827:20170810223532j:plain

 

こんにちは。

タイトルについて。

 

 

夏休みだ!!!!

 

11日(金)~20日(日)まで、合計10日間の夏休みです!!!

 

10日もあったら、色んなことができますね!

泊まりがけの旅行いいなあ。北海道とか沖縄、行きたい。

 

 

ぼくの予定はこちら。

 

 ・飲み会

 ・オーケストラの練習

 ・お墓参り

 ・大掃除

 

 

 

あれっ

 

いつもとほぼ変わらない...

 

 

 .....

 

 

チャリンコ旅でもしよう。

あと、友達と遊びまくろう。 

 

f:id:t910827:20170811113302p:plain

 

 

とりえあず、最近放置気味のペルソナ4をクリアします!

f:id:t910827:20170802231054j:plain

 

 

夏休み、楽しむぞー!!!!

転職サイトの話

 

f:id:t910827:20170809213325p:plain

こんにちは。

タイトルについて。

 

マイナビリクナビ、エンジャパン....

転職活動専用サイトの広告がチラホラ見られます。

 

ぼくが転職した時にはこれらのサイトやエージェントを利用しませんでした。

 

これで転職しました↓↓

www.wantedly.com

 

 

やったことと言えば。

 

自己PRを書くf:id:t910827:20170809214715p:plain

 

スキルを入力する

f:id:t910827:20170809214756p:plain

あとはチョイチョイ埋めれるところを書き書き。

 

すると....

 

直でスカウトメッセージが届きます。

f:id:t910827:20170809215711p:plain

(ここに入社しました)

 

会社訪問してそのまま飲みに行き意気投合したので入社を決意。(軽いw)

 

 

梅田駅でDODAの広告があり、広告文句の一つに違和感を覚えました。

f:id:t910827:20170809213226p:plain

 

ひとつ目の、

「給料か、やりがいか」

 

こんなん書くから、なんちゃってベンチャー企業に転職して搾取されるんだろうなあ。

給料とやりがい、両立できるのに。