はてなキーワード: テストケースとは
http://www.excite.co.jp/News/net_clm/20130419/Rocketnews24_319478.html?_p=1
↑典型的な自己愛性人格障害。よくあるパターン。要は「どうやっても自分の非を認められない人々」。
まれに認めたように振舞うこともあるが、「確かに私は悪い。しかし○×△・・・・!」と「しかし」以降の方が圧倒的な分量になるケースがほとんど。
この人の名前で画像検索すると画像からにじみ出る過剰な自己愛に圧倒される。それはそれで面白いと思った。典型的なテストケースとして。
テーマストアが公開されたので、週末の時間を使ってちょっと作ってみたんだけど、想像以上に手間がかかったのでまだ完成してない。
手引きに「オリジナルテーマの作成は、CSSの知識がある方を対象にしています。」なんて逃げを打ってるけどさ。プロ向けにしたってちょっと投げっぱなしじゃないの?
そのため、気合いで解析する必要がある。保守するプログラムに設計書もコメントもないなんて常識だよねー、的な? まあ頑張ってFirebugするわけですが、当然、解析できるのはCSSの構造までであり、そのスタイルの意図などはわかるはずもないわけで。もしかしてアレですか。Webデザイナであればフィーリングで伝わるようなレベルの問題なんでしょうか。私のような卑しいSIerのエンジニアはWeb業界に転職してから出直した方がいいのでしょうか。
テスト用に別ブログを自分で開設し(!)、自分であらゆる表示パターンを網羅するテストページを作成(!!)し、カスタムCSSを記述しては保存、各種確認URLを開いて回る、ということを公式に求める始末。なんではてな様のテーマ作成コスト削減にそんな苦労をしてまで貢献しないといかんのですか。ちなみに手引きで紹介されているサンプルエントリーでは何かと不十分。脚注とかないし。シンタックスハイライトじゃないPREないし。コメントとかスターとか自分でつけないとだし。複数ページないとPagerでてこないし。つーか、はてなの公式テーマとか作ったときに使ったテスト用HTMLやテストケースを公開してくれればいいんでないの。・・・あるよね?
この前のトップページデザイン変更もそうだけど((自分の場合、横方向の視線移動を求められるようになったのが苦痛で仕方が無い))。使う人のこと、基本的にあんまり考えてないよね、はてな。とにかく、はやりの技術やデザインを使ってみたいんだろうね。それがユーザーにとっていいかどうかは二の次なんだろうね。個人の趣味じゃないんだからさ。ねえ。お願いしますよ。こんなんで月980円(だっけ?)もとろうだなんてどうかしてるよ。
公式でも投稿でもいいからはてなダイアリー並にテーマがたくさん使えるようになるのはいつなんでしょう。
あと全然別の話だけどついでに文句書いておくと、スマホ用はてブのWebはなんでわざわざAjaxでPager実装しているの? だって最新ホットエントリー一覧なんて、前のページのコンテンツ保持しておく必要性も薄いじゃない。何が困るって、次ページ読み込み中(■がくるくるしてる状態)に電波切れると(地下鉄とかね)、ボタン押せなくなってるから電波復帰してもどうにもならなくなるのよね。リロードすると1ページ目に戻るし。普通にリンクで次ページ遷移じゃダメなの?
そりゃ、勝手に社外のコミュニティで訊いて解決してくれれば先輩の手間はかからないけど、
業務の一環の中で、先輩の知らないところで社外とやりとりするのは困る。
ドキュメント・コメントについては、それも設計・実装の内という認識。あって当然。無いのが異常。
(現実的には異常事態が罷り通っているのも事実だが、異常を前提にしては全体が悪化し続ける)
時間内に書くのが負担なら、それは能力が無いということだから出来合いに頼るのも一考だと思う。
繰り返しになるけど、オープンソース使ったって、それで仕様を満たすかどうかを確認するのは自分。
ということは、なんで採用したのか?全体のうち何処で使われているのか?はどっちみち書かなくちゃいけないし、
残ってれば、勘所なんかも後進に伝えられる。
別の人に「OpenSSLを1から書き起こすのには」って例を出していたけど、これは元増田の話としてはおかしくないか?
元増田の後輩は、「オープンソースは知らなかったが、代わりに自分で書いて持ってきた」んだろう?
つまり、OpenSSLを例にするなら、
「先輩はOpenSSLの使用を考えていたが、後輩には具体的に伝えなかった。
そしたら後輩はOpenSSLに準じるものを自分でこさえてきた」ってことになる。おそらく納期を守った上でね!
「OpenSSLを1から書き起こすのには、莫大なコストがかかる」って増田の話は尤もだと思うが、
件の後輩にとっては、そうではなかったって事だ!
そんな天才なら好きにやらせた方がいいよ。
うーん、そこは JUnit の使い方でなんとでもなる。
1つのテストケース動かす度にテーブル作り直すとかありえないし。
テーブルは作り直さずとも、テーブルの中身を truncate でひっくり返して、事前データをブチ込み直すくらいならば平気。
某銀行系での例。マジ怒られそうだから、若干ボカして書くけど、
ひとつのテストメソッド TestXxxDAO.testRetrieveFooBar() は、XxxDAO.retrieveFooBar() メソッドについての複数のパターンのテストを全てやる事にする。そのテストメソッドの中で
というサイクルを繰り返す。テストデータや想定結果は、全て OpenOffice calc なんかを使って、視覚的に書いておく。その ods ファイルを読み、DB に突っ込み、想定結果と比較する処理は独自フレームワークとして用意。ods ファイルは、「こういうデータを準備して、こういう引数でメソッドを呼ぶと、こういう結果になりました」というテストのエビデンスにもなる。
insert 後に select とかってのが切り離して考えられない処理ならば、それはそういう 1 単位の挙動だ。俺なら例えば、XxxDAO.insertFoo()、XxxDAO.retrieveBar() を作ってテストした上で、そいつらを XxxLogic.doSomething() に押し込むね。そしてやはり上記のようなテストが出来る。
頭の中だけだと「それって現実的じゃなくね?」と思えるかも知れないけど、実際やってみるといい。テスト順なんか気にせずにやっつけてしまえるし、案外これで効率よく厳密なテストが出来る。それでもヘタクソな野郎は、テスト順に依存したテストを作りやがって、後でメンテする俺涙目みたいな事にもなるけど。
これでテストデータを作るのが死にそうなほど大変であれば、メソッドの粒度を見直すべきかも知れない、というセンサーにもなる。・・もっとも、XxxLogic.doSomething() などを処理順に纏めた XxxAction.action() なんかのテストともなれば、やっぱ大変なんだけども。
でも、テストって普通、簡単なものから難しいものへ、順番に書いてくんじゃないの? そうなってないと品質上げていきにくいし。テスト順を不定 (ってこと) にして何がうれしいんだろ。
あるいはたとえばデータベースまわりのテスト書いてると、普通は副作用に依存したいと思うんですけど。1つのテストケース動かす度にテーブル作り直すとかありえないし。
INSERT のテストケースを動かして、次に SELECT のテストケースで読めるか確かめるとか普通やるよね。
てか、INSERT が動かないことには SELECT のテストが動くわけないのに。テスト順がないから、そういう依存関係の定義も面倒。
テスト順が明示的であれば、最初に問題が出たテストから順番につぶしていけばいいよね、ってことになるけど、順序が不定だから直感的じゃない。
・機能の共通化は必ずしも、トータルでの工数を減らしたりはしない。どころか、増やしたりもする。
これらはどちらも正当な意見だと思うけど、背反する意見だと思う。
だって、これを両立しちゃったら、ただでさえ難しい箇所のテストケースが更に増えちゃうじゃない!
だから、共通化の是非を難易度で決めちゃダメ。
共通化するのは、やっぱり、仕様上共通してる部分じゃないのかなぁ。
例えば消費税率みたいな値。
その内、税率は上がっちゃうけど、これが現行システム中に散見してたら調査だけで納期が来ちゃう。
「難しいから」って理由で共通化するなら、そこはコピペで乗り越えるべきでは?
未経験で入った業界でプログラミングもさくさく出来てテストケースも結果も自分でうまく出せて、
レビューでもOKって感じになってきたところだったんだけど…。
びっくりした。何もやりたいことがない。というか、選択肢に安楽死があるならそれを選ぶ。
せめて自分が興味を持てることを今からでも初めて見ようかなと思う。
ぱっと興味がありそうな仕事はこんな感じで
・Web系の作成(html,css,php,Flash,Javascriptあたりになるのだろうか)
・DTP(インデザ?)
・編集
・職人(靴、鞄)
身に着けたほうがいいかなと思うスキルはこちら
・速読
・泳げるようになる
・文章力
さて、どれをどうはじめたものか
これって躁鬱なんじゃないかという疑問が頭の中で渦巻いていたりする。
本当にどうしよう。
現地人を雇用せず、地元に利益を還元しない中国企業にイラク人の怒り
****************************************
イラクで石油生産が再開されて、一番の頭痛は何か?それは中国である。石油を掘る。地元に利益を還元しない。労働者は中国から連れてくる。まったくスーダンでアンゴラでナイジェリアで展開していることと同じパターン。石油は掘った分だけ水を入れて地盤を安定させる。技術の基礎である。中国の炭坑で事故が多いのはガス爆発より地盤沈下、安全管理の杜撰さからくるが、まさか原油採掘現場でも同じことをやっていないでしょうね。
イラク石油省が外国企業に採掘を許可したのは去年からだが、最初のテストケースは中国企業=シノペック。初の外国参加の原油採掘現場はバグダッドの東南に位置するワシド地区のアーダブ油田(推定埋蔵10億バーレル)である。同地区は最貧地方で道路も学校も病院建設もいや発電所の建設も石油収入をアテにしていた。同地区の多くの村には電気がきていない。
1バーレルにつき1ドルの利益還元は、いったんバグダッド政府に入り地方交付税のごとく還元される仕組みだが、中央政府は世界的な原油価格の下落を理由にワシド地区に還元しない。地元民の不満は中央政府より、ここで石油を採掘している中国企業に向けられる。いまにも爆発寸前という空気に中国人労働者は町へ一歩も出ないでサイトに引きこもり集団生活という惨めな状態に陥った。
▲あと1000人の中国人エンジニアが現場にやってくるが。。。
アーダブ油田の開発プロジェクトは総予算30億ドルと見積もられ、サイトの警備などで若干の地元民の雇用が見られたが、月給は600ドル以下。加えて試掘による原油汚染が田園の穀物を枯れさせ、また水を使うから付近の井戸が枯渇し、怒り狂った住民らは発電施設破壊などの直接行動を展開し始めた。送電線が破壊され、電線は夜中に盗難にあい、あげくに発電所近くにロケット弾が撃ち込まれる。
イラク政府は地元民への還元より、治安部隊を送って中国の施設警備にあたらせ、また中国側も「このプロジェクトは23年の長期契約であり、実際の原油採掘はあと三年かかる」として地元民の要求を蹴った。そのため、中国人エンジニアらは恐怖におののき、誘拐を恐れ、警備がつかないと散歩も出来ない有様となった。
あまつさえ来年一月にはあと1000人のエンジニアが中国からやってくる。なぜ地元民を雇用しないか? との樋に中国企業は「いまから訓練する時間はないし、無駄だから」とすげない返事を返す。
こうした社会不安と治安悪化にイラクが外国企業を招致しての入札は下火となり、わずかに南方ルマイラ油田(178億バーレル、イラク最大)にBPと中国企業が応札したくらい。
△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△
通巻第2715号 (9月16日発行)
せっかくだからフィナンシャルプランナー見習いとしてテストケースにしてみる。
まず、前提の確認。要らない部分は削る。
・家族構成
・住居
・職業
・収入
よって、次の6つのことが言える。
・支出(大まかな数字)
食費 100,000円
長女大学の学費 60,000円
長男高校の学費 70,000円
長男の塾 25,000円
次女の塾 25,000円
飲み会代 20,000円
光熱費 25,000円
携帯電話 15,000円
インターネット 5,000円
新聞 5,000円
固定電話 5,000円
生命保険 10,000円
衣服 30,000円
個人年金保険 10,000円
子供への小遣い 10,000円×3
妻への小遣い 50,000円
週末のお出かけ 20,000円
文房具などその他雑費 20,000円
合計: 700,000円
・債務(年利15%)
120万円
このままだと3年ぐらいで倍になって破綻します。
(学区が変わるのはもちろん、給料が少なくなった為の住居ダウングレードは、家族関係を壊すおそれがある)
その為、通常はまず手を付ける月収の3分の1超えの175,000円は削らない方向で。
使えるお金は、50万円。
ここから、固定費(定義は「変えるのが非常に難しい部分」)を引きます。
残り、14万5000円。
費用対効果が良いモノ(削っても効果が薄い部分)を引きます。
残り、8万5000円。
(削るとするなら、生命保険…でも子供が3人で大黒柱が一本なら妥当ラインかな…)
節約できるところを削ります。
残り、0円。
これを絶対ラインとして節約を行う。
(個人年金保険など、貯める利子と15%の借金利子を比較すると明らかです)
節度を保って生活するのに慣れるまでの期間も含めると、おそらく債務を返済しきるのは2年後になります。
(ボーナスが出つづければ。ボーナスが無くなる頃までに生活水準を落としましょう)
既に「海外旅行を我慢」「車の買い換えができない」という段階は過ぎていて
はっきり言って「たまに贅沢として、ビールを一本買っても良い」というレベルの状況です。
(あらわれてない車も手放すべきです。支出もほんとうに正しく把握できていますか?)
次に、家族での話し合いが必要です。
「節約をしなければ学費も出なくなる」
という点をよく話し合いましょう。
今の生活を壊さずに行えるのは、上記が限界でしょう。
認めるのは辛いかも知れませんが借金で生活していて破綻した収支であるのをまず認めましょう。
現状でなんともなっていません。
単に破滅への階段をちゃくちゃくと登っているだけです。
高い段から落ちると怪我ですまなくなります。
(会社に恨み言を言うのは絶対に止めましょう。クビになればそれで全てが終わります)
----
なお、生活を完全に変える意思があるのであれば、以下の支出になります。
これで2年我慢すれば、返済が終わるはずです。ボーナスをうまく返済に充てられれば、1年で返し終わるかも知れません。
(年200万のボーナスは完全に浮いているので、そのお金でたまには贅沢するのが良いとは思います)
ただし、家族の大きな協力が必要で、結束が強くなければ将来へ禍根を残すだけでしょう。
この仕事辞めようと思っている。
学校でC++とかJAVAとかVBとか…色々ごちゃごちゃ習ってたけど、正直現場のノウハウなんぞサパーリな状態だった。
だから、その会社にプログラマが居なかった事は物凄く不幸だった。
WEBシステム開発部門を作るという事で、私を含めプログラム未経験者が二人採用されたんだ。
細かいこと言うと、私と一緒に入社した人は、一応PHPやPerlは組んだことが有るけど、「現場のノウハウを知らない」という点は私と同じだった。
入社してからは、もう全部手探り。
開発環境の整え方なんぞ全然分かってない。
取り敢えずPHPやれ、と言われたから、結構必死で勉強しながらメールフォームとか簡単なコード書いた。
当時は画面が切り替わる度に変数が初期化されたりするのが不思議だった。
一緒に入った同僚は、「Postgre専門だからMySQLはよく分からん」と言う。
仕事の渡され方は大概丸投げ。
その仕様ってのが結構曖昧。何というか、「流れ」だけ説明される。
「管理画面で商品を登録すると、商品一覧に追加されるんだけど、登録する時に一緒にカテゴリを設定できるように…」
「カテゴリは大カテゴリ・中カテゴリ・小カテゴリがあって、管理画面で登録できるように…」
とか、そんな感じ。
こういうのを聞いてプログラミング出来るのが当たり前なんだろうけど、私は凄く苦手だった。
苦手だからってやらない訳にはいかないからやってたけど、難しく考えるからだろう、時間がかかった。
後、基本的に画面イメージがない。
仕事を渡されると、全部任される。
テーブルの設計をしながら仕様を確定していって、画面イメージを作成していく。
最初の内は、正規化すら全然知らなかったからぐだぐだなテーブルばっかり設計して、コードを組む段階になってヒーヒー言ってた。
最初から書き直す事もしばしばだった。
もっと効率良くやりたい、と助言を乞おうにも、先輩なんて居ない。
同僚はその辺の作業進行は上手いものの、開発レベルは私と同じぐらい。コードはスパゲッティ。
友人達もプログラムやってたりするけど、WEBプログラムじゃないから相談しても色々と噛み合わない。
仕方がないから、うまいやり方は無いか、とひたすら暗中模索でやってきた。
で、そんな事を1年程続けた辺りで、長年プログラミングしてきた人と交流する機会が有った。
短い間だったけど、その人が教えてくれた知識でかなりショックを受けた。
開発環境の整え方とか、テストケースとか、フレームワークの事とか、えーと、まぁ、なんて言うか、プログラミングの考え方(みたいなもん)とか。
(ちょっと上手く言えない。現時点でも私は、とてもじゃないが自分の事をプログラマだなんて胸を張って言えない程未熟だと思っているし)
そして、ショックを受けたのは同僚も同じだった。
正直今まで自分がやってきた事の全部をひっくり返された気分だった。
全部が全部無駄だったという訳じゃないが、今まで非効率的で馬鹿で遠回りな事ばかりしていた。
その後はSubversionやTracが導入された。
同時期に私は新しい案件を任された。
その案件の規模は小さめで、私は今まで不安定だった開発スタイルを整えようと、半分賭けでその案件をcakePHPで構築しようと決めた。
無論、全然分からないから参考書とか公開されてるソース見たりとか、ネットの情報とかで勉強しながら、だけど。
symfonyとかZend Frameworkとかでも良かったと思うんだけど、
たまたま先のプログラマの人がcakePHP使ってる、と言ってたから「じゃあそれにするか」とcakePHPを選んだ。
違いも分からんから最初は何でもいいや、と思ったってのも有る。
何度も躓いたり挫折しかけたりしたが、なんとか構築しきった。
つたないものでは有るが使い回しの効くメソッドなりを作れたし、正直凄く嬉しかった。
その頃には、ある程度ではあるがフレームワークでの開発が手に馴染んでいた。
そんでも一人でじめじめコーディングするスタイルは変わらなかったから、コードの中身はお察しくださいなスパゲッティ。
もうこの会社に居続けても意味が無い、と思った。ひとりよがりなコードを量産するだけだ。
だから、「今年いっぱいで会社を辞めようかと思います」と告げた。
それが大体半年前。
今年が終わるまで@2ヶ月ぐらい。
こんな経験年数半端な人材って、需要有るんかなぁ。女だしなぁ…、というかそもそも転職回数が多いのが一番痛い。ブラック企業ひきすぎ。
無知を乗り越えるという性質のやる気はあるから、がらっと業種を変えても良いかもしれない。
というか、ぶっちゃけ残業時間がえらい事になってたから、IT業界はもうしたくないな、と思う一方で、
やっぱりプログラム好きだからプログラマやりたいという思いが有る。
でもプライベートでやりたい事あるから、あんまり仕事で時間を割かれるのも困る。
後、親が元気な内に孝行しときたい。
こないだ、カーチャンのスレ見てたのがかなり効いてる。
「あんた転職するんでしょ? 転職前に休み作ってよ。一緒に旅行行きたいから」とか言ってるし…
「仕事が忙しいから」とか「疲れてるんだから休ませてくれ…」とか言って全然孝行出来なかったから、そろそろ生活における仕事の割合を減らしていきたいところ。
でも、
難しいよなぁ。
転職、どうしたもんだかなぁ。
前の記事 http://anond.hatelabo.jp/20080713144845
最初は咳き込んだけど、すぐ慣れた。
ある日、客先の偉い人とタバコを吸う機会があり雑談をしていると「ウチの会社に来ないか」と、言ってくれた。
理由は「今いる会社で先輩に毎日怒られているのが可哀想。ウチの会社でならあなたを生かせる」と。
正直このときに会社を移っていれば違う人生もあったのかなぁ、と思うことがある。
だけど、この時には自分を雇ってくれた会社に対する恩義みたいのを感じていたため、丁重にお断りした。((もったいない><))
プロジェクトは遅れ続けた。
客先が作るはずの開発環境は遅れに遅れ、おかげでWordにソースを貼り付ける期間が少し延びた。
テストケースを作成しているのに、なぜか仕様を把握していなかった。
開発環境が客先に出来上がってから、Wordに書いてある修正の通り、秀丸で修正を加えていった。
コンパイルさせて動かしてみるが、仕様がわからないので本当に正しいかどうかわからない。
元受がレビューしてくれたテストケースと同じように出ているか確認するだけだ。
なんでそういう出力になるとかわからない。
「あの車に当たって交通事故にあえば会社に行かなくてすむかなぁ・・」
その足で無断欠勤して、近くの精神科クリニックに行った。
精神科って言うとそのときはもっと薄暗くて社会の暗部のようなイメージがあったんだけど、
普通っぽい人が沢山いてリラックスできるような音楽が流れていた。
看護婦さんから問診表をもらって書き込んだ。
「仕事に集中できない、眠れない、死にたくなる」
暫くしてそこの院長先生が見てくれることになり、診察室に入っていった。
女の(多分40代後半ぐらいの)先生で、やさしそうに見えた。
やさしい口調で「今日はどうしたんですか?」といわれ、
などを泣きながら話した覚えがある。
泣くなんてこと、中学生以降ほとんどなかったのに。
一通り話したあと、「ウツ病ですね、1ヶ月ぐらい仕事をお休みしましょう」と先生は言った。
# 疲れたのでまた後で書きます。
コード書き始めて1ヶ月強ですが、なかなかC++の仕様が把握できません。
今日はポリモーフィッククラスの扱いがよくわからなくてハマッったりしました。
書いたコードは2,3000行くらい。図形処理のアルゴリズムが難しくて相当苦しみました(まだ未完成)。
テストケースをあまりきちんと洗い出してないからこれから困ると思います。
OOP的に正しい設計とか未だによくわからないし…(設計始めたのはさらに1ヶ月前くらい)。
ギークとまではいかないにしても、何とかして「そっち側」に行きたいのです。
スキルを身につけるという意味では、実際どのくらいのタイムスパンを見込むべきでしょうか。
とか、終わってもいないのに増田に書いちゃう集中力のなさも問題です。