https://toruby.connpass.com/event/286678/ の発表資料です。
![テストデータを貯めて感じたこと](https://cdn-ak-scissors.b.st-hatena.com/image/square/304e33f9814168a7f37b76b2ffb8d49c10858e00/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fc117d0617fe7474ab815e98b5034ba18%2Fslide_0.jpg%3F26753479)
https://toruby.connpass.com/event/286678/ の発表資料です。
問題意識 reactのコンポーネントのテストは、react-addon-test-utilsをそのまま使うと面倒なことが多いです。具体的には、 コンポーネントを描画するためにdom環境が必要(jsdomやkarmaなどを使うのが一般的) 子コンポーネントも全て描画される 前者は、特にReact Nativeのテストをしたい時に困ります。dom環境ではないランタイムが必要でテストできないので。 後者は、単体テストの原則に反します。また、reduxのconnectなどを子コンポーネントに適用していた場合はテスト環境の構築も面倒になってきます。 そこで登場したのがenzymeです。 shallow renderingを用いることで、jsdomなどのランタイムなしに対象のコンポーネントのみをテストすることができます。 しかし、実際にコンポーネントをmountしているわけではないため、 実際に表示さ
技術部の松尾(@Kazu_cocoa)です。 クックパッドのモバイルアプリ開発では、どのようなテストを書き、どのようなタイミングで、どのようなテストを実施するか?に関してエンジニア各位が意識を合わせるためにテストサイズを定義し運用してきました。ここでは、そんなテストサイズに関して簡単ですがまとめておこうと思います。 テストサイズとは ソフトウェアテストに関わったことがある方なら テストレベル という言葉には出会ったことがあるかと思います。JSTQBでは、このテストレベルは"管理していくテストの活動のグループ"と定義しています*1。 そうでない方も、俗に言う単体テスト/統合テストなど聞いたことがあるかと思いますが、その区分がここで示しているテストレベルとなります。 一方、このテストレベルはV字型と言われる開発工程と合わせて世の中で広く使われているため、社内における共通認識を構築するにあたり個
はじめに みなさん、DRY原則はご存知でしょうか? DRY = Don't repeat yourselfの略で「繰り返しを避けること」という意味ですよね。 良いコードを書くための重要かつ基本的な原則なので、みなさんよくご存知だと思います。 ですが、DRY原則はテストコードを書く場合は必ずしも最善にはならない場合があります。 他の人が書いたテストコードを見ていると、テストコードにDRY原則を適用したために、かえって悪いコードになっているケースをときどき見かけます。 この記事ではなぜテストコードをDRYにすると良くないのか、ということを説明します。 追記:タイトルを変更しました @t_wada さんのコメントを受けて、タイトルを見直しました。 「テストコードはDRYを捨ててベタ書きする」 => 「テストコードの期待値はDRYを捨ててベタ書きする」 【注意】この記事は画一的なテストコードの書き
技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運用しています。この記事では、その運用の知見を紹介できればと思います。 Pact Pact は Consumer-Driven Contract testing (CDC testing) を実現するためのツールです。"Consumer"、"Provider" という見慣れない単語が出てきますが、この記事ではだいたい「Consumer = Web API クライアント」、「Provider = Web API サーバー」と対応ができます。この記事では具体的な Pact の利用例を通じて CDC testing がどういうものなのかについても
Fixed current time. 時間に依存したAPIの振る舞いをテストする場合, 現在時刻を固定すればテストをRepeatableに保てます. 現在時刻を固定する次の2通りの方法を実装しました. java.timeを使った方法(Java8以降) java.utilを使った方法(Java7以前) テストの際に現在時刻を固定化する下準備として, 現在時刻を返すAPIをラップしたメソッドを用意します. public static long now() { return <現在時刻を返すAPI> } テストの際には固定時刻を返すように振る舞いを変更してやれば, このAPIに依存しているモジュールからするとあたかも現在時刻が固定化されているように見えます. 目的達成のためには, now()メソッドが常にダミーのepoch timeを返すように振る舞いを差し替える仕組みを用意する必要があります
システムテスト自動化カンファレンス2013(http://kokucheese.com/event/index/118294/)にて発表した内容です。UI変更に強い自動ブラウザテストの作り方についての資料です。
技術部の taiki45 です。 現在のクックパッドでは、cookpad.com 内のデータを利用するようなプロダクトでも、cookpad.com を提供しているアプリケーション(本体アプリケーション)とは別に新規のアプリケーションとして設計・実装しています。また、すでに本体アプリケーションの一部として実装されているプロダクトについても、トレードオフを考慮しながら場合によっては、本体アプリケーションから独立した別のアプリケーションとして設計・実装することが増えてきています。これらの本体アプリケーションや、新規にあるいは本体アプリケーションから独立させて設計・実装したアプリケーションのことを「サービス」と呼んでいます。また、この本体アプリケーションから独立させることを「サービス分割」と呼んでいます。 制御できないほどの巨大な複雑なまとまりを制御するために、その巨大なまとまりと単純なまとまりに
本エントリーは、Software Test & Quality Advent Calendar 2011の10日目です。 http://atnd.org/events/22833 前の9日目は @m_seko さんの 「負荷テスト対象のWebアプリがこういう非機能要件(+α)を備えていたらいいのにという願望」です。 http://d.hatena.ne.jp/sekom/20111209 普段、品質やテストなどには興味なさそう(?)にしている私ですが、 たまには、エンジニア視点から、テストについて語ってみましょう。 xUnit成熟度モデルって? xUnit成熟度モデルとは、 組織がxUnitをより適切に利用できるようになることを目的として 遵守するべき指針を体系化したものである。 あわせて読みたい : 能力成熟度モデル統合 (CMMI) - Wikipedia 正味の話で言うと、僕がJUn
スクラムエンジニアリンググループの片渕です。 先日、AndroidオールスターズというイベントでAndroidのテストに関してお話させて頂きました。 当日のレポートは以下のサイトに詳しくまとまっています。 [イベントレポート] Android オールスターズ #dotsandroid | Developers.IO Androidオールスターズの資料と関連ツイートのまとめ 話した事 以下の様な構成で話をしました。 なぜテストを書く必要があるのか どこをどうテストするのか 各テストフェーズで利用するライブラリとそのTips スライドをUPしていますので、以下はスライドを補完する内容となります。 なぜテストを書くのか テストを書くのは行儀の良いエンジニアであれば当たり前、と言ってしまえばそれまでですが、組織ではアクションに対するゴールの共通認識がないと個人に依存する部分が増え最終的に破綻する事
みなさんはこんなふうにRailsアプリケーションを作ったことはありませんか?たとえば、ブラウザをポチポチとクリックするだけでテストを終わらせて「たぶん大丈夫」と思い込んだり、「とにかく全部うまくいきますように」とただ祈るだけだったり……。 心配しないでください。それは誰もが通る道です。アプリケーションのテストやテスト駆動開発はRails開発における重要なトピックですが、巷の参考書を見ると適当な説明で済ませているものも多かったりします。本書「Everyday Rails - RSpecによるRailsテスト入門」では、どのようにして私がそうしたテクニックを身につけたのか、そして、どのようにしてコードの信頼性を上げ、ブラウザ上で延々とテストしなくて済むようにしたきたのかをみなさんに説明します。 対応バージョンについて2024年1月のアップデートで、本書のコンテンツをRails 7.1とRSpe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く