「テストケース」を含む日記 RSS

はてなキーワード: テストケースとは

2021-11-17

GoMockテスト辛い問題とかDDDって何それうまいの?とか

GoMockってのはGo言語ライブラリで、依存するinterfaceテストモックに置き換えてくれる。

それで、テスト中のモックの期待される振る舞い等を簡単定義できるのだ。

期待される振る舞いってのは、モックメソッド呼び出しやその引数とかだな。

期待される呼び出しが無かったり、引数が違ったりするとテストが失敗してくれる。

他に、メソッド戻り値副作用記述できる。

非同期処理のテストだとよく、wg.Done()をモックにさせたりする。

正直、これまで書けなかったテストがモリモリ書けて楽しい

けれどそのうち辛くなってくる。

まり、たくさんのinterface依存するサービスオブジェクトメソッドテストしようとすると、たくさんのモックのたくさんのメソッド呼び出しの全部の期待される振る舞いを書かないといけない。

モックメソッド戻り値によってサービスオブジェクトメソッド内の挙動が変わる。

すると連鎖的に、メソッド内で続いて呼ばれるモックに期待される挙動も、変わる。

依存interfaceが増えるとこの場合けが指数関数的に増える。

当然だ。

Go言語にはテーブルリブテストっていう、テストケースは配列簡単にまとめられると良い、という慣習・哲学がある。

しかし俺のサービスオブジェクトテストケースが肥大化複雑化しすぎてしまったようだ。

モックの期待される挙動を細かくケースに分類して配列にするのは恐ろしく辛い作業だ。

やりたくない。

どうしてこうなった

どうしてこうなったかは明らかだ。

サービスオブジェクトが巨大すぎるのだ。

ノシリックで巨大で複雑なものは凡人には扱えないからやめとけ、と偉い人は言う。

そうだなモノシリックは辛い。DDDかにすればいいんだろ?

やったよ(見様見真似で)。

モックでこれまでできなかったテストが書けるのはいいね

でもじつはここはまだ山麓だったのです。

サービスオブジェクトが巨大なモノリス化してしまったのです。

分け入っても分け入っても青い山。

おれはどこに行けばいいのだ。

参考文献

https://little-hands.hatenablog.com/entry/2020/12/22/ddd-in-first-3month

あとどこかにDDD100本ノックとかないかな。

2021-10-29

程良い難易度で新しいことを覚えて行くのは楽しい

1. Markdown, Textileは知っていた。

2. 「何か新しいことを覚えようかなぁ」というコレクター魂のようなもので、reStructuredTextの手を付ける。

3. Sphinxなるものを知る。PythonからDjangoとか、あの見慣れたチュートリアルを作るドキュメントツールSphinx

4. 面白いのだけど登場人物が多くて話が追えないなろう系のメモとして使ってみる。

5. 慣れた頃に、高校物理数学の復習へ逸れる。

6. LaTeX記法での数式表現、Matplotlibの機能に感動する。

7. 気づくと書き貯めたメモ(rstファイル)が大量に…

8. 索引ページに気づく。

9. 日本語表示がイケてない。微分なら「は」の項目に、積分なら「さ」の項目に表示してほしいじゃん?「微」「積」の項目なんよ。。英語と同じように「頭の一文字」を取ったらそうなるよね。

10. 探してみたら、「Yogosyu」というプラグイン(※Sphinxでは拡張モジュール)があった。使ってみる。

11. 最新のSphinx対応していない。ここからPythonコード解析へと逸れる。

12. 取り敢えずエラーはでなくなったけど、元々索引ページとは関係ない機能だった。同一「用語集」での表示順が日本語対応するだけ。

13. (しばらく放置

14. 「単語の先頭に振り仮名を付け足せば、いい感じにソートしてくれる?」と気付く。

15. 表示の直前で「振り仮名」を取除くために、どこで表示しているか探す。

16. (紆余曲折

17. 索引ページで思ったように表示されて喜ぶ。

18. ここで初めて「プラグイン形式にすれば良くね?」と気付く。

19. 他の拡張モジュールソースを見てやり方を学ぶ。

20. 出来上がって喜ぶ。

21. ここで初めて「これってクラスにしたら、全体の見通しが良くなったりする?」と気付く。

22.(この辺りで、unittestモジュールに手を付ける)

23. テストケースのお陰でリファクタリングが怖くない。喜ぶ。

24. setup.py, setup.cfgの書き方を学ぶ。

25. pypi公開を果たす。誰にも知られずひっそりと…

26. テストケースにjinja2を通した結果も加える。一人で成果に喜ぶ。

27. githubに手を付ける。学ぶ。基本的なことは覚える。

28. スタックオーバーフロー登録モブ参上

29. stack overflow登録モブ参上

30. teratailに登録。コソコソ。「何がなんだか分からない」では質問しないし、そのうちどうにかなることが多い。先駆者感謝

31. toxを知る。学ぶ。基本的なことは覚える。

32. coverageを知る。学ぶ。基本的なことは覚える。

33. circleciを知る。学ぶ。基本的なことは覚える。

34. カバレッジが90%を超えて喜ぶ。←今はこの辺。

※ボッチの日常

2021-10-05

アプリ開発者47歳って有能だよな

競技プログラミングテストケースが解ける時点で日本プログラマの上位10%以上だろ。

実務経験豊富だし、うちの会社にほしいレベル

給料いから来てくれないだろうけど。

2021-08-23

[]君たちが会食だと思ってるのは会食じゃない

[B! COVID-19] めろり。 on Twitter: "発熱外来で「会食しましたか?」と質問すると 「高級店には行ってない」 会食=高級店での食事 と思い込んでる人結構いる。 初めは驚いてたけど最近はまたかとなってる。 「会食」って人々が集まって一緒に食事をするって意味なんよ…"←ここの君たち

 

 

会食の例をまとめると、上記のようになるだろうか。

では、テストケースを考えてみよう。

 

 

君たちバグまくりだろ……。

ひとつひとつ考えるまでもない。

 

問題になっているのは「対面でのマスクなし会話」。そして、飲食時にマスクを外して対面になるよう座るから、それをバカにでも分かってもらえるように「食事はひとりで」と説明しているにすぎない。

飲食か否か/間柄がどうかの問題ではない。

 

そんなことでこの冬を乗り切れるのか?

2021-08-01

素直に『わかりません』と言ってくれるプログラミングスクール出身エンジニア

最近案件自分メインで担当することが増えた。

自分仕事としては案件進めているうちに出てくる課題とか機能追加とかバグ修正とかを設計してIssueとして作って他の人に振ったり自分作業に当たったりと色々なんだけど、

最近とあるプログラミングスクール出身の同僚エンジニア(最近同じ部署になった)が自分案件アサインされた。



先日その同僚エンジニアとあるIssueを初めて振った。

内容としてはとあるテーブル特定カラムバリデーション処理が漏れいるから追加してもらって、なおかつユニットテスト修正する、というもの。まあ簡単な奴。

Issueを振ってからしばらくすると同僚エンジニアから質問が来た。

ユニットテスト実装方法がわかりません。」

「ん?」と思った。いや別に特殊ことなんて何もないIssueだし似たようなテストケースリポジトリ上に山程あるしどうにでもなるじゃんって。

まあ特に考えず1個のテストケースを例として自分で作ってみて、「残りは○○の場合とXXの場合と△△の場合テストケース網羅してください」みたいな返信をした。

しばらくするとまた質問が来た。「△△の場合テストケース実装方法がわかりません。」

いやいや、そんなん頭使ってどうにかこうにか考えろよって。案件特有ビジネスロジックのことを聞かれるならわかるけどこんなレベル対応どの企業のどの案件で振られても同じことやるだけやん。

この質問してるのが未経験入社1ヶ月目の新入社員なら自分笑顔で答えるけどこのエンジニアは俺よりキャリアが長いらしい。

その同僚エンジニアはわからないことがあるととにかく素直に「わかりません」と言ってくれる人だった。

成果物についても指摘事項があまりにも多く、自分(というかその人以外)がやったら10分くらいで終わる対応に数時間以上かけて説明して修正してもらうという感じになった。何のための仕事をしているのかよくわからくなっていた。


自分ITエンジニアが「わかりません」という言葉を使うのは例えばどうしても再現性がなくてログにも何も残ってない謎の不具合とか、コンパイラインタプリタレベル不具合で現時点で解消方法がどこにも載ってない奴とか、そういうマジで「参りました」的な状況だけかと思ってた。

こんな公式ドキュメントデバッグツールだけでどうにでもなる状況で「わかりません」を使う人に遭遇するのは初めてだった。



その人はとにかく「わかりません」が多い。

レビューの指摘の意味がわからない、指摘内容はわかっても修正方法がわからない、影響反映を洗い出してほしいと言ったら影響範囲の洗い出し方がわからないと言われる。何ならわかるのか教えてほしいくらいだった。

うっすら評判悪いのは知ってたけど実際に仕事してみると尋常じゃないほど酷かった。

こっちもいろいろ対策を考えた。

Issue振るときソース上に「↓ここの○○をXXになるよう修正してください」とコメントを書いてから仕事を振るようにする、「わかりません」が来そうな部分は先手で予想して回答を載せる。

でもダメだ。こちらの対策なんてものともしないように全てを掻い潜ってくる。

もはやその人に仕事を振るのは「この作業担当してくれたら助かる」ではなく「この作業であれば流石に”わかる”だろう、そして単純作業の量が多いからしばらくは邪魔されないだろう」という感じにできる限り疑問点が少なく時間がかかる作業で”遠ざける”のが目的になっていた。

最低でもあと1年くらいは人事はこの状況らしい。。。

こういう状況ってどう扱うのがいいんだろうなぁ。

2021-06-18

anond:20210618190920

思ってるから労働者存在するんだが

まあ一部のバカテストケースやらデモだけで金出しちゃうんですけど

2021-03-22

仕様書がなく、仕様を3回ほど上司たちに確認して内容に漏れがないことを確認してから開発したのに

からERDレベルの変更が入って、当然の遅延をかましたら遅いと上司に怒られ

そもそも仕様変更だからと言えば気を利かせて確認を取れと言う上司にあきれ果て

打鍵テストに回れというので打鍵テスト説明を聞くとテストメンバーが全員同じDBを触っている

まさかと思いながら打鍵テストケースを見たら案の定DBに変更が入るテストを同じDBでやっている

祈りながら打鍵をたたき、エビデンス要求されているダンプを取ったら案の定DBの内容が別メンバー打鍵テストで変更されている

開発ってこんなもんなのかな 

よくあることなのか、それともうちだけなのか全く分からん

2021-03-01

anond:20210301182510

そんな悪意はないけど、ベンダーまかせなのでコントロール不可能になってるんだと思う

富士通(メイン=第一勧銀)と日立(メイン=興銀)のメインフレームメーカーの浮沈がかかっていたからどちらも譲れなかった

20年たってベンダーロックインが複雑に進行しまさにスパゲッティ

コードだけじゃなくて要件定義テストケースの段階からお互いにデータ依存性が絡み合う

3行分のデータ項目を並列で持とうとしたんだからある意味すごいこと(三菱住友は力関係がはっきりしてたので、明確に一つに寄せられた)

人海戦術で物量を注ぎ込めば何とかなる段階じゃなくなってると思う

2021-01-04

anond:20210104002856

君が精一杯権利行使した結果俺が儲けさせて貰ってるからありがとね

一般国民テストケースとして勉強になった

息子には米国籍取らせて正解だったと思えたよ

2020-11-17

ベンチャーから日本大企業転職して3年経った

とある日本大企業転職して3年経った。この3年、失望し続けることばかりでつらくなってきたので、ガス抜きにここに書こうと思う。

私は以前、とあるメガベンチャーに勤めていた。仕事ハードであったが、充実していた。結婚子供が生まれ育児しながら仕事をしていくのは少し難しかったため、業務時間が短く、保証も充実している日本大企業転職することにした。

大企業仕事はお遊びだった。偉い人のお気持ちをまとめて、要件らしい何かを書き、それをベンダーに丸投げする。仕様書も、テストケースも、負荷試験も、自分たちでは何も理解していなかった。ベンダーから成果物を、何も理解せず、検証もせずに受け入れていた。当然いくつかのプロジェクト最後になって破綻し、すべての責任ベンダーに投げていた。

私は以前の会社で、すべてを実施していた。そのため、それらをそれなりにこなせる私は重宝された。私は入社して数ヶ月でプロジェクトリーダーになり、そのプロジェクト成功させた。私が最初にいた企業では当たり前水準を満たさないようなものだったが、それでもこの企業では大きな成果だった。それ以降、数日おきに偉い人が自分の持っているプロジェクトについて意見を聞きに来るようになった。

私が彼らに話したのはシンプルな話だった。有名なマネジメントの本をよく読み、その知識を元にベンダーとよく話し、彼らの言葉をしっかりと理解し、無用な負荷を与えないように最も重要課題にのフォーカスできる環境を整える。本に書いてあることをちゃん実践する。それだけだ。それだけのことが、驚くほど彼らには伝わらなかった。最初プロジェクト相談だけだったのが、計画書、仕様書テストケース作成仕事が回ってくるようになった。倍以上の年齢の人が仕事を渡してくるのだ。当時20代の私はうまく断ることができなかった。平日は深夜まで働き、休日も多くを仕事に費やして、なんとか回るような状態だった。

そして気がつけば、2つのプロジェクトリーダーとなり、3つのプロジェクトアドバイザーになっていた。だが当時20代の私は、肩書のない平社員のままだった。平社員の私が私よりも数段上の役職人間に、彼らのプライドを最大限守りながら業務指示を出していた。

アドバイザーとしての仕事は、偉い人の非現実的妄想を聞いて、それを現実的な着地点に収める計画書を作るといったものだ。偉い人は自分で依頼した仕事について、何も理解していない。そのため、ベンダーから成果物も私が検品し、何も勉強していない足りない頭でも理解できるように解説して渡した。仕様書通りの成果物ベンダーから提供されたときも、偉い人間が癇癪を起こし、やり直しになることもあった。

この大企業は、若者たちの多くが優秀だった。みな学習意欲が旺盛で、プライベートでは様々なプログラミング言語クラウドについて学習し、今の仕事に取り込むために知恵を振り絞っていた。若者達は多くを学んでいるため、上の人間の間違いによく気づき、それとなく指摘した。上の人間知識では勝てないので、怒りの感情でそれに対処した。若者達は今の仕事で実績を作ったあと、AmazonGoogle転職していった。残されたのは、学習する習慣の無い、高学歴で、間違いを指摘するような精神性を持たない者達だけだった。

この企業年功序列であり、優秀な人は見切りをつけて退職していく。そして、学習意欲のない、無能で、間違いを指摘しようとしない人間のみが残る。そして残った無能人間が偉くなっていく。きっとこれを止める手立ては何もない。これが3年間の間に私が認識した、日本が誇るとある大企業の現状だ。

2020-11-15

anond:20201115125745

ある意味コミュニケーションこそが存在意義」みたいなものだとはおもった。

そして、だんだん政治のほうが強くなっていくのだと。政治というのも、事をなすためのコミュニケーションだよね。けども、良い政治ができている組織というのは少ない。

そして、プログラマコミュニケーションとは、わかりやすコードコードサポートするテストケース

かにテストケースや、コメント億劫だけど、きちんと書かないと「コミュニケーション」がしづらくなる。

2020-09-30

よくあるIT系企業で働いているのだけど

エクセル設計書を書いて

エクセルテストケース作って

エクセルエビデンスまとめて

エクセルレビュー指摘が書かれてる。

この作業を十数年やって気が付いたんだけど、各種テンプレートファイルをコピって更新者だとかの名前変えていく作業

本質的になんの価値もなくて無駄だな?

特にレビュー指摘はあとで集計したりもするわけだし、なんかweb管理アプリがあるのでは・・・

2020-08-14

anond:20200814215916

基本はそうだと思うんだけど、実際的に支持されそうなテストケースを作るのが困難かなと思ってる。

パラメータが多すぎるし、洗い出すのが不可能。困り眉、潤んだ目、頬の光沢、...、スカートのシワ??

・強度を一律に定義できない。スカートのシワは性的強度点数いくつ???エロく見える人もいれば見えない人もいる

そんな感じで、どんなテストケースでやっても、妥当ではないとなるし、テスト自体が莫大なリソースくうんじゃない?

実質不可能だと思ってる。

2020-06-25

anond:20200625063230

というか、

ASICやLSIを作ったことある人なら、当たり前すぎることなんだけど、

語弊があるどころかニュアンスが逆なんだよね。

マイクロアーキテクチャ共通化するっていうことは、

開発者にとって楽になるどころか難しい方向に行くんだよね。

フロントエンドのみArm命令に置き換えた形」という文言は、

「中身は前のまんまw」「命令セット入れ替えただけなんすわw」「命令デコーダarm化したSparc64です。」という意味ではなくむしろ逆で、マイクロアーキテクチャ共通になるように、DDRHBM差分を見えなくしたりレイテンシを調整したりetc...して、ほとんど全部Verilogを書き直したってことなんだよね。

で、なぜそこまでしてマイクロアーキテクチャ共通化するかっていうと

チップ検証で、過去資産活用するためなんだよね。

LSIチップ検証って組み合わせパターン天文学的数字すぎて分岐網羅とか全然できないんだよね。

ソフトウェア的な分岐網羅に換算したら0.1%となんじゃないかな。

そこでマイクロアーキテクチャ共通化してると、過去チップLSIテストケースを流用できるわけなんだな。

でも、カバレッジ全然ないのに、もしLSIバグがあると作り直しにウン億円ぐらいお金かかるからね。

これは国プロからそこらへんどうしてるんだろうね。

2020-05-11

anond:20200511005804

うちの会社場合だけど、テストケース仕様書を元に派遣テスターが作ってる。テストデータ派遣テスターが作ってる。もちろん仕様書がいい加減だとプログラムテストダメになるから仕様書は何重にもレビューされている。

anond:20200511005528

なにを元にテストケース作ってるんだろ、とか、テストデータ誰がつくってんだろ、とか興味はつきない。インプットがいい加減ならアウトプットもいい加減なのはプログラムだけに限らない。

anond:20200511002653

テスト仕様書テスターに書かせるなんて恐ろしいことはしません。テスターは何を元にテストケースを書くのでしょう。知ってる現場範囲でいいですよ。

2020-03-10

Atcoder始めたんだけど

テストケース公開って大体いつ頃?

ABC158のテストケースが見れなくて困ってる

2020-01-23

最後の50万ぐらいは自暴自棄だったからというのは理解できるけど

そこにいたるまでの借金って、強いストレスや異常なストレスを与えられて

通常業務ではおき得ないストレス共生的に与えられて

借金にいたった

これで自己責任論がでると、業界やってけないな。そのテストケース

2020-01-20

anond:20200120180448

あほ、まず出力ファイル仕様書をもらえ。そしてファイルの変換モジュールを作れ。

ファイルもらう必要はない、個人情報とか入ってたら面倒だし、データから仕様を読み取るというのはとても危険行為だ(例外や頻度の少ないデータが含まれてなかったら終わりだ)。あったらテストデータに使えるかもしれないが、テストケースを網羅してるとは限らない。

2020-01-14

anond:20200114112442

現実派、大詰めになってくると、かなりのテストケースを同時に対処する複合問題に対するパッチおなる語リズム

既存問題をさいどよびおこさないようにしながら

その問題対応するパッチを考えないといけない。

こうなると、かなりの時間を長考することになり、皇居ランとかスタバとかがふえていく。(実は仕事中)

考え抜いて、アルゴリズムを決めて、サンプルコードをつくって結果が良港なら本採用してパッチを当てて、テスターにまわすのである

例の松井レナににている担当者がぶったおれたのは、わかいというのもあるけど、考慮するだけでどっぷりつかれて疲労するからである。まぁ受験勉強のようなもの。つらい。

2020-01-02

いつまでJUnit使うんだよ

Javaちょっと大きい案件になると、どこに行ってもテスト環境JUnitばっかり。

いい加減にしてくれよ。

もはやWikipediaにも書かれている通り、あれテストコード書くのが死ぬほど大変なんだよ。

1つのメソッド20も30もテストケース書かなきゃいけなくて、実装よりもテストのほうを頑張らないといけないとか、絶対間違ってるわ。

今年こそJUnitから脱却できますように。

ログイン ユーザー登録
ようこそ ゲスト さん