タグ

testingに関するYaSuYuKiのブックマーク (96)

  • 分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ

    技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの

    分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ
    YaSuYuKi
    YaSuYuKi 2014/03/25
    理解のために他の言語に移植してみるのは非常に面白そうだ
  • テスト考2014 - Hidden in Plain Sight

    年々、ウェブアプリを開発するときにテストを書こうという機運が強くなっていると感じる。 これは、開発パラダイムの成熟を意味することであり、基的に良いことだと思っている。 しかし同時に「テスト原理主義」とでもいうような極端な考え方もでてきていて、開発スタイルをめぐって摩擦が起こっている。 そして、この議論は「テストは、ないよりあったほうが良いよね」という、微視的には誰も反論できないロジックに押し通されがちで、「地獄への道は善意で舗装されている」の典型的な現象に見えて仕方がない。 テストを書かない、というと背景にどんな深い考えがあっても素人くさく聞こえ、逆にテストを書くというだけで良いプログラマーに見える、という非対称な化粧効果がある。ソフトウェア・コンサルティング会社がテスト好きなのは決して偶然ではない。 ソフトウェアというのは、結局のところ、動いてナンボ、使われてナンボである。 期待するも

    テスト考2014 - Hidden in Plain Sight
    YaSuYuKi
    YaSuYuKi 2014/01/04
    コメントとテストの有用性を同列に扱っているが全然違う。コメントを書かないと行けない場合は何か深刻な問題があるが、テストは本質的に用途が違うから同列にはなりえない
  • 不具合にテストを書いて立ち向かう - t-wadaのブログ

    テストを行っている品質保証チームや、実際にシステムを使っているお客様から不具合が報告されたとき、あなたはどう思いますか? 悲しんだり、恥ずかしいと思い、不具合修正にすぐに着手したいと気がはやるのが人情というものです。しかし、焦っているときに行う作業はしばしば視野が狭く、一つの不具合修正が三つの新たな不具合を生んでしまうようなことになりがちです。 テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。私はテスト駆動開発を数年間実践してきた中で、心がけているひとつの「掟」があります。それは「不具合の修正時

    不具合にテストを書いて立ち向かう - t-wadaのブログ
    YaSuYuKi
    YaSuYuKi 2013/12/28
    直してから、おもむろにロールバックして再現テストを書いてしまうことがよくある。反省
  • イマドキのIDE事情(167) 手軽に導入!JS Test DriverでJavaScriptをテストしてみよう

    JS Test Driverとは? JS Test DriverはオープンソースのJavaSscript用テスティングフレームワークで、Googleによって開発されたものだ。ブラウザを制御してテストを実行するサーバ(複数のブラウザを制御可能)と、そのサーバと通信するクライアントからなり、コマンドラインから実行できるためCIとも組み合わせることが可能だ。 また、コマンドラインから実行するだけでなく、IDE用のプラグインも用意されている。今回はこのJsTestDriverについて見ていきたい。 JS Test DriverでJavaScriptをテストしてみる はじめに基的なコマンドラインでの利用方法から見ていこう。まずダウンロードページからJsTestDriver-x.x.x.jar(x.x.xの部分はバージョンによって異なる。稿執筆時点では1.3.5)をダウンロードする。ここではテスト

    イマドキのIDE事情(167) 手軽に導入!JS Test DriverでJavaScriptをテストしてみよう
  • tSQLt - Database Unit Testing for SQL Server

    Unit testing has been a common and accepted practice in application development for a long time. By testing certain functions and areas – or units – of code, it verifies those functions work as expected, and improves the quality of code. tSQLt brings the same advantages to SQL Server database development, and is compatible with all editions of SQL Server from the 2005 Service Pack 2 edition onward

    tSQLt - Database Unit Testing for SQL Server
  • Selenium VBA - 自動テストがExcelパワーで一気に便利に! MOONGIFT

    あれ、意外と便利なんじゃないか、このソフトウェア? Seleniumと言えばブラウザを擬似的に操作してテストを自動化したり、ちょっとしたスクレイピング系の操作をするのに便利なソフトウェアです。Google Chrome/Firefox/IE/PhantomJSなどに対応しており、マルチブラウザでテストができます。 そんなSeleniumはRubyPythonJava、C#といった言語向けにテストコードを出力できるのですが、さらにVBAでも使えるようにしたソフトウェアがSelenium VBAです。 とんでもかなぁと思ったのですが、いやいやそんなことはなさそうです。 インストールすると、フォーマットやエクスポートにVBA/VBSが追加されます。 インストール後は普通にSelenium IDEを動かして、そのコードを取得するだけです。 Public Sub test() Dim selen

    Selenium VBA - 自動テストがExcelパワーで一気に便利に! MOONGIFT
    YaSuYuKi
    YaSuYuKi 2013/12/11
    assertに使用するデータを表の形で持つのが簡単なのがポイントか
  • Cobolでもやりたいテスト自動化

    4. テストの何が メンドくさいのか • テストドライバ書くのとか • テストデータ作るのとか • テスト結果が妥当かどうか一々見て確認 しなきゃならないとか • …を正しく動くようになるまでやるとか

    Cobolでもやりたいテスト自動化
    YaSuYuKi
    YaSuYuKi 2013/12/10
    COBOL自体の仕様にフィードバックされるほどの影響を与えるほど使われるようになるか?
  • プログラムに証明が付く日 | RANDMAX

    この記事は「Theorem Prover Advent Calendar 2013」6日目の記事です。 http://qiita.com/advent-calendar/2013/theorem_prover 神田「野らぼー」にて、地下の薄暗い店内で… 「そう言えばこないだ隣で起こってたポインタオーバーラン、対応大変そうだったですけどちゃんと家に帰れてたんでしょうかね、新婚なのに…」 「ヌルポとかポインタオーバーランとか、どうして無くならないんだろうね。その時はみんな手を抜いてるつもりなんて毛頭なくて、一生懸命考えて大丈夫だと思ってるはずなんだけどね。レビューもして、それでも起こった後でみんなでソース見てみると、なんで気づかなかったんだよ!ってことになる。」 「人間って、そういうの苦手なんでしょうねきっと。ほら、『何かほかにありませんか』って聞かれても出てこないじゃないですか。静的な解析っ

    プログラムに証明が付く日 | RANDMAX
    YaSuYuKi
    YaSuYuKi 2013/12/06
    関数が想定している入力であることが証明されているものしか関数の入力に取ることができない、か。確かにミスは減らせそうだ
  • Webアプリケーションのテストを書くときに考えていること - 車輪を再発明 / koba04の日記

    テストを書く目的 自分の書いたコードが意図した通りに動いてるか確認するために書くのですが、自分が楽をするためと他の人のために書いてます。 自分が楽するため Webアプリの場合、実装した機能がちゃんと動作するかを確認するために何度もブラウザポチポチしてというのは時間がかかります。なのでその回数をなるべく減らすためにテストとして書けるところはなるべくテストで確認して、ブラウザポチポチする回数を必要最低限にしたいと思っています。 ブラウザポチポチするのも立派なテストだと思っています。再現性のない。 他の人のため テストがないと他の人がその機能に関連する機能を変更しようとした時に変更の影響がないのか確認することが出来ず、その機能に対するテストを手動で行わせてしまうことになってしまいます。 テスト書く時間がない問題 テストの話をすると書く時間がないと言われたりしますが、既存の開発の流れにテスト書くこ

    Webアプリケーションのテストを書くときに考えていること - 車輪を再発明 / koba04の日記
  • これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE

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

    これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE
    YaSuYuKi
    YaSuYuKi 2013/11/27
    時刻で今一番苦しまされているのは、SQL文の中に現在時刻を取得する関数が埋め込まれているものに対するテスト。記事を読んでいて、SQL文内の関数を置き換えるという方法を思いついたのであとで試す
  • JUnitのカスタムアサーションを簡単に実装できるcmtest | DevelopersIO

    渡辺です。 先日、「JUnitのオブジェクト等価比較を怠けたい!」というスライドが公開されました。「オブジェクトのカスタムアサーションをどのように実現するか」という問題は、ユニットテストを実践していくとよく発生します。この問題に関して、先日のJJUG CCCでも相談されました。また、簡単に書ける仕組みは共有した方が良いのですよね。そんなわけで、cmtestというライブラリにまとめましたので紹介したいと思います。 Objectクラスのequalsメソッド Javaではオブジェクト同士の比較にはObjectクラスのequalsメソッドを利用することが定石です。これはユニットテストのアサーションでも同様です。テストした結果に作られる実測値と、テストの期待値を比較する時、通常はequalsメソッドを利用します。equalsメソッドを使った比較を行うのであれば、定番のassertThat構文を利用で

    JUnitのカスタムアサーションを簡単に実装できるcmtest | DevelopersIO
  • JavaScriptフロントエンド開発の昨今

    フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発

    JavaScriptフロントエンド開発の昨今
    YaSuYuKi
    YaSuYuKi 2013/10/11
    名詞を見てそういうものがあるということくらいは知っている程度の状態なので、必須度合いの高いところから順に調べていかなくては
  • いまだにユニットテストって受け入れられないんだろうな - 個人的なまとめ

    色んな所で「テスト(ここではユニットテスト)を書かないのは小学生までだよねー」とか、もっと汚い言葉で言われたりするけど、いまだにうちのチームでは自分だけしか書かない現状が悩ましい。 Jenkinsさんが激おこになっても誰も何も反応しない。 もちろん、全部が書けるとも思ってないので、自分が不安なところとか、変更が多く入りそうなところとかを中心に書くようにしてる。一種の精神安定剤みたいなもん。 あるとき、一緒に働いてるエンジニアさん(ここではAさんとしておこう)に「ここ難しそうだから、テスト書いたほうがいいですよ」って話をしたら、「じゃぁ、工数かかっちゃいますね」って言われて結局書いてなかったな。 そうだよ。ユニットテスト書いたら工数かかるよ。それは純然たる事実。でも、再利用できないチェックシートを作ってやるよりもいいと思うんだけどね。しかもこの前に見せてもらったこのチェックシートも運用レベル

    いまだにユニットテストって受け入れられないんだろうな - 個人的なまとめ
    YaSuYuKi
    YaSuYuKi 2013/10/10
    「繰り返す」ことを普及させるほうが優先だろう。CIによる自動ビルド、静的なチェックを行うのを当たり前にすることと、それを評価基準に組み込むことが必要だ。前者だけでは広がらない
  • ユニットテストにまつわる10の勘違い | DevelopersIO

    渡辺です。さる方面からテスト系のエントリーがまだか…と催促されたので、ユニットテストについて少し考えてみたいと思います。 最近、TwitterのTLをチェックしていると、JUnitを利用しているにも関わらず違和感のあるTweetや、原因をJUnitにして来解決すべき問題から目をそらしているようなTweetを多く見かけます。そこで、JUnitをによるユニットテストに関するありがちな勘違いをまとめてみました。 なお、JUnitの部分は、RSpecでもNUnitでも適当に置き換えて読んでも構いません。 1.JUnitを使うことが目的という勘違い JUnitを利用すること自体を目的にしたところで何も得る事はありません。 ありがちな話ですが、「納品物としてJUnitのテストコード(または実行結果)を求められている」ことが理由でJUnitを利用しているならば、それは足かせでしかない可能性があります。

    ユニットテストにまつわる10の勘違い | DevelopersIO
    YaSuYuKi
    YaSuYuKi 2013/09/17
    意味のあるテストを書けるようになるまでに、プロジェクト1つ分費やした記憶がある
  • テスタブルJavaScript

    最重要テーマは「テストに適したコードの作成と保守」。書は複数のアプローチで、テストに適したコードに迫ります。まず複雑さについて考察し、続いて複雑さや結合を軽減できるようなアーキテクチャを検討します。これを基盤として、機能レベルとアプリケーションレベルでのテストについての解説に進みます。カバレッジやデバッグについて十分な知識を得て、最後に自動化に関する解説で書は締めくくられます。最後まで読めば、テストに適したJavaScript質と実践について漏れのない理解を得られるでしょう。著者がYahoo!Googleで培ったテストや品質管理についてのノウハウをJavaScriptに適用したWeb開発者必携の一冊。 まえがき 1章 テストに適した JavaScript 1.1 今までの手法 1.1.1 アジャイル開発 1.1.2 テスト駆動型開発 1.1.3 ビヘイビア駆動型開発 1.1.4 

    テスタブルJavaScript
    YaSuYuKi
    YaSuYuKi 2013/09/09
    どう考えても読んで身につけておくべき本だ
  • Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる

    Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる:フレームワークで実践! JavaScriptテスト入門(5)(1/3 ページ) しっかりとJavaScriptをテストするために、今注目のJavaScript用のテストフレームワークをいくつか紹介し、その概要から実践的な使い方まで解説する連載。今回は、RubyでWebKitをヘッドレス化するフレームワーク、受け入れテストの記述が日語でできるツール、スタブやモック、スパイが使えるライブラリを組み合わせたテスト方法などを紹介。 Capybara-WebkitとCucumberとSinon.JSを利用したJavaScriptのテスト 連載の最終回となる今回は、これまでの連載のようなJavaScriptのロジックを単体テストするのではなく、Webブラウザ上の操作と、それによって動作

    Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる
  • Facebook製。操作を記録しスクリーンショットを撮る·Huxley MOONGIFT

    HuxleyはPython製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。 Webサービスのテストをしていて面倒なのがエラーが起きた時の再現性です。そしてエラーウィンドウを閉じてしまったらもう二度と同じ表示ができないかも知れません。そこで使ってみたいのがHuxleyです。 テストのサーバを立ち上げます。 最初の表示です。ボタンを押します。 ボタンの色が変わりました。 ボタンを押す前の表示がスクリーンショットとして残っています。 押した時の表示も残ります。 HuxleyはPython製のソフトウェアと、Seleniumを使ってテスト時のログとスクリーンショットを残してくれます。録画とプレイバックができるようになっています。Facebook製とあって、実用性高いソフトウェアなのではないでしょうか。 MOONGIFTはこう見る ユニットテストやCIといったツールによ

    Facebook製。操作を記録しスクリーンショットを撮る·Huxley MOONGIFT
  • TDD Anti-patterns catalogue at Stack Overflow を簡単に訳してみた - joker1007’s diary

    Stack OverflowのTDD Anti-patterns catalogueというスレがとても面白かったので訳してみた。 Stack Overflowのvoting機能でアンチパターンへの投票を行っている感じ。 上から投票の多い順になっている。 得票数はこの記事執筆時点(2013.7.9)のもの。 SQLアンチパターンっぽく、パターン名はそのまま片仮名にしてみた。 また、内容がかなり被っているとか、状況がかなりレアじゃないかと思うものは、一部省略しました。 (ブコメで訳間違ってるよ、って教えてもらったので、一部修正しました 2013.7.10) フリーライド (テストのただ乗り) 50pt 新しいテストケースを書くのではなく、他の機能のテストに新しいアサーションを追加して既存のテストケースに乗っかる。 セカンドクラス シティズン (二等市民) 47pt プロダクションコードのように

    TDD Anti-patterns catalogue at Stack Overflow を簡単に訳してみた - joker1007’s diary
  • テスト駆動開発による組み込みプログラミング

    書は、すぐれた組み込みソフトウェアを開発するための手法を豊富なサンプルコードとともに解説するです。前半では、制約のある組み込み環境でテスト駆動開発を行うための基礎知識とノウハウを懇切丁寧に紹介します。後半では、オブジェクト指向をベースに考え出されたSOLID原則やリファクタリングをC言語に適用し、アジャイルな設計を実現するための方法を示します。さらに、レガシーコードへのテストの追加方法についてもサンプルコードを使って詳細に解説します。日語版には平鍋健児氏による 「日語版まえがき」を収録。テスト駆動開発を学びたい、アジャイル開発について知りたい、レガシーコードと日々格闘している、そんなすべての組み込みCプログラマ必携の一冊です。 目次 書への賞賛の声 日語版まえがき ジャック・ガンセルによるまえがき ロバート・C・マーティンによるまえがき はじめに 1章 テスト駆動開発 1.1

    テスト駆動開発による組み込みプログラミング
    YaSuYuKi
    YaSuYuKi 2013/04/11
    私が使う機会は少なそうだが、テスト駆動は完全に当たり前になってきたということか
  • 『JUnit実践入門』写経・実践会 in 横浜 #1 (2012/12/01 15:00〜)

    東京/大阪/札幌での読書会に参加出来ず『ぐぬぬ』となったJavaやGroovy等で『JUnit実践入門』を通してテストに関するスキルを高めたいJUnitに関する知識を深めたい(1~10章)テスト手法や内容に興味関心がある、色々試してみたい(11章以降)

    『JUnit実践入門』写経・実践会 in 横浜 #1 (2012/12/01 15:00〜)
    YaSuYuKi
    YaSuYuKi 2012/11/25
    興味深いが、予定がかぶっているな