パスワードを忘れた? アカウント作成
247771 story
ソフトウェア

ソフトウェアのテストを退屈じゃなくするコツは? 93

ストーリー by reo
TDD「どうやら俺の出番…え、違うの ?」 部門より

ある Anonymous Coward 曰く、

本家 /. 記事「How Can I Make Testing Software More Stimulating?」より。

自分はソフトウェアを書くのが好きだ。楽しいと言ってもいい。しかし昔からソフトウェアをテストすることが好きではない。好きではないというか、死ぬほど嫌いとすら言ってもいい。

ソフトウェアをテストすることは余りに退屈で刺激が無さ過ぎて、任せられる時は完全に誰かに投げてしまう。誰もいない場合は仕方なく自分でやるのだが、はっきり言ってテストの仕方が下手である。自分が怠け者だからというのが原因ではなく(プログラミングなら何時間でもできる)、テストの時だけはどうしても他のことを考えてしまったりしてどうにも集中できない。

せめてきちんとテストできる習慣をつけたいとは思っているのだが、どうすればマニュアルで行うテストをもう少し退屈じゃなくできるだろうか?

本家 /. には「開発者とテストを行う人は分けるべき」との意見もあるが、いつもそれが可能とも限らないだろう。/.J 諸兄方はどう乗り切っている?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2010年08月19日 12時48分 (#1812188)
    1.テスト項目、確認事項を箇条書きでもれなく書き出す。(できればあとから思いついた項目を追加できるよう紙媒体がベター)
    2.その項目をひとつひとつ実行するごとにチェック印をつけるか、もしくはその項目の行を取り消し線で消す。

    単純な方法だがこれをやると自分がいま全テスト行程のどのくらいの位置にいるのかを視覚的に確認でき、あとどれだけで終わるかなど、ゴールを認識できるので精神衛生上良い。
    全行程を終了すると、テストを行なった項目とそれを消した線が残るので自分はこれだけのことをやったという到達感が残せる。
    それによって、しだいにテスト作業に取り組む意識が変わってくる。
    • by Anonymous Coward on 2010年08月19日 17時18分 (#1812363)

      あなたの仰っていることは正しい。全く正しい。

      ただ、

      >1.テスト項目、確認事項を箇条書きでもれなく書き出す。(できればあとから思いついた項目を追加できるよう紙媒体がベター)

      これこそが果てしなく退屈な作業なんだ・・。

      親コメント
      • Re:到達感を自分に与える (スコア:2, おもしろおかしい)

        by Anonymous Coward on 2010年08月19日 18時21分 (#1812388)

        >1.テスト項目、確認事項を箇条書きでもれなく書き出す。(できればあとから思いついた項目を追加できるよう紙媒体がベター)

        これこそが果てしなく退屈な作業なんだ・・。

        真っ白な紙をイメージしてください。
        紙はあなたにペンで文字を書き込まれ汚されることを望んでます。
        真っ白な紙を黒い文字で埋め尽くしてあげてください。
        書き込む内容はもちろんテスト作業の内容です。
        それは作成された生まれたてのプログラムをいかにいじめるかです。
        さぁ、妄想を膨らませてあなたの気が済むまでいじめてあげてください。
        あなたの想像力しだい、思うがままです。いくらでもどうぞ。

        ほら、退屈なんかじゃないでしょ

        親コメント
      • by gonzo (38147) on 2010年09月24日 17時22分 (#1829855)

        苦痛きわまりない作業を乗り越えてテスト項目を書き出したとしても、
        膨大な組合せから成り立つ全てのテストパターンの数を見た瞬間に

        あぁ、本当にこれを全部やるのか?

        と嫌になるに決まっている。

        親コメント
  • 無理 (スコア:3, すばらしい洞察)

    by Anonymous Coward on 2010年08月19日 14時13分 (#1812254)

    自分で書いたソフトのテストを好きになる方法はまず存在しないと思われます。
    自分で作ったものを自分で疑うという行為ですからね。心理的に抵抗が強いですよ。
    開発者自身にテストさせると、想定パターンしか流されない事が非常に多いのは、そのあたりにも理由があるでしょう。

    あと余談ですが、「プログラムは好きで何時間でもできる」という人は、得てしてプログラマーには向きません。
    プログラムを書くことが苦痛ではなく快楽なので、問題解決の方法で「とにかくプログラムを書いて力尽くで解決する」しか選ばないことが多々ありますから。
    なので、こういう人間にはむしろ積極的にテストまでやらせて、「プログラムを作ることは苦痛である」と刷り込ませるのが一番です。

    • by Error401 (2061) on 2010年08月19日 14時42分 (#1812278) 日記
      ユニットテスト好きは結構いると思います。自分もそう。というか、ユニットテストしないと逆に不安かも。参考: テスト熱中症 [objectclub.jp]
      親コメント
  • 私だけかもしれませんが、
    そうすると、トラブルが起きる夢を見るので
    次の日の朝一にソースを見直して対策を考えます。
    一度、使う立場になって考えてみるという事でしょうか?
  • by prankster (12979) on 2010年08月19日 15時42分 (#1812320)
    確かPalm機の開発環境(PC上のエミュレーター)に、ランダムにタップとか入力とかを繰り返すバグ出し用のモードがあった。名前は忘れたがimpとか言う感じだった気がする。これ、見てると予想外の行動に出てバグを現出させてくれるので、意外と面白かった。

    PC用アプリとか大型アプリ用にそういうのないのかな?
  • SですかMですか (スコア:3, おもしろおかしい)

    by sumeshi0206 (12305) on 2010年08月20日 13時24分 (#1812681) 日記

    他人の作ったプログラムをテストする体制がある場合だけど

    S=テスター
    M=プログラマー

    が適材適所かと。

    Mしか居ない場合どうなるんだろ?Sに覚醒?

  • テストも設計する (スコア:2, すばらしい洞察)

    テスト・ファーストの話だけど、テスト自身の構成・設計に凝ると結構楽しくなってくるよ。

    モック・オブジェクトやらやらテストを記述しやすくするテスト用の補助メソッドやら…。
    記述しやすい気のきいたテストの設計を思いついた時の感動はテスト対象本体の設計で感じる感動と近い。

  • それ以外にあるの? (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2010年08月19日 12時34分 (#1812163)

    >本家 /. には「開発者とテストを行う人は分けるべき」との意見もあるが、いつもそれが可能とも限らないだろう。

    これ以外あるのかよ。
    可能じゃないというなら、テストを面白くすること自体、可能じゃないといい切っちゃうぜ。
    自分の描いた絵で抜けないのと同じさ。

    • Re:それ以外にあるの? (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2010年08月19日 12時44分 (#1812173)
      テストするプログラムを書けばいいんだよ。
      親コメント
    • 自分で描いた絵については別投稿。

      >テストを面白くすること自体、可能じゃないといい切っちゃうぜ。

      プログラマさんの気質の一種ですね。
      書いていたら楽しい、あとはどうでもいいや、書いたものの検証?やなこった...
      うん、実は文字書きにもこういうお方が多いんだよね。
      小説やエッセイや論文をすらすら書くけど、推敲や校正は「やなこった」。

      でもって、他人のチェックできっちり調べるのが好きな人もいるのだけど、
      また、この人に書かせると、自分の書いたものだと推敲とか校正は「やなこった」
      が多かったりする。

      ところが絵描きになると、描いていた絵にさらに上塗りやら、あーでもない
      こーでもないと...なもんで絵描き(漫画家とかだと、割合は減るけどね)の
      気質との差が結構あるんだよね。

      漫画家でも、一カットにひっかかって...という人が結構いるし、出した後でも
      「あああ、描き直していいですかぁ?」ってのが多かったな。

      # 某同人の編集人としては、文字書きには校正/絵描きには催促が....
      # しかしその編集人も、実は自分の書いた編集後記の校正は嫌いだ...www

      親コメント
  • 開発元がテストをする必要なんて全くありませんよ
    なぜならば、現場とお客様がテストするからです
    開発元はテストなどせずに迅速に製品をだせばよろしい

    ……新パッケージがでる度にバグテンコ盛りなのはそういう事でありますよね!
    有料βテストってレベルじゃねーぞ!
    さっさとパッチを出してよ!!!

    • 今は亡き某ゲームメーカを思い出した。

      カラオケで延々と席取りをする、CG一覧に没CGの分の枠もあるのでCGが全部埋まらない、
      キャラクターの表示で首から上しか表示されない、Hシーンで普通の人間のはずが耳としっぽを
      パタパタと振る、etc

      で、エンディングでスタッフロールが流れて、最後に「and プレイヤーのみなさん」というような
      (言葉は違うけど)表示がなされるんだけども、やはり、プレイヤーはデバッグ要員でスタッフ扱いなんだ
      という冗談(半ば本気)が流れてました。

      「わたしのありか。」は特にひどかった…

      --
      らじゃったのだ
      親コメント
    • by Anonymous Coward on 2010年08月19日 14時23分 (#1812266)
      つ overflow
      親コメント
  • by tminato (39566) on 2010年08月19日 13時13分 (#1812210)
    テスト自動化100%を達成するテストセットを作成するのはどうでしょう?
    そうだとテストセット作成もプログラミングすることになり、それなりに楽しいかもしれないです。
    • そしてテスト自動化プログラムの動作テストとテストセットのデータテストが…。

      親コメント
      • テストセットにバグがあってはいけないのですが、
        ログ出力の工夫、テスト対象のバリエーションを用意すれば、
        テストセットのバグにも気づくことが多いです。

        テストを実行した結果について、目視確認じゃ効率はよくないので、
        データテストも100%自動化しましょう。

        テストセット作成は、本当に工夫次第なので、
        プログラマの能力も問われます。
        親コメント
  • それだけ頭のバグが多いのです
    コードを見る前に頭のバグ取りをしましょう

    困ったらとりあえずキーボードの前から離れること
    栄養を取って早めに休む
    それを可能にするための折衝能力もプログラマの腕です

    テストを書かずにテストが終わっている
    そういうコードを書くように心がければプログラミングも面白くなるでしょう

    まあ医療系では稼働中も常にテストする必要はあるわけですが
    ROM全体のCRCを常に取るとかそういう系の

    テストが退屈というのはコメントを書くのがつまらないと言っているのと同じで悪の怠惰です
    とテスト埋め込み派の俺はそう思いますけれど
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...