2017/12/10 システムテスト自動化カンファレンス2017-2 「GebとSpockではじめるシステムテスト自動化」
この記事の対象者 プロジェクトでテストを書いている。(書いたことある) テストが重要らしい事は知っているが、テストの恩恵をそこまで実感できていない。 結局手動テストに依存したバグフィックスをしている。 はじめに 私はテストの設計手法、実装に関する知識は多く持っていましたが、知らなかったことはテストの考え方でした。 テストが重要らしいことを知っている人は多いと思います。 しかし、実際に恩恵を実感できていない人もいると思います。 事実、 テストが重要だと発信している人 と、 テストが重要らしいことを知っている人がいます。 後者の人は、とりあえずテストを書く事ができます。しかし、テストに時間を割く割りに、最終的には手動テストでバグを発見することに依存している事も多いかなと感じます。 世間ではテスト書くのが当たり前、テストは重要!という風潮であるのに、何故テストが重要であると実感できないのでしょう
和田卓人さんによるテスト駆動開発問題解説の寄稿です! バグのないよいコードを書くには、よいテスト設計が重要です。今回は現在時刻に関する問題と、その問題で提出された実際の解答コードを紹介しながら、どのようにテスト設計し開発していくのかを解説していきます。 ゲスト解答による解答コードも公開中! by CodeIQ運営事務局 はじめに こんにちは、和田(@t_wada)です。今日は先日出題させていただいたTDDに関する問題の総評を行いつつ、テスト容易性設計について考えてみたいと思います。 問題文 私が出した問題は、以下のようなものでした。 問1. 下記の仕様をテスティングフレームワークを使ってテストコードを書きながら実装してください。 【仕様1】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能を作成したい。 (タイムゾーンはAsia/Tokyoとする) 朝(05:00:00以上
Stack OverflowのTDD Anti-patterns catalogueというスレがとても面白かったので訳してみた。 Stack Overflowのvoting機能でアンチパターンへの投票を行っている感じ。 上から投票の多い順になっている。 得票数はこの記事執筆時点(2013.7.9)のもの。 SQLアンチパターンっぽく、パターン名はそのまま片仮名にしてみた。 また、内容がかなり被っているとか、状況がかなりレアじゃないかと思うものは、一部省略しました。 (ブコメで訳間違ってるよ、って教えてもらったので、一部修正しました 2013.7.10) フリーライド (テストのただ乗り) 50pt 新しいテストケースを書くのではなく、他の機能のテストに新しいアサーションを追加して既存のテストケースに乗っかる。 セカンドクラス シティズン (二等市民) 47pt プロダクションコードのように
TDDやってますか?テストを書いて、実行。コードを書いて、テストを実行。PHPUnitコマンドを1日に何度も叩いているPHPerに朗報です。コードとテストを修正して保存をすると、それを検知して、自動的にPHPUnitを走らせて、結果をGrowlで通知する環境をつくりました。これで、TDD Boot Camp in Tokyo #tddbcもテンポ良くすすめられますね。 gem watchr インストール PHPerには申し訳ないのですが、Rubyのgemを使います。 gem install watchr growlnotify インストール Growlへの通知をするgrowlnotifyをインストールします。 Growlをダウンロードして、Extraディレクトリに含まれている、growlnotifyをインストールしてください。 環境をcloneする hirocaster/phpunit-s
お手持ちの環境で、下記のように表示される方は問題ありません。安心して、TDD Boot Camp in Tokyoにお越しください。 $ phpunit --version PHPUnit 3.5.14 by Sebastian Bergmann. さて、そうではない方に向けての記事です。PHPUnitを自分の環境に構築しましょう。 PHPUnitはJUnitを参考にしてつくられた、PHP向けのxUnitツールです。PHPのテスティングフレームワークでは鉄板のツールです。(あんまり僕は使う機会がないのだけれど) 環境 以下の環境が必要です PHP 5.2.7 以上 インストール方法 pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.s
はじめに 単体テストとは、システムの構成要素であるクラスやメソッド単位での動作を確認する作業のことを言います。 Webシステムは基本的に不特定多数に公開するものであり、公開前にはきちんとテストを行っておくことが重要です。 PHPにはテストツールとしてPHPUnitという単体テストのツールがあり、PHPUnitを利用するとクラス内のメソッドに対してテスト用のクラスを自動で生成し、効率よくテストすることができます。 PHPUnitを利用して単体テストする場合のプロセスは テスト対象となるクラス、PHPプログラムの作成 1.で作成したクラスからPHPUnit内のクラスを用いてテスト用のクラスを作成 2.で作成したテスト用のクラスに目的に応じてテストメソッドの実体を記述 テスト実行、結果の確認 となります。 本記事では、本連載第4回『GPS携帯を使った口コミサイト構築』の逆ジオコーディング処理をテ
みなさんこんにちは。@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なのでこういうテストは登場しませ
HudsonいいねHudson。Jenkinsに名前変わったみたいなのでまた後で乗り換えるけれども。 昔某ソフトハウスにいた頃、まだmavenもなかった頃、頑張ってantを駆使してJUnitとJCoverageをデイリービルドで回して計測してエラーがあったらみんなにメールが飛ぶって、そういう環境を自分でも作ったし使っていたのに、今の会社で全然そういうことをしていないのが嫌で嫌で。 そしたらPHP用のAntであるところのPhingもあるしデイリービルドをやってくれるHudsonもあるし、これはと思って1日頑張ってみた。OSはCentOS5.5。 1.CentOS5.5にPHP5.3を入れる CentOS 5系でPHP5.3系やMySQL5.1系を使いたい場合 - RX-7乗りの適当な日々 こちらのサイトを参考に、--enablerepo=remiで php php-devel php-pec
TwitterでこんなTweetが流れた… エビデンスとしてNUnitのGUIのスクリーンショットと、対応するテストコードが含まれている部分のVSのスクリーンショットを取る作業が終りません・・・ UnitTestのエビデンスって…なに? 一般的にテストのエビデンスというと、次の2点を指す。 テスト手順を明らかにするもの(ex. テスト設計書、テスト仕様書、...) テスト結果の証拠(ex. 画面ハードコピー、DBスナップショット、...) UnitTestでは、これはこのように解釈できる。 テスト手順を明らかにするもの = テストコード テスト結果の証拠 = 今実行すればテストが全てグリーンになること これがなぜか理解されず、軋轢とストレスと大きな工数追加になっている現場がずいぶんある。 なぜUnitTestはいつまでも理解されないのだろう。 余談。これらのことは、Seleniumなどを使
TDDBC in TokyoをPHPUnitでやる予定なので、TDD関連資料をあさってました。 実際に手を動かして、1から2時間で最後までやり通せるTDDの資料を見つけました。 TDDに興味を持った方が最初にやるのにちょうど良い内容なので、お知らせします。 オブラブで公開されている車窓からのTDDです。Java+JUnitの構成で書かれていますが、PHP+PHPUnitで、ほとんどPHPっぽく書き直せば問題なくTDDの雰囲気を学べる内容です。 Fake It 三角測量 リファクタリング などのタイミングを具体的に理解できるストーリー仕立てになっています。内容のボリュームもお手軽なので、TDDに興味のある方は、やってみてはいかがでしょうか?TDDの良さが体験できると思います。 PHPのコードをgithubで公開しています。「PHPでどう書くの?」って思った方は参考にしてください。
TDD(テスト駆動開発)のチートシートを作ってみた。 TDDBCでid:t-wadaさんが話している内容とかテスト駆動開発入門から引っ張ってきています。 ダウンロードはこちらからどうぞ。 PNGイメージ: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png PDFファイル: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.pdf 追記 印刷・再配布などはご自由にどうぞ。 もし、元データ(OmniGraffle)が欲しいという人は、コメント欄かTwitter経由で教えていただければ差し上げます。 追記2 このチートシートは、OmniGraffleで作りました。他に使えそうなツールとしては、イラレとか。Visioでもたぶん作れると思います。
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く