タグ

TDDに関するkiyoshi1211のブックマーク (32)

  • t_wadaさんに社内向けTDD研修を開いてもらったよ - for Startups Tech blog

    どうも、ばやし(@bayashimura)です。 先日、和田卓人(@t_wada)さんにフォースタートアップスのエンジニア向けにTDD(テスト駆動開発)研修をやってもらったので、紹介していきます。 きっかけ フォースタートアップスでは私が入社する前から自動テストに一定の投資をしていました。 大体の機能に関してはテストが存在し、テストを書かずにプルリクを投げると「書いてください」と返ってくる文化でもあります。 しかしプロダクトのコードが増えるに従い、テストコードも増加し、以下のような問題が発生しておりました。 テストの可読性が低く、テスト内容に対する認知負荷が高い テストのメンテナンスコストが高くてしんどい(すぐ壊れる) e2eテストを導入したがflakyで、導入したことをちょっと後悔してる こういった課題にもやもやしたものを抱えつつそのうちどうにかしないとな、と日々を過ごしていた中、CTO

    t_wadaさんに社内向けTDD研修を開いてもらったよ - for Startups Tech blog
  • これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE

    和田卓人さんによるテスト駆動開発問題解説の寄稿です! バグのないよいコードを書くには、よいテスト設計が重要です。今回は現在時刻に関する問題と、その問題で提出された実際の解答コードを紹介しながら、どのようにテスト設計し開発していくのかを解説していきます。 ゲスト解答による解答コードも公開中! by CodeIQ運営事務局 はじめに こんにちは、和田(@t_wada)です。今日は先日出題させていただいたTDDに関する問題の総評を行いつつ、テスト容易性設計について考えてみたいと思います。 問題文 私が出した問題は、以下のようなものでした。 問1. 下記の仕様をテスティングフレームワークを使ってテストコードを書きながら実装してください。 【仕様1】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能を作成したい。 (タイムゾーンはAsia/Tokyoとする) 朝(05:00:00以上

    これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE
  • テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!

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

    テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!
  • iOS開発における現実的なCI環境 - jarinosuke blog

    継続的インテグレーション 最近では iOS アプリでも単体テストを使った継続的インテグレーションが注目されています。 iOS 開発の単体テストについては、このブログでも取り扱いました。 Xcode 4 からはじめる Unit Testing GHUnitとOCMockでUnit Test効率化 一般的な CI 環境についての説明は、以下のから抜粋するとこんな感じです。 Jenkins 作者: John Ferguson Smart,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2012/02/22メディア: 大型購入: 12人 クリック: 299回この商品を含むブログ (26件) を見る デプロイメントに至るまでの開発プロセスをスムーズにし、バグの検出とフィックスを素早く行えるようにし…(略) では iOS 開発における現実的な CI 環境を考えていきましょう。

    iOS開発における現実的なCI環境 - jarinosuke blog
  • Simple, Flexible, Trustworthy CI/CD Tools - Travis CI

    Whether starting from scratch or rebuilding a rich ecosystem, get pipelines flowing with preconfigured environments for your language and a minimal syntax with up to 50% less YAML or JSON. language: python python: - "3.7" - "3.8" - "3.9" # Command to install dependencies install: - pip install -r requirements.txt - pip install pytest pytest-cov # Command to run tests script: - pytest --cov=./ test

    Simple, Flexible, Trustworthy CI/CD Tools - Travis CI
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • [TDD] スタート地点で止まらない為のTDD TIPS - 2012-01-10 - ぽにくすじゃないだいありー

    10:50 | 皆さんは設計という名の「下手の考え休むに似たり」をして時間を無駄にしてしまったり、作りたいモノがあるんだけどどうやったらそれを作れるのかのイメージを組み立てられずに結局は何も作らずに無為に時間が過ぎたような事ありませんか?僕はあります。最近になってTDDはそんな人がスタートを切るための有効な技法なのではないかと気づきました。ここでは最近そういった状況を打破する為に試した事をTIPSとしてまとめてみます。TDDがどういう物かは知っているというのが前提です。TDDを知らない人はTDD BootCampとか参加してみるといいかもしれません。もしかしたら今回のTIPSはTDD的には邪道かもしれません。TDDについて詳しい人の突っ込みお待ちしております。 今回の記事に直結するTDD原則のおさらい1. TDDはクォリティテストの為の技法じゃないです。製品のクォリティを維持する為のテスト

  • 例えば, Singleton を避ける | Born Too Late

    この記事は TDD Advent Calendar jp: 2011 の 14 日目です. 前日: TDD戦略 -TDDを導入し進化させる方法- #TDDAdventJP (@kyon_mm さん) 翌日: TDDに対して思っていること (@gab_km さん) この記事の概要 TDD で開発することで設計上の問題点に気づきやすくなる Singleton はグローバル変数である Singleton の使用はできる限り避けるべきである テスタビリティを意識しよう TDD では, 原則としてユニットテストを書いてから実際のコードを実装します. なので, 自然と「テストのしやすさ (テスタビリティ)」を意識して実装することになります. そして, TDD においては一般的に, テスタビリティを意識することで, 設計が改善されるとされています. オブジェクト指向には難しい概念がたくさん登場します.

  • 4つのルールと5つのコツでチラ見するテスト駆動開発入門 ~本を読んでTDDを実践したまとめ | 48JIGEN *Reloaded*

    4つのルールと5つのコツでチラ見するテスト駆動開発入門 ~を読んでTDDを実践したまとめ 2011/06/04 巷で噂のケント・ベックの「テスト駆動開発入門」読みました。めっっっちゃ良かったので、今日はその内容と実践してみた事なんかをずらずらずらずら書いていきます。独断と偏見に基づいてまとめていくよ。 めっっっちゃ良いなのでTDDに興味のある人は全員買うが吉です。写経して手を動かしながら学べるこの内容で3150円は破格。 ※言い回しが複雑な事があって、人によってはケントベックの文章がちょっと読みづらく感じるかもしれませんが、内容は確かです。 テストコードの書き方のルール4つ 「テスト駆動開発入門」を読んで一番響いた&実際に役に立ったテストコードの書き方たちを、4つのルールにまとめてみました。 1. 無駄なテストコードは書かない 何をテストすべきかについて、ケントベックは以下の4つをテス

    4つのルールと5つのコツでチラ見するテスト駆動開発入門 ~本を読んでTDDを実践したまとめ | 48JIGEN *Reloaded*
  • Selenium2.x で Ajax なWebアプリケーションをテストしよう 〜 Facebook の自動あいさつ返答機能を実装 〜 - Yamashiro0217の日記

    この記事では、Facebook のあいさつ(Poke)機能への返信を題材に、沢山たまるとウザい嬉しいあいさつを自動で返すスクリプトを書くことで、Selenium2.x の使い方、特に Ajax アプリをテストする方法について学べるようにする。 Ajax がからんだWebアプリケーションのエンドツーエンドの最近のテスト手法についてのまとめにもなっていると思う。 最初の3節ぐらいは「Seleniumとは〜」とか「テストってのはさー」とかゴタクをごたごた書いているので、Seleniumの実際のコード見た方がはえぇよ。って言う人はコードが出てくるまで記事を飛ばすと良い。 こんな記事を気合入れて書いて公開した当日に…FacebookのUIが変わって…作ってたスクリプト動かなくなってしまった…orz。俺が何かやったり買うと事件が起きるんや・・「なにか買うとその直後に安くなったり、新機種がでたりするとい

    Selenium2.x で Ajax なWebアプリケーションをテストしよう 〜 Facebook の自動あいさつ返答機能を実装 〜 - Yamashiro0217の日記
  • Jenkins CIでRSpecを自動実行する - ぱろっと・すたじお

    今回は「Jenkins CI」のお話 http://jenkins-ci.org/ きっかけはGunma.web #4でのLTでした Gunma.web #4 (on 2011/02/12) まとめ - ぱろっと・すたじお Jenkins CI(旧Hudson)の話を最初に聞いたのはデブサミ2009?だったと思いますが、 気で使おうと思ったのはこのLTを聞いて、いくつか質問したときです (RakeやGitでも使える、的な話) あと、WEB+DB PRESSでも(テスト関連ツールとして)紹介されていました WEB+DB PRESS Vol.61 作者: 西岡祐弥,濱田章吾,浦嶌啓太,高橋健一,柴田博志,井上誠一郎,大谷弘喜,荻野淳也,原悠,増井俊之,横山彰子,浜階生,ミック,uupaa,塙与志夫,はまちや2,大沢和宏,中島聡,矢野りん,中島拓,角田直行,WEB+DB PRESS編集部出版

    Jenkins CIでRSpecを自動実行する - ぱろっと・すたじお
  • PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記

    はじめに この資料は「PHPでTDD&CIワークショップ」 http://atnd.org/events/16626 で @yamashiro が発表するための資料だよ。 ワークショップ参加者じゃなくても記事読むだけで完結するようには書いてあるよ。 概要としては、Jenkins を使って PHP のウンコレガシーなコードをいかに綺麗にして行くかということを説明する。 自画自賛だけど PHPMD とか PHPCPD の使い方の説明の資料としてもそこそこイケてる資料になってると思いました。まる。 この記事に書かれてることは、割とTemplate for Jenkins Jobs for PHP Projectsとかぶってるけど、プラグインを絞ってあるのと、一個一個のプラグインについて解説、また実際にエラーが起きたときにどうすればいいのか書くよ。 Java と Jenkins のインストールとJ

    PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記
  • PHPカンファレンス2011 PHPとテストとCIと私~愛するあなたのため~

    The document discusses building a better team through agile practices. It lists websites for learning more about agile teams and provides a visualization of team members arranged in a diamond shape, with one member at the top and bottom and multiple members on the sides, to represent collaborating effectively. It encourages visiting listed websites to learn how agile practices can strengthen team

    PHPカンファレンス2011 PHPとテストとCIと私~愛するあなたのため~
  • PHPもやらなきゃJenkins « BEAR Blog

    改名なのかフォークなのか、とにかくHudsonプロジェクトはHudsonとJenkinsに分かれました。(開発者はフォークではなく改名と主張していて、この辺りの話はinfoQが詳しいようです。http://www.infoq.com/jp/hudson ) ※前回の記事で紹介したphp-hudson-template はphp-jenkins-template に変わっています。 またPHPUnitで有名なSebastian氏がbuld.xmlを自動で作成してくれるPPW (PHP Project Wizard )というツールをリリースして、面倒だったプロジェクトの設定ファイルbuld.xmlの作成がとても簡単になりました。 Sebastian氏はhttp://jenkins-php.org/というPHPでJenkinsを使うためのガイドをするサイトも用意しています。以下はその補足です。

  • Selenium 0.7利用手順書(前編)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Selenium 0.7利用手順書(前編)
  • PHPUnit と Selenium RCで機能テストをやってみる : エクスギア Blog

    PHPのテストライブラリとしては一番有名どころのPHPUnitと実際のブラウザをJavaScriptを使って画面遷移をテストすることができるSelenium RCを使って実際に結合テストを行ってみたので今回紹介したいと思います。 PHPUnit PHPUnitPHPの一番有名なテストライブラリです。テストケースを用意することで仕様変更にも強いアプリケーション開発が可能になります。 さまざまなことができるPHPUnitですが、PHPUnitだけでは画面遷移のような機能テストは難しいものです。 なぜなら、PHPだけで画面遷移を確認するためにはブラウザの動きをシミュレーションしたライブラリを使ったりしてテストする方法になってしまうからです。 たとえばsymfony1系ではsfTestBrowserというライブラリが用意されていてこのライブラリを利用することでテストが行えるようになっていますが、

  • [Think IT] 第7回:Selenium IDEの活用とSelenium利用時の注意点 (1/3)

    前回までにHTMLJavaでSeleniumのテストケースを作成してきました。SeleniumでWebブラウザの操作や検証ができるというメリットや、その一方でテストケースを作成するのは面倒そうだと実感された方もいるかもしれません。 そんな手間のかかるテストケース作成を支援してくれるツールが今回紹介する「Selenium IDE」です。今回はSelenium IDEを使ってテストケースを作成してみましょう。 Selenium IDEはFirefoxのエクステンションですので、あらかじめFirefoxをインストールしておいてください。それではSelenium IDEを以下の手順でインストールします。 まず最初にFirefoxを起動し、以下のURLを開きます。 次に最新版の「Firefox extension」のリンクをクリックします。初回のインストール時はFirefox上に「あなたのコンピュ

  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • SIerにはコード記述の自動化からビルド・デリバリの自動化へのトレンドの変化を理解してほしい - 達人プログラマーを目指して

    ちょっと前にTogetterで作成したまとめに対して大きな反響をいただきました。 SIerは自動化する対象が違っているのでは? - Togetter これは、私が Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) 作者: Jez Humble,David Farley出版社/メーカー: Addison-Wesley Professional発売日: 2010/07/27メディア: ハードカバー購入: 3人 クリック: 141回この商品を含むブログ (23件) を見るを読み始めて、ふとつぶやいた をきっかけに始まったTL上での議論をまとめたものです。このは、7月に行わ

    SIerにはコード記述の自動化からビルド・デリバリの自動化へのトレンドの変化を理解してほしい - 達人プログラマーを目指して
  • 第4回 モックオブジェクトを使ったテスト | gihyo.jp

    今回はダミーのオブジェクト(モックオブジェクト)を使ったテストについて見ていきます。 モックオブジェクトを使ったテスト さて、折角完成したCartクラスですが、商品コードの代わりに商品クラス(Itemインターフェースを実装したクラス)を導入し、さらに商品の合計代金も取得できるようにすることになりました。ありがちな話ですね。具体的には、次のようなItemインターフェースが提供されています。商品コードのほかに、商品名や価格が取得可能なようです。 <?php interface Item { public function getName(); public function getCode(); public function getPrice(); } しかし、肝心の実装クラス(ItemImplクラス)自身はまだ作成されていません。こういった場合、どうすればいいでしょうか?ItemImplク

    第4回 モックオブジェクトを使ったテスト | gihyo.jp