質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.62%

  • Java

    13464questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • C#

    6828questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • .NET Framework

    444questions

    .NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

xUnitを使った時のコストについて

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 707

redhat98

score 228

これまでレガシーシステムを作っていたので、xUnitを使った事がありませんでした。
この度、一人でちょっとしたプロラムを作ることになったので、xUnitを試しに使ってみることにしました。
なんとなく、xUnitを使うことで、生産性が落ちる気がしましたorz

1. xUnitをどの業務で使っていますか。
 → 金融/CRM/在庫...
2. 生産性ってどのくらいなのでしょうか。
3. テストを書く工数は、どのくらい取っていますか
   → 開発工数の80%?
4. .NETはほとんどテストを書いていない気がするのですが、あなたの身の回りはどうですか。
5. 画面の自動テストどのくらいやっていますか。
6. 自動テストをやって、本当に品質は向上しましたか。

書けない場合は、ブランクのままでOKです。
書ける範囲でOKなので、気軽に書き込んでください。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

こんにちは。

1. xUnitをどの業務で使っていますか。 
特に業務に限らず使っていますが、ウォーターフローの時は使わないです。
あとお客様が納品物としてテストコードを認めてくれないケースがたまに。
 
2. 生産性ってどのくらいなのでしょうか。 
本当は算出しなければいけないのでしょうけど…まだ出来てません。

3. テストを書く工数は、どのくらい取っていますか 
案件の規模にもよると思うのであまり参考にならないかと思いますが、
製造工程の前半半分くらい使います。後半半分でガーッと製造します。

4. .NETはほとんどテストを書いていない気がするのですが、あなたの身の回りはどうですか。 
私の周りはやっていませんが、みなさん書いているのではないでしょうか。
GitHubとか見ると結構みんな使っているんだなーという印象を受けます。
1.で触れましたが成果物として認められないケースが私の周りでは多い印象です。

5. 画面の自動テストどのくらいやっていますか。 
画面も出来ればやりたいのですが敷居が少し高いような気がして、
まだ実現できていません。

6. 自動テストをやって、本当に品質は向上しましたか。 
品質という言葉が人により捉え方が少しことなりますが…
テスタビリティを意識した設計、実装によりコードの質は良くなった気がします。
あとは網羅性向上、テスターのミスなどが無くなりましたので
そういった意味で品質は向上したと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

自動テストがない場合、リファクタリングは行なわないことになると思います。リファクタリングの価値を学べば、自動テストの価値もわかるんじゃないかな。

要件に合致するものを、とにかく納品すれば良いということであれば自動テストもリファクタリングも不要でしょうが、利用者の満足や、納品後の保守性・拡張性に関心を持つ場合、あるいは自社サービスを構築する場合、自動テストは重要です。

1. xUnitをどの業務で使っていますか。 
 → いつでも使っています。金融、CRM、EC、CMSなど。
2. 生産性ってどのくらいなのでしょうか。 
 → 自分は1日に500行くらい書きますが、半分くらいがテストコードかな。
3. テストを書く工数は、どのくらい取っていますか 
   → テストを書く工数を特別にとってはいません。機能を書くときには必要に応じて必ずテストを書くので。
4. .NETはほとんどテストを書いていない気がするのですが、あなたの身の回りはどうですか。 
   → なぜ.NETだとテストを書かないのかわかりません。
5. 画面の自動テストどのくらいやっていますか。 
   → あまりやりません。最近は、JavaScriptを使ったUI/UXが多くなり、自動テストできないわけではないのですが、WebのAPIはAPIでテストし、JavaScriptはJavaScriptでテストして、最後に結合テストするというパターンが多いです。
6. 自動テストをやって、本当に品質は向上しましたか。 
   → 何をもって品質というかですね。私の考えでは、あるアプリケーションのクラスやメソッドの設計は、実際にコードを探索しながら漸進的に改善しなければ、「あるべき姿」に至らないと思います。自動テストを導入せず、リファクタリングもしない場合、クラスやメソッドの設計は、初期段階の「予想」による設計のレベルに留まっているはずだと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/08 09:03

    リファクタリングはとても重要な観点でしたね。
    忘れておりました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13464questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • C#

    6828questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • .NET Framework

    444questions

    .NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。