並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 459件

新着順 人気順

UnitTestの検索結果361 - 400 件 / 459件

  • JestのTips集10選。サーバーサイドでNode.jsのJestを書いたことない人向け

    対象 業務レベルでサーバーサイドでJestを書いたことはないけれど、新プロジェクトでは書くことになったみたいな方を想定して記述しています。 Jestについては中々ベストプラクティスが集まりにくいので、経験的にこう書くと「きれいに」・「早く」・「正確に」書けるよというTipsを集めてみました。もし、よろしければお読みください。 前提 TypeScript Node.js Jest DBアクセスありの状態を想定しています 1. it文内では、必ず1回は、expectをつかって検証をする JestのPRをレビューしてるとたまに見受けるのですが、expectを使ってないケースがあります。 // NG it('userを正常に、作成できること', async() => { await createUser({ name: 'Mike' }); }); // OK it('pdfが正常に削除できること

      JestのTips集10選。サーバーサイドでNode.jsのJestを書いたことない人向け
    • 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のアンチパターンとベストプラクティス
      • 悩んでるポイントはみんな同じ!?「Rubyistのためのテストコード相談会」の質疑応答まとめ - give IT a try

        はじめに 先週の土曜日(2015年5月16日)に西脇.rb&神戸.rbで「Rubyistのためのテストコード相談会 ~テストの書き方に悩んでいませんか?~」という勉強会を開催しました。 この勉強会は「テストコードに関する疑問や悩みをみんなで持ち寄り、みんなで解決すること」を目的にした勉強会です。 勉強会中はいろいろと興味深い議論が出たので、今回のエントリではその内容を簡単にまとめてみます。 勉強会で挙がった質疑応答 よく使うフレームワークは? RSpecが大多数、Minitestが若干名。 gemを開発するときはMinitest、RailsはRSpec、というように開発内容によってフレームワークを使い分ける、という人もいた。 Minitestってどうなの? 導入が簡単。assertメソッドだけ知っていればなんとかなる。 Railsにも対応している。Capybaraも使える。 RSpecのs

          悩んでるポイントはみんな同じ!?「Rubyistのためのテストコード相談会」の質疑応答まとめ - give IT a try
        • JUnit のセカイ #JJUG - やさしいデスマーチ

          このエントリーは、@cero-tさんのエントリーの次で、Java Advent Calendar 2011の6番目のエントリーです。自分自身の今年のメインテーマがTDD(テスト駆動開発)と言う事もあり、関連エントリーとしてJUnitについて書きたいかと思います。今更JUnit?と思われた方も普段からJUnitを使っていあなたも気軽にお読みください。尚、色々な話題を駆け足で紹介するので、どれも簡単な紹介程度になってしまいますが、ご了承願います。 JUnit4 スタイル JUnitがアノテーションに対応し結構な月日が流れましたが、古いコーディング規約のままでテストコードを書いていませんか?JUnit4では、アノテーションとアサーションを使ったテストコードを書くことが基本スタイルです。かつては、TestCaseのサブクラスを作り、testではじまるメソッドを定義していましたが、今は Testアノ

            JUnit のセカイ #JJUG - やさしいデスマーチ
          • 開発イテレーション偏重 - 兼雑記

            開発イテレーションを早くすれば、かなりの問題が勝手に解決される、と信じています。なんか最近、他の要素を軽視しすぎていたり、特にイテレーション速度に影響しなさそうなことすらしている気がしていて、信仰とかのレベルかもしれない、という気がしてきたので、ちょっと書いてみようかなと。主に C++ の話です。 仕事とかしてると良い判断力が求められたりしますが、判断というのは結構難しいですよね。アプローチ A と B で悩んだ時に、手が速ければ両方できたりします。開発イテレーションを無限に速くすると、必要とされる判断力はゼロに漸近していきます。やったね。 2手で変更の正当性を高速に確認できるようにする make (かその他のビルドコマンド)てやったらビルドができて、 make check (かその他のテストスクリプト)てやったら遅くないテストが全部走る、という体勢が好きです。試すためにはあっちのディレク

              開発イテレーション偏重 - 兼雑記
            • Google App Engineでテスト駆動開発を行うための3つのTips | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

              Google App Engineの開発ではPythonを使います。GAEを使ったWebアプリの開発でテスト駆動開発を行う際にも,Python的なユニットテストの文脈を活用できます。 ただし,GAEでユニットテストを行うためにはいくつかのツールやトリックが必要です。ここでは,そのテクニックを簡単に紹介します。 その1 : NoseGAEを使う Pythonのテスト用ツールにNoseがあります。このツールは,複数のディレクトリを渡り歩いて,複数のテストコードを一気に実行してくれる便利なツールです。 NoseのプラグインNoseGAEをインストールすることで,GAEアプリのテストを楽に行うことができます。「nose --with-gae」というようにオプション指定をすることでNoseGAEを利用できます。NoseGAEでは,テストコード上でGAEのモジュールやパッケージをインポートするために必

              • Developers Summit 2014 で「サーバプロビジョニングのこれまでとこれから」という発表を行いました - Gosuke Miyashita

                内容自体は基本的に、第5弾 週末ランサーズ にお邪魔した時に お話した資料 と同じなんですが、この時よりも時間が少し長かったので、多少内容を追加しているのと、当時自分の中でうまく整理できてなかったけど、今は多少クリアになった部分もあって、そういった内容を盛り込んだりしてみました。 Togetter まとめ NAMIKAWA さんによるまとめ 一点お詫びしたいのは、登壇者に質問ができる Ask the Speaker というコーナーがあって、セッションが終わった後はそちらに移動、という段取りだったのですが、裏でやっていた OSS コミッタ大集合 の方でも登壇するために終了後すぐに E 会場に向かったため、Ask the Speaker コーナーに行けませんでした。もし質問するためにいらしてくださった方がいましたら、本当に申し訳ないです。 今回デブサミに登壇させて頂いた経緯については、会場で

                • 私にとってのテスト

                  at Testing Casual Talks #1 (2013/07/24) http://atnd.org/events/40914Read less

                    私にとってのテスト
                  • PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト

                    PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト:フレームワークで実践! JavaScriptテスト入門(2)(1/3 ページ) しっかりとJavaScriptをテストするために、今注目のJavaScript用のテストフレームワークをいくつか紹介し、その概要から実践的な使い方まで解説する連載 前回は、JavaScriptテストの基本、今回からフレーワムークを紹介 前回の「JavaScriptテストの基礎知識と使えるフレームワーク6選」では、JavaScriptのテストを取り巻く環境や、JavaScriptのテストに使用できるフレームワークの紹介を行いました。今回からは、前回の記事で紹介されたフレームワークを使用して実際にJavaScriptのテスト環境を構築し、テストを行うまでの流れを解説します。 今回は「PhantomJS」と「Jasmine」を取り上げま

                      PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト
                    • Big Sky :: Go に Fuzz testing が入った。

                      みなさん Fuzz testing ってご存じでしょうか。 人間が作る物は必ずといっていいほどバグが存在します。そしてそのコードをテストする人間も必ずバグを見逃します。 想定していなかった境界値テスト等、人間には先入観という物があり、それが邪魔をして簡単にバグを見逃します。昨今、この様な誰も気付かなかったバグの隙間を突く様な脆弱性が沢山見つかっています。 物によっては重大インシデントに発展する物まであります。 こういった人間では想定できない様なバグを見付けてくれるのが Fuzz testing です。Fuzz testing を実施する事で、ソフトウェアは頑丈になり安全にもなりえます。 本日、Go の master ブランチに Fuzz testing の機能が入りました。 [dev.fuzz] Merge remote-tracking branch 'origin/dev.fuzz'

                        Big Sky :: Go に Fuzz testing が入った。
                      • JUnitのカスタムアサーションを簡単に実装できるcmtest | DevelopersIO

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

                          JUnitのカスタムアサーションを簡単に実装できるcmtest | DevelopersIO
                        • モダンなJSライブラリのディレクトリ構成まとめ - CODESCRIBBLE

                          JavaScriptのプロジェクトを新しく作るにあたってディレクトリ構成をどうするか悩んだので、オープンソースのライブラリなどを参考にすることに。ということで、モダンなJavaScriptライブラリ・フレームワークのディレクトリ構成をまとめてみました。 モダンと言ってはいますが、全然モダンじゃないライブラリも混ざってるかもしれないです。 jQuery jquery ├── build │   └── lib ├── speed ├── src │   ├── ajax │   └── sizzle └── test ├── data │   ├── offset │   ├── selector │   └── support ├── qunit └── unit jQuery Mobile jquery-mobile ├── build ├── css │   ├── structure

                            モダンなJSライブラリのディレクトリ構成まとめ - CODESCRIBBLE
                          • Testing in Swift

                            About the content This content has been published here with the express permission of the author. Software tests are great for verifying software behavior and improving the quality of your code. In this talk, we learn from Jeff Hui about tooling, techniques, and writing tested code with the Quick testing framework. He also talked about generative testing, a prevalent functional programming approac

                              Testing in Swift
                            • メルカリiOSのUIテスト自動化をまるっとご紹介します! | メルカリエンジニアリング

                              こんにちは、メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)の 根本 征 です。 私は普段、テスト自動化・CI / CD改善・その他社内の生産性を上げるための自動化を行っています。 今回はiOSのUIテスト自動化について、最近の改善をまとめてご紹介したいと思います。 ざっくり言うと HTMLレポートに出力し、失敗原因を見やすくするようにしました リトライ実行するためのfastlaneプラグインを作りました テスト実行環境をJenkinsからCircleCIに移行しました Slack Commandを使って、簡単に実行できるようにしました これまでのiOSのUIテスト自動化 AQA(旧QA-SET)では去年から、JP版アプリ(iOS / Android)のUIテスト自動化に取り組んでいます。 去年のMercari Tech Conf 2017では、

                                メルカリiOSのUIテスト自動化をまるっとご紹介します! | メルカリエンジニアリング
                              • クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(前篇:戦略) - CrowdWorks Engineer Blog

                                こんにちは!年初からクラウドワークス開発に新たにジョインした所と申します。 先日、クラウドワークスではテスト駆動開発とRESTFulアーキテクチャのエバンジェリストとして有名な和田卓人さんをお招きして社内勉強会を開催いたしました。 和田さんは、数多くの会社にてレガシーコード改善のコンサルティングの経験をお持ちで、書籍も多数執筆されており界隈でも有名な方です。 また、弊社CTO大場の旧知の友人でもあります。 クラウドワークスのサービスは立ち上げから現在に至るまでRuby on Railsで開発を行っており、サービス拡大に伴いアプリケーションの規模も大きくなっています。 比較的テストが書きやすいフレームワークではあるものの、ビジネスの急激な成長を支えるために速度を優先した機能開発が行われていた時期もあり、レガシーコードが残っている部分があります。 将来に向けて技術的負債の返済をしていくことは、

                                  クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(前篇:戦略) - CrowdWorks Engineer Blog
                                • ESDocというJavaScript向けのAPIドキュメントツールを作りました - maru source

                                  こんにちは丸山@h13i32maruです。 昨日、ESDocというツールをリリースしました。GW中になんとかリリースできて一息ついているところです。今回はそのESDocというツールについて紹介します。あと最後に雑談と宣伝があります。 ESDocとは? ESDocとはJavaScript(ES6)向けのAPIドキュメントツールです。JavaScript界隈ではJSDocがデファクトスタンダードであり、ESDocもJSDocに触発されて作りました。なのでタグの使い方はなるべく互換性を持たせています。とはいえ不要だなと思うタグもかなりあったのでそれらは実装していません。 ESDocの特徴(主にJSDocに比べて)としてはこんな感じです。 詳細なドキュメントを生成する ドキュメントカバレッジを計測する テストコードとドキュメントを関連付ける ES6のclass, import/exportを使った

                                    ESDocというJavaScript向けのAPIドキュメントツールを作りました - maru source
                                  • 関数の話 - ( ꒪⌓꒪) ゆるよろ日記

                                    こんにちは、しいたけです。 某所で関数型プログラミングとはリスト処理のことなのか、と燃えているのを見て、関数型プログラミングとは何か、ということを自分なりの考えを述べたいと思いました。春なので。 この資料は2年ほど前にSupershipの社内勉強会で使ったものですが、この中で関数とオブジェクトを対比している箇所があります。 関数もオブジェクトも、変数や関数の引数戻り値として扱える第1級の値であり、状態を持ち(メンバー変数/クロージャ)、組み合わせが可能(delegate, composition/関数合成)、である、と。 ではオブジェクト指向と関数型プログラミングで何が決定的に異なるかというと、設計・実装のアプローチに何を中心に据えるか、ということだと思います。 オブジェクト指向では、クラス・オブジェクトをモデリングし、各種のオブジェクト指向的デザインパターンを用いてオブジェクト同士を組み

                                      関数の話 - ( ꒪⌓꒪) ゆるよろ日記
                                    • プログラマ35歳定年説は覆せる | 米マイクロソフトの開発者となった河野通宗の働き方 | CAREER HACK

                                      『プログラマ35歳定年説』を覆した実例に迫る 働き方が多様化した現代において、『 プログラマ35歳定年説 』は過去の話と一蹴することはできる。しかし依然として、通説が健在しているケースもあるだろう。 そもそも『35歳定年説』には、「体力が落ちて、激務についていけなくなる」「記憶力が落ちて、新技術の習得についていけなくなる」などの理由を推す声が多い。しかし言語自体の利便性向上やフレームワークの進化など、過去と比べコードを書く量は減らすことができるようになった。体力勝負ではなく、知力と経験で通説を吹き飛ばせるという声もある。 一部では過去の話であり、また一部では根強く残る、都市伝説のようなものか。 今回、海外で開発者として働き続ける人物に話を伺ってみた。マイクロソフト コーポレーション(以下「 米マイクロソフト 」)で、 Windows Azure Web Sites の開発に携わっている河野

                                        プログラマ35歳定年説は覆せる | 米マイクロソフトの開発者となった河野通宗の働き方 | CAREER HACK
                                      • - 継続的インテグレーション

                                        継続的インテグレーション 原題: Continuous Integration Martin Fowler Chief Scientist, ThoughtWorks Matthew Foemmel ThoughtWorks 「確実なビルドを行う」 -- これはどんなソフトウェア開発プロセスであれ重要なことだ。そのわりには、このことがきちんとされていないことに驚かされる。本論文では、Matt が ThoughtWorks 社でのある大規模プロジェクトにおいて採用したプロセスを紹介する。このプロセスは全社的な広がりを見せつつある。テスト部分も含めて「全てが自動化された」「再現可能な」ビルドを、「日に何度も」行うことに力点がおかれている。このプロセスを用いれば、開発者はインテグレーションを毎日行うことになるので、インテグレーションに伴う問題を減らすことができる。 継続的インテグレーションの恩恵

                                        • @IT:特集 「テスト駆動開発」はプログラマのストレスを軽減するか?

                                          新しいソフトウェア開発技法へチャレンジできるか? ソフトウェア開発の世界にも日々の進歩がある。そしてその中には、使えばさまざまな恩恵を受けられる技法もある。しかし、それらを現場ですぐに活用できるとは限らない。例えば、1990年代末に生まれ、1つのブームを形成したエクストリーム・プログラミング(XP)という開発技法がある。これは、とても優れた開発技法だと思うのだが、開発プロジェクト単位で、顧客まで巻き込んだ形で使われることが前提となっている。しかし、顧客ぐるみでまったく新しい方法にチャレンジできるかといえば、できないことの方が圧倒的に多いだろう。では、エクストリーム・プログラミングの技法を全部使おうとせず、使うことができる部分だけを取り出して試みることができるかというと、そういうわけにもいかない。エクストリーム・プログラミングは、いくつかのプラクティスと呼ばれる項目から成り立っているのだが、

                                          • PythonでWebAppの開発に必要なN個のこと

                                            元ネタ あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずPythonについて知っていることを書いた。 パッケージマネージャ まずライブラリの管理。モジュールをインストールし、可能であればバージョンを固定し、適切にロードする機能が必要だ。 Pythonの場合は pip というPyPIクライアントでライブラリをインストールする。ライブラリパスの設定は virtualenv で行う。 アプリケーションサーバー Webサーバへのインターフェイスとしては、WSGIという仕様がある。WSGIに準拠したツールキットとしてWebObやWerkzuegなどがあり、サーバーには標準ライブラリのwsgirefやwaitress、gunicornなどがある。 本番環境ではgun

                                            • jQuery FTW (October 17) - InsideRIA

                                              AllBooksCoursesVideosLive EventsInteractiveCertificationsAudiobooksPlaylists

                                                jQuery FTW (October 17) - InsideRIA
                                              • MeCab: Yet Another Part-of-Speech and Morphological Analyzer

                                                MeCab に至るまでの形態素解析器開発の歴史等はこちらをご覧ください メーリングリスト 一般ユーザ向けメーリングリスト 開発者向けメーリングリスト 新着情報 2008-02-03 MeCab 0.97 マルチスレッド環境で辞書を開くときの排他制御がうまくいっていなかったバグの修正 Windows版でインストール時に辞書の文字コードを指定できるようになった 一部のコンパイラで正しくコンパイルできなかった問題の修正 部分解析モードを変更するAPI の追加 (Tagger::set_partial()) ラティスの生成レベルを変更するAPI の追加 (Tagger::set_lattice_level()) 温度パラメータを変更するAPIの追加 (Tagger::set_theta()) 全候補出力モードを変更するAPIの追加 (Tagger::set_all_morphs()) 2007-

                                                • mixiエンジニアがおくるソーシャルアプリ開発実践講座:第3回 自動テストと継続的インテグレーションを既存プロジェクトへ導入しよう|gihyo.jp … 技術評論社

                                                  はじめに はじめまして。(⁠株)ミクシィの加藤和良です。2008年度に入社し、2011年1月からはシステム本部 技術部に所属しています。技術部は、日記やコミュニティといった特定のサービスに紐づかない、mixi全体を裏から支える部署です。「⁠支える」ための方法は、実際のサービスの一部として動作する共通基盤から、開発効率を上げるために社内で動作しているものまで、多岐にわたります。 mixiでは、ここ数年で自動テストの導入が急速に進みました。図1は、mixiのソースツリーにおけるコードと、そのテストコードの毎月1日のバイト数をグラフにしたものです。2008年の頭には少なかったテストが急速に増え、今年の5月にはコード量をも追い越しているのがわかります。 携帯電話向けmixiである「mixiモバイル」の開始が2004年、mixiニュースが2006年ですから、2008年当時のmixiも、それなりに大き

                                                    mixiエンジニアがおくるソーシャルアプリ開発実践講座:第3回 自動テストと継続的インテグレーションを既存プロジェクトへ導入しよう|gihyo.jp … 技術評論社
                                                  • googleの開発プロセス - 森崎修司の「どうやってはかるの?」 [ITmedia オルタナティブ・ブログ]

                                                    昨日に続きますが、ディベロッパーサミットでgoogleの開発プロセスについて聴講してきました。Googleは一味異なるプロセスや組織をお持ちのようです。請負開発をされている方には新鮮なのではないでしょうか。工藤氏はGoogleのインフラ寄りの話、小松氏は開発プロセスの話で講演されていました。サービスインフラも開発プロセスも私にとっては身近な話ですが、ここでは、小松氏の講演について書こうと思います。講演では、極めて異例/エキセントリックというプロセスは話されていませんでしたが、以下は、特徴的と感じました。 異なる観点から複数のレビューを実施していること。いわゆるperspective-based readingを実施しているそうです。役割分担型レビュー(reviewというよりはおそらくinspection)で、セキュリティやユーザインタフェースの観点から見たデザイン/ソースコードの妥当性検証

                                                      googleの開発プロセス - 森崎修司の「どうやってはかるの?」 [ITmedia オルタナティブ・ブログ]
                                                    • Rustのビルドを高速化する方法 | POSTD

                                                      Rustコードのコンパイルが遅いことは誰でも知っています。しかし筆者は、世の中のほとんどのRustコードはコンパイルをもっと速くできると強く感じています。 例えば、つい最近の記事にこのように書かれていました。 一方、Rustでは、プロジェクトやCIサーバーの性能にもよりますが、 CIパイプラインの実行に15~45分かかります。 これは筆者には理解できません。GitHub Actions上にあるrust-analyzerのCIの所要時間は8分です。しかも、これは100万行の依存関係に加え、20万行の独自コードが記述されたとても大規模で複雑なプロジェクトでの話です。 確かに、Rustは根本的な部分で非常にコンパイルが遅いのは間違いありません。Rustはジェネリクスのジレンマにおいて「遅いコンパイラ」を選び、全体的な設計思想としてコンパイル時間よりもランタイムを優先しています(この点に関する優れ

                                                        Rustのビルドを高速化する方法 | POSTD
                                                      • Selenium WebDriver を利用して Webアプリケーションのテストをしてみる - suzukij's diary

                                                        以前から気になっていた Selenium WebDriver を使ってWebアプリの自動テストを試してみたので忘れないうちにメモ。 WebDriverに惹かれたのは以下の理由 ブラウザの操作がJavaで簡単に書ける(学習コストが低い) 記述するコードが簡潔で分かりやすい(コードのメンテナンスがしやすい) JUnitからも実行できる(Jenkinsから実行して自動化したり) ブラウザのスクリーンショットが撮れる(エビデンス作成) 導入準備 ここから Selenium Client Drivers(Java) をダウンロードしてjarにクラスパスを通すだけ。 Mavenを利用する場合、pom.xmlに selenium-java を追加するだけでOKです。 ブラウザ操作の機能のみを利用するだけなら selenium-htmlunit-driver は不要なのでexclusionを指定しておくと

                                                          Selenium WebDriver を利用して Webアプリケーションのテストをしてみる - suzukij's diary
                                                        • PhpUnit - 最強のユニットテスト自動化ツール - Do You PHP?

                                                          zip形式 tgz形式 gihyo.jpにPHPUnit3で始めるユニットテストというタイトルで記事を書きました。PHP5をお使いの方は、そちらを参照してください。 ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 PhpUnitは一時期PEARに登録されていましたが、現在は別プロジェクトとして活動しています。新しいURLはhttp://phpunit.de/です。 テスト。。。ああ、なんてイヤな響きでしょう。。。(^-^; 「テストすること」はプログラムの品質を保証するということで非常に重要な作業だ、ということは百も承知と思いますが、コーディングと比べてやはり「イヤ」なもの

                                                          • Facebook のリリースと文化 - Kato Kazuyoshi

                                                            公開されたのはもう去年のはなしだけど、Facebook の リリースエンジニアリングの Tech Talk (予告編) は面白い。話している Chuck Rossi さんは Facebook のリリースエンジニアリングチームのリーダーだ。 彼は “The business requires change, but change is the root cause of most outages!” と話をはじめる。Facebook の規模で毎日変更をリリースするために、リリースのリスクをできるかぎり減らさなくてはいけない。そのために出てくるのが「文化」と「道具」だ。 現在のソフトウェア開発では開発者と顧客 (your mom) の間に薄いレイヤーしかない: 昔は QA とかプロダクトマネジャーとかいろいろいたけど、いまは違う。 ブランチとリリース: 開発者は trunk にコミットする。日

                                                            • 窓の杜 - 【NEWS】IEで開いたWebページ上の各種操作を記録して自動化「RecIE」v0.9

                                                              「Internet Explorer」(以下、IE)で開いたWebページ上の各種操作を記録して自動化できるソフト「RecIE」v0.9が、13日に公開された。Windows 98/Me/2000/XPに対応するフリーソフトで、現在作者のホームページからダウンロードできる。なお本ソフトは、同作者製のキーボード・マウス操作を自動化するソフト「UWSC」と連携して動作する仕組みなので、あらかじめ「UWSC」v4.1以上をインストールしておく必要がある。 「RecIE」は、任意のWebページ上の各種操作を記録して自動化できるソフト。Webページ上の任意のテキストボックスに文字列を入力したり、特定のリンクをクリックするといった各種操作を記録しておき、あとから自動操作させることが可能。 使い方は、まず[記録]ボタンを押して自動操作したいWebページのURLを入力しよう。すると、本ソフトに内蔵されたIE

                                                              • テスト文化はなぜ作れないのか? - Gaudiy Tech Blog

                                                                こんにちは。エンタメ領域のDXを推進するブロックチェーンスタートアップ、Gaudiyでフロントエンドエンジニアをしているkodai(@r34b26)です。 Gaudiyでは、以前のtech blogでお伝えしたように、ATDDやフロントエンドのテストに取り組んできました。 techblog.gaudiy.com ですが、正直にいうと、Cucumberを使ったフロントATDDは運用がうまく回っていません。 なぜ失敗したか? を振り返ってみると、「設計を変える(=テストを書く)こと」だけに注力してしまい、「コミュニケーションの構造を変えなかったこと」が原因だということに思い当たりました。 そこで今回は、テスト文化を醸成するためのコミュニケーション設計をテーマに、ブログを書いてみたいと思います。 テスト文化を組織に定着させたいけどうまくいっていないチームの方々に、ご参考になったら嬉しいです。 1

                                                                  テスト文化はなぜ作れないのか? - Gaudiy Tech Blog
                                                                • Selenium Auto Exec Server(AES)

                                                                  Japanese / English Selenium Auto Exec Server(以降 Selenium AES)は、Seleniumによる継続的なリグレッションテストを行うためのツールです。 プロジェクトにおけるテストの手助けとなることを目標としています。 Selenium AESを使えば、SeleniumのHTML形式のテストを毎日決まった時間に実行し、その結果をメールで送信するといったことが簡単に行えます。 他にもSeleniumを使ったリグレッションテストを手助けするための様々な機能が提供されます。 Selenium AESは、Selenium RCを拡張することにより、実現しています。 また、Selenium RCのHTMLSuiteに対する使い勝手を向上させたツールとして、Selenium HTMLSuite Extensionというものも公開しており、Selenium

                                                                  • ** Sikuli Project **

                                                                      ** Sikuli Project **
                                                                    • スケールするエンジニアチームについてGoogleが教えてくれたこと | POSTD

                                                                      Googleでは、世界各地のGoogler(Googleの社員)たちが毎週、トイレの壁に紙をたくさん貼り出していました。コードのテストに役立つヒントを週替わりで1枚の紙にまとめたものを、社員間で共有するためです。ある週はDI(依存性注入)を取り上げて様々な言語での簡単な使用例を示し、またある週はチームのコードベースのテストカバレッジを評価するために、ツールのセットアップ法を紹介するという具合です。“Testing on the Toilet(トイレの時間に考えるテスト)”と呼ばれるこの取り組みは、エンジニアがコードを書く上で役立つ情報を共有する方法として、奇抜で面白いものです。 ^(1) そしてGoogleのエンジニアリング文化の要となる強みもここに表れています。つまり、大勢のエンジニアに対して、一連のベストプラクティスを一貫した強硬な形で、効率よく普及させるということです。 私は大学を出

                                                                        スケールするエンジニアチームについてGoogleが教えてくれたこと | POSTD
                                                                      • JavaScriptでのテストや開発についてのアウトプット - Block Rockin’ Codes

                                                                        最近JavaScriptを個人的に勉強しているんですが、そんなJS初心者ながら色々試すなかで気が付いた開発とかTDDとかについて色々思うところをアウトプットしてみようかと思います。 一番多いのは、ClientSideJSで、使ってるのはjQueryとQunitが中心でした。 でもこれからは別のフレームワークや、ServerSideJSなんかも出てきますし、 今読んでる本が終わったら、こっちの本も見てみたいと思っているので、 Test-Driven JavaScript Development: Safari Books Online その前にこれを書いておこうという目的です。自分に付ける一つのTagという感じです。 あまり一貫性に拘らず、垂れ流したいと思います。 Ajax と API 以前こんな記事を書いたように、サーバ側がAPIでデータを提供し、ロジックをクライアント側に固めるタイプの開

                                                                          JavaScriptでのテストや開発についてのアウトプット - Block Rockin’ Codes
                                                                        • なぜUnitTestは理解されない?

                                                                          TwitterでこんなTweetが流れた… エビデンスとしてNUnitのGUIのスクリーンショットと、対応するテストコードが含まれている部分のVSのスクリーンショットを取る作業が終りません・・・ UnitTestのエビデンスって…なに? 一般的にテストのエビデンスというと、次の2点を指す。 テスト手順を明らかにするもの(ex. テスト設計書、テスト仕様書、...) テスト結果の証拠(ex. 画面ハードコピー、DBスナップショット、...) UnitTestでは、これはこのように解釈できる。 テスト手順を明らかにするもの = テストコード テスト結果の証拠 = 今実行すればテストが全てグリーンになること これがなぜか理解されず、軋轢とストレスと大きな工数追加になっている現場がずいぶんある。 なぜUnitTestはいつまでも理解されないのだろう。 余談。これらのことは、Seleniumなどを使

                                                                            なぜUnitTestは理解されない?
                                                                          • JasmineによるJavaScriptのテスト その1 - サーバーワークスエンジニアブログ

                                                                            JasmineによるJavaScriptのテスト その1 こんにちは、プログラマのおぐらです。 弊社のクラウドマネージメントサービス Cloudworksでは、JavaScriptのテストにJasmineというフレームワークを利用しています。Jasmine自体はとてもよく出来ていて便利なソフトウェアなのですが、まだリリースされて日が浅いということもあってあまり日本語の情報がありません。そこで、Cloudworks担当のエンジニア Y氏にJasmineの社内向けチュートリアルを作ってもらったところ、なかなかの大作が仕上がり、社内だけで利用するにはもったいないデキでしたので技術ブログのコンテンツとしても掲載させていただくことになりました。 これから何回かに分けて掲載していきますので、「JavaScriptをどうテストしよう?」とお悩みの方はぜひ参考にしてみてください。 Jasmineとは? J

                                                                              JasmineによるJavaScriptのテスト その1 - サーバーワークスエンジニアブログ
                                                                            • 2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog

                                                                              こんにちは、研究開発部 Data Analysisグループの笛木です。 4/26(水)〜 4/28(金)で研究開発部内の技術研修を行いました。 こちらのブログの続きでテストコードについての研修資料を一部公開します。研修では新卒2年目の私が1年間で部内のコードなどから学んだ情報を共有しました。至らない部分もあるかもしれませんが、ご参考になれば幸いです。 こちらの研修で使用したGitHubのコードリンクは以下です。適宜、ご参照ください。 github.com 目次 目次 はじめに この研修の目的 研修スコープ外 テストコードについて テストコードの便利な点 テストコードの悪い例 テストコードに関するFAQ pytestによるテストコードの書き方 ファイル名 ディレクトリ 基本編 Parametrize Fixture 異常系 Mock indirect conftest 知っておくと活用する場

                                                                                2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog
                                                                              • クライアントJavaScriptのテストにはmocha-phantomjsを使え - mizchi's blog

                                                                                mocha-phantomjsは、その名前の通りmochaとphantomjsを使ってクライアントJSのテストができるヘッドレステストランナー。長く使ってるけど特に不満はないので使えばいいと思う。 metaskills/mocha-phantomjs https://github.com/metaskills/mocha-phantomjs スケルトンを作った クライアントJSのテスト書かれない理由として、環境構築の難しさがあると思う。 そこで怠惰な人たちの為にGruntでプロジェクト用スケルトンを作った。ごじゆうにおつかいください 使い方 git clone git@github.com:mizchi/client-app-skeleton.git cd client-app-skeleton npm install bower install grunt test 結果 Running

                                                                                  クライアントJavaScriptのテストにはmocha-phantomjsを使え - mizchi's blog
                                                                                • Google App EngineとPythonでの素直な開発環境の構築(TDDができるように) - Masatomo Nakano Blog

                                                                                  追記: 続編的なものを書いた。 今年は色々なことに手を出してみよう、ってことで少し前からGoogle App Engine(以下GAE)で、あるモノを作っている。モノ自体は近いうちに公表できると思う。 基本的に、Pythonと標準っぽいフレームワークだけでやってみている。作っているものがそれなりにシンプルなのと(だからこそGAE!)、GAEでそれなりの規模の開発をするのが自分自身初めてということもあり、あまり色々なレイヤーを重ねて手こずりたくなかった、ってのがその理由。 ただ、GAE初心者なので、「いやいやそれは今時ないよ」「XXの方が100倍いい」とかあったら教えてくれると嬉しいので今のところの環境を書いておくことにした。今ならスイッチ可能。 今作っているものがJSONファイルを入出力するだけのものなので、HTML生成パートみたいのはない。 1. フレームワーク 上にも書いたように、今回