タグ

SoftwareTestに関するmasutaka26のブックマーク (75)

  • 「あとで捨てることになるコードのテスト」について - @kyanny's blog

    同僚とこんな話をした。 例えば「キャンペーンサイトとプレゼント応募フォーム」のような、一時的にしか使わないことがわかっているコードに対するテストをどの程度書けば良いのか?納期は迫っていて、他にもっと優先度の高い仕事もあるとする。最低限 200 が返ってくることだけをテストすれば良いのか、 POST したらどのようなリソースが作られるかまで厳密にテストすべきなのか。 そのとき述べた僕の意見を書いてみる。 追記 同僚の名誉のために補足すると、その時は「不安な部分をテストすべき」という当たり前な結論に落ち着いたのだけど、そもそも詳しく聞いてみたら「僕ならここは不安だから書くと思う」と考える部分については、彼はすでに書き終えていて、その上でさらに厳密にテストを追加すべきだろうか?という問題意識を持っていた、という。なので、以下に意識高そうなことをつらつら書いているけど、同僚氏のほうが僕よりよっぽど

    「あとで捨てることになるコードのテスト」について - @kyanny's blog
    masutaka26
    masutaka26 2012/05/19
    面白い考え方ですね。
  • Nagoya.Testing を開催しました #NagaoyaTesting - うさぎ組

    2/26に@kumagiさんをキッカケにしてNagoya.Testingというイベントを開催しました。 Nagoya.Testing自体はテストと言われるものに対する包括的なイベントにしようと思っています。開発ドメインやテストタイプやテストレベルなどなどを問わずに毎回やりたいことをやるイメージです。 そして4/6に@ugaya40さんをキッカケにNagoya.Testing #2 in Tokyoを開催してきました。 どちらもメインは「テストプロセス入門」のハンズオンになりました。 どちらのテストプロセス入門でも参考書籍になるのはこちらの「マインドマップから始めるソフトウェアテスト」 マインドマップから始めるソフトウェアテスト 作者: 池田暁,鈴木三紀夫出版社/メーカー: 技術評論社発売日: 2007/06/22メディア: 単行(ソフトカバー)購入: 21人 クリック: 352回この商品

    Nagoya.Testing を開催しました #NagaoyaTesting - うさぎ組
  • 「ソフトウェア開発という仕事」と題して講義をしました

    社内で新卒向けに講義をしました。社内固有の情報を削除した上で、下記に講義資料を公開します。 ソフトウェア開発における開発者の仕事を理解してもらうために話をしました。 講義対象者の半数以上が開発志望ではなかったので、開発者でない人が、今後、IT業界の中でどう開発者と向き合っていくかを主眼にして話しました。IT業界にいながら、開発者のことを理解できない人たち、あるいは何をしているのか分からない、と偏見を持つ人がいるからです。彼らにそうなって欲しくないからです。共感できるかは別です。考え方や価値観が違うなら違うでもいいと思います。はじめから理解を拒否していたら、いつまでもコミュニケーションが生まれません。 ついでに、半数以上が女性だったので、裏の意図として、プログラマがモテるようになって欲しいと思って話しました。プログラマがモテる世界にしたいと思っているからです。若い女性の前で話す機会を得られた

  • CakePHP で ENUM 型を使うとテストできない? - KoshigoeBLOG

    masutaka26
    masutaka26 2012/05/09
    うーん、はっきりして欲しいなあ。> CakePHP
  • PHPUnitのアンチパターンとベストプラクティス

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたらPHPUnitのアンチパターン・ベストプラクティスに関する素晴らしいスライドを見つけたので内容を抜粋で紹介します。 1. テストの中で何もテストしていない class FooTest extends PHPUnit_Framework_TestCase { public function testSomething() { $foo = new Foo; $foo->doSomething(new Bar); } } こういうテスト。どこにもアサーションがなくて何もチェックしていません。 $foo->doSomethingの戻り値を検証しないならなんの意味もありません。 純粋にTDDをしていれば、テストコード作成→テスト実行でRed→プロダクションコード作成→テスト実行でGreenなのでこういうテストは登場しませ

    PHPUnitのアンチパターンとベストプラクティス
  • CakePHP(例えば2系)のテスト

    5. 1系と2系の違い ● 1系 ○ SimpleTest ● 2系 ○ PHPUnit 「なぜPHPUnitに移行したか」は以下参照 ● http://mark-story.com/posts/view/cakephp-and-phpunit ● http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=2331&forum=3 6. 僕がやっている流れ 1. 「create table」でテーブル作成 2. 「cake bake」でテーブル用のModelを作成 3. ロジックのクラスとそれをテストするファイルを手 動作成 4. Test Test Test ○ もうここで大部分のテストは終わらせたい 5. 「cake bake」でControllerを作成 6. Test Test Test Modelの話は他の人が発表しそうだからC

    CakePHP(例えば2系)のテスト
  • [tDiary][github][ci] tDiary の CI 環境を Jenkins から travis-ci に移行した - HsbtDiary(2011-07-09)

    ■ [tDiary][github][ci] tDiary の CI 環境を Jenkins から travis-ci に移行した 今まで tDiary の CI はオレが Jenkins で用意した http://ci.hsbt.org を使っていたんだけど、githubruby なソフトウェアなら http://travis-ci.org が一番 cool という噂を誰となく聞いたので移行してみた。 やったこと http://travis-ci.org に github アカウントでログインして token を取得 入手した token を githubプロジェクト設定 - Service hook にある travis の項目にコピペ、ユーザー名も入力しておく プロジェクトルートに .travis.yml を配置、ymlのオプションは https://github.com/

    [tDiary][github][ci] tDiary の CI 環境を Jenkins から travis-ci に移行した - HsbtDiary(2011-07-09)
  • テストをすっきり書く方法 - 2012-04-25 - ククログ

    はじめに ソフトウェアを作るときには同時にテストも作ります。 テストを動かすことで、ソフトウェアが設計の通り動作しているかを確認できます。もし設計の通りに動作しない場合はテストが失敗し、ソフトウェアに期待する動作と現在の間違った動作が明確になります。 テストをすっきりと書くことができると、テストを読みやすくなり、また、きれいなソースコードのままで新しくテストを追加することができます。 今回は、そのすっきりとテストを書くための方法について説明します。 テストを追加していくと発生する問題 例えば、1つのテストケースの中にいろいろな機能のテストがある場合を考えます。 ここで、ある機能の実装を修正したので、この機能に関するテストを追加しようとしました。 テスト名に「テストのコンテキスト」と「テスト対象」を含めてどのような内容のテストかを示します。 このとき、ある機能に対して様々な動作をテストするこ

    テストをすっきり書く方法 - 2012-04-25 - ククログ
  • チャットワーク開発の裏側 - EC studio 技術ブログ

    大変ご無沙汰な技術ブログ更新となってしまいました。 振り返ってみると、前回の記事がもう約2年前! ブログ記事を楽しみにしていただいていた方には申し訳ない限りです。 この2年間、何をやってたかというと、 「チャットワーク」というサービスの開発に全社を挙げて取り組んでいました。 チャットワークはおかげさまで2011年3月1日のリリース以来、 1年で6万ユーザーを突破し現在も順調に成長を続けています。 そして今年の4月1日に、創業から12年使用し続けてきた 「株式会社EC studio」という社名を「ChatWork株式会社」へと 変更することを発表しました。 (※エイプリルフールに発表しましたが、当です^^; 変更の実施は6月ごろを予定) それなりに親しんでいただけていた EC studio という社名を 変更するのは勇気のいることでしたが、チャットワークというサービスには それだけの可能性

    masutaka26
    masutaka26 2012/04/25
    Selenium を使おうとしたがうまくいかず、テストツールを自作したとのこと。
  • かっこ悪くて面倒でもテストコードを書こう - 今川館

    Python | 10:08わたしはプログラマーではありませんが、いくつかの仕事でテストコードを見たり書いたりすることがあったので、その過程で思ったことをメモとして残しておきます。コーディングとテストを分けて工数を言う癖をやめようどっちもコードを書くのだから分けて考える必要はないテストコードの重要性は理解しているけど、工数も厳しいし客がテストコードを書くことに工数を割くことを認めてくれない。ありがちな話ですが、それがテストを書かないことの根拠であるならば少し考え直しましょう。コーディングとテストを異なる工程と考えるのをやめてしまえばそんなことに悩む必要はなくなります。つまり、「テストを書きながらコーディングする」のです。だいたい、普段プログラムを書いているときだって手元で動かしながらものを作っているでしょう。それと同じことをプログラムを書いてやればいいだけです。客がテストを書かせてくれない

    masutaka26
    masutaka26 2012/04/22
    良い記事。『コーディングとテストを分けて工数を言う癖をやめよう』
  • テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!

    ここ数日 ruby をやってるんですけど、ruby といえばテストらしいので Test::Unit やら RSpec やらを調べてました。しかし僕はこれまでまともな TDD をやってこなかったので、先にテストとは何ぞや?TDD とは何ぞや?ってのを調べたりしていました。 この記事は、ずぶの TDD 素人がテストについて知り始めたまとめです。 1. きっかけは RSpec のドキュメント そもそも RSpec の↓紹介文の冒頭から意味不明に感じたんです。 FAQ:「RSpec って、要は Test::Unit でやっていることを別の書き方にしただけでは?」 この FAQ への短い答えはイエスです。 『スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)』 Rubyist Magazine えっ... じゃあ要らんやろソレ。いちいち手作業でチェック

    テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!
    masutaka26
    masutaka26 2012/03/07
    『プログラミングの手順の解説で、「関数の引数と戻り値を決めてから中身を書け」「クラスのインターフェイスを決めてから中身を書け」というのがありましたが、TDD のテストはこれらの延長線上にあるようです。』
  • TDDの基本的な考え方について - ひげろぐ

    今日はTDDBC 福岡2の講演を聴きながら取ったメモを転載。 TDDとは何か、なぜTDDするのか、どのようにTDDを進めていくのか。 テストは目的ではなく手段であり、真の目的は「健康」。 TDDはスキルだから誰でも習得可能。 といったことが凝縮されている。 TDDとは まず動くコードを書いてそれをきれいにしていくのがTDD。 きれいだけど動かない設計より汚くても動くコードを書いて、それを徐々にきれいにしていく。 ソフトウェア開発においては、まずコードを書いて動かしてみないと分からないことが多すぎる。 なのでコードを書き始める前に設計に力を尽くしても無駄になる部分が多い。 完璧な設計をしてからコードを書き始めようという「完璧主義の呪い」 (一方で設計しなさすぎも死ぬけど) TDDのサイクル 1. テストを書き 2. そのテストを実行して失敗させ (Red) 3. 目的のコードを書き 4. 1

    masutaka26
    masutaka26 2012/03/03
    良記事。『TDDはスキルだから誰でも習得可能』『TDDと黄金の回転』『例えば部屋の掃除のように。ためてためて大掃除になるといろいろと大変』
  • テストが間違ってたら? - 日々常々

    「テストが間違ってたらどうするんだ」 自動テストの話をするとよく言われます。テストが間違ってたらわからないじゃないか。手動テストであれば、注意深く目で確認していれば間違いに気づけると言う主張です。 「目で確認していれば気づける」のは間違いではありません。必ず気付けるわけではありませんが、十分な知識を持った人が、十分な集中力と責任感をもってエビデンスを確認すれば、誤りに気付ける可能性は高いと思います。 品質(主に機能性)を目的とした自動テストでも、それを行う必要があります。それがテストコードのレビューです。 手動テストの場合、テスト実施前に手順や確認項目のレビュー、実施中の確認、実施後のエビデンス確認と、人が確認するタイミング*1が三カ所あります。 これに対し自動テストの場合、テストが書かれた時のみ。実行中は勿論、実行結果の確認に注意はありません。ただ成功か失敗かだけなので。ならば、テストコ

    テストが間違ってたら? - 日々常々
    masutaka26
    masutaka26 2012/03/03
    テストコードに if とか for とか使っちゃダメですね。
  • テストというのは、ソースコードの冗長化だと思う - きしだのHatena

    テストというのは、基的にはソースコードの冗長化だと思う。来ならプロダクトコードだけ書けばよいところを、信頼性を高めるために複数の視点でのコードを追加する。 また、サーバーの冗長化で、2台構成を3台構成にするよりも、はるかに1台構成を2台にするのが難しいように、テストも、10のテストを20にするよりも、最初のテスト(プロダクトコードも含めると2目のコード)を書くのが一番難しい。 テストがソースコードの冗長化であるなら、アクセスのないサイトでサーバーをクラスタリングするのが単なる金や設定時間の無駄であるように、長期的な信頼性の求められないプロダクトにテストを書くことも金の無駄だ。 アクセスが多いのにサーバー冗長化の金を払わない顧客に対してクラスタリング構成を構築する義理がないように、信頼性が求められるのにテストの金を払わず時間も確保しない顧客のためにテストを書いてやる必要もない。もち

    テストというのは、ソースコードの冗長化だと思う - きしだのHatena
    masutaka26
    masutaka26 2012/02/25
    確かに。
  • デブサミで僕が話したことの簡単なまとめ - 宇宙行きたい

    デブサミが 10 周年でした。 残念ながらオファーなかったのですが、一昨日くらいに急に参加していいよって言われたので 「From Legacy to Agile 〜レガシー開発からアジャイル開発へ〜」に乱入してきました。 そこでチームビルディング的な話を話させてもらいました。 資料とか特に作っていなかったので僕がリーダーとしてチームメンバーにお願いしている決まり的なことを簡単にまとめておこうと思います。 テストを書け 問題を根性で解決するな 人を殺す以外なら何やってもいい 失敗を引きずるな 個別に補足書いて行きます。 一応状況の簡単な説明をしておくと、最初は 3 人しかいないチームに 「手伝ってくれないか?」と言われ合流しました。その後、僕がリーダーになり 今は 15 人前後のチームで動いています。 テストを書け これは僕がチームに入るときに最初に宣言しました。 「テストを書かないようなプ

    デブサミで僕が話したことの簡単なまとめ - 宇宙行きたい
    masutaka26
    masutaka26 2012/02/19
    チームビルディングの話。めっちゃいいこと書いてある。
  • ブラウザを選ばずWebテストを自動化するSelenium

    Webアプリケーションのファンクションテストを行うツールとして注目されている「Selenium」のバージョン1.0が6月20日にリリースされました。安定性が向上するとともに、Firefox 3.0、3.5(Selenium IDEは1.0.2から、Firefox 3.5に対応)や、Internat Explorer(以下、IE) 8などの最新のWebブラウザにも対応しました。 稿では、Selenium 1.0をベースとしたSelenium IDEとSelenium RCを利用した効果的なSeleniumの利用方法を紹介します。 Webアプリのテストで誰もがイラつく大きな課題 Webアプリケーションテストを手で行うと、非常に煩雑です。Selenium登場以前の従来のやり方では、次のような問題がありました。 回帰テストに時間がかかる バグ修正や仕様変更などで、Webアプリケーションを変更した

    ブラウザを選ばずWebテストを自動化するSelenium
    masutaka26
    masutaka26 2012/02/17
    Web ブラウザを使ってテストするツールらしい。
  • PHPUnit テストケースで書き換えた値を復帰する

    PHPUnitのテストケースで書き換えた値の復帰について。 テストケースでテストを記述する際に、スーパーグローバルやクラス変数を書き換えることがあるのですが、これらの値を書き換えたまま、別のテストを実行すると書き換えられた状態でテストが実行されるので、それらの値に依存した処理があるとテストが通らないことがあります。 PHPUnitでは、そういったテストをまたがって影響を及ぼすであろう値の保存、復帰を自動で行なってくれる機能があります。 スーパーグローバル デフォルトでは、各テストメソッドを実行する前に、スーパーグローバル変数($_ENV, $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES, $_REQUEST)の値をが保存されており、テストメソッド終了後にそれらの値がスーパーグローバル変数へ復帰されます。 これらの処理はsetUp()/tearDown(

  • ウノウラボ by Zynga Japan: PHPで利用出来るテストと開発に便利なツール

    こんにちは。yukiです。 今日はテストや普段の開発に便利なツールのご紹介をしたいと思います。PHP限定のツールですので、ご了承下さい。 ZyngaJapanでは、昨日リニューアルオープンした「ファームビレッジ」でも、Jenkins(旧Hudson)によるCIを行って開発しており、TDDやJenkinsでのCIを利用する文化がだんだんと浸透してきています。Jenkinsのプラグインとして利用できるものも多くありますが、当然ながらコマンドラインからも利用出来ますので、コミット前に自分のコードをチェックすることもできます。 phpcpd コードの中でコピー&ペーストで記述されている部分を検出してくれます。 どの程度の重複から検出するかを柔軟に設定できるので、まず大きな部分から修正するなど判断ができ便利です。 $ phpcpd /path/to/project phpcpd @package_v

    masutaka26
    masutaka26 2012/02/08
    さらにこんなのも。
  • PHPUnit でよりよくテストを書くために

    第56回PHP勉強会@関東で PHPUnit について話してきた http://blog.yuyat.jp/archives/1386

    PHPUnit でよりよくテストを書くために
  • なんちゃって個人情報

    なんちゃって個人情報は「Generator of the Year」にて【便利賞】を受賞いたしました!! 投票して下さったみなさま、当にありがとうございました。 今後もどんどん使ってやって下さい。 プログラム等に使えるかもしれない個人情報のテスト用データを作成できます。特に説明が必要なものでもないので、とりあえずやってみていただければわかると思います。 念の為書いておきますが、生成した偽個人情報により発生したいかなる損害も当方は一切関知しません。たまたま名前が実在の人物と同姓同名になってしまうかもしれませんし、特に電話番号や携帯については実際に使われている番号と重なることがありますから、扱いには十分注意して下さい。 何かご要望とかありましたらお気軽にブログまでコメント下さい。 HTML シンプルなHTMLのテーブルで出力します。 XML ルートを<records>、各レコードを<reco

    masutaka26
    masutaka26 2012/02/02
    なかなか良いかも。