タグ

ブックマーク / developer.cybozu.co.jp (16)

  • 失敗からはじめるSelenium - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。kintone 開発チームの長谷川&宮田です。 みなさんテスト書いてますかー? 品質の高い製品をリリースし続けるためにはテストを書くのは当たり前。でも実際にテストを書いたりメンテナンスをするのは大変なこと。特に、ユニットテストではなく Selenium のようなブラウザテストはコストが高く、運用が難しい面も。。 kintone チームでも Selenium を使って自動化試験を行なっています。 ここ1年ぐらいで随分テスト周りの仕組みが整備され、製品の品質向上に繋がっていることを実感していますが、 最初の頃は失敗も多く自動化試験としてはあまり機能していませんでした。今回はそんな kintone チームの自動化試験への取り組みの失敗とその改善について紹介したいと思います。 Selenium の失敗あるある 始めに昔の取り組み(失敗談)をいくつか簡単に紹介します。 テストの目的が曖昧

    失敗からはじめるSelenium - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Windows + Visual Studioで「まともなGUI」が使えるgit環境を整える - Cybozu Inside Out | サイボウズエンジニアのブログ

    gitはコンソール(コマンドライン)で使うのが当たり前でしょ、みたいな空気がちょっと嫌だったり、実際Windows用のgit系ツールのGUIがげんなりするほど酷い完成度だったりしたこともあり、ぶっちゃけhgの方が使いやすいよね、と思わなくもないMercurial派のサイボウズ・ラボ 中島です、こんにちは。 まぁ、そうは言っても使わなくてはならなんこともあ...、じゃなくて、ぼちぼちWindows環境でもいい感じにGUIで使えるgitツール群が揃ってきたので簡単にまとめてみました。 …と言っても、GUIだけにほとんどインストールして実行するだけであります。 入れるのはこの3つ、(ただし、残念ながらどれも今の所は英語UIのみです) Github for Windows SourceTree for Windows Visual Studio Tools for Git Extension この

    Windows + Visual Studioで「まともなGUI」が使えるgit環境を整える - Cybozu Inside Out | サイボウズエンジニアのブログ
  • サイボウズのPython コーディング規約 11 カ条 - Cybozu Inside Out | サイボウズエンジニアのブログ

    ymmt2005 こと山泰宇です。こんにちは。 cybozu.com のインフラ開発チームでは仕事のかなりを Python でこなしています。 Python を選んだ理由は以下の通りです。 便利だから Python には "batteries included" と呼ばれるほど豊富な標準ライブラリが整備されています。例えば HTTP で通信するとか、JSON データを読み込むといった良くある仕事のためにいちいち外部ライブラリを探さなくていいのです。 堅いプログラミングができるから 例外やモジュールといった現代的な機構が備わっているので、ベターシェルスクリプトとして使うのに適しています。 書き方にバリエーションが少ないから チーム開発では他の人が書いたコードを手直しすることは良くあります。書く人によって書き方がいくつもあるような言語より、レビューや修正がしやすいと考えています。 標準的に使

    サイボウズのPython コーディング規約 11 カ条 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sbg3
    sbg3 2013/01/09
  • Cybozu Inside Out: ScaleBench 公開

    どーもみなさま。こんにちは。 amachang と申します。 さて、ようやく ScaleBench というプロダクトが発表されましたね! ScaleBench のご紹介 で、僕もこれの開発に携わっていたのでちょっと技術的なことについて書いてみたいと思います。 ScaleBench とは ScaleBench とは、サイボウズ製品向けの負荷テストツールで Grinder というオープンソースの負荷テストツールをベースにしています。 Grinder とは Java を使った Web の負荷テストツールです。 Jython でシナリオ(ユーザがどう行動するか)を書いてそれを実行します。 またブラウザの操作を記録して、シナリオを自動で生成することもできたりします。 で、僕がこのプロジェクトで担当していたのが Grinder の改良、改造 シナリオ(バーチャルユーザがどのような順で負荷をかけていくか

    Cybozu Inside Out: ScaleBench 公開
  • Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)

    といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山 陽平) - ただのにっき(2010-04-23) 「Web を支える技術」は自分もとてもいいだと思う (教科書としてすばらしいし復習用としても読みやすいのでイイ) のですが、トランザクションの所だけは分かりづらいなと感じました。その原因は、atomic transaction で解決できる課題を例として使っているという点と、トランザクションと更新クエリのレイヤ分割がされていない、という2つの点によるものではないでしょうか。 HTTP 上でトランザクションを表現する必要があるケースのほとんどは、atomic transaction ではなく

  • Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript

    はじめまして。2009年に新卒で入社しました天野祐介です。amachang を期待された方はゴメンナサイ! 先日 SpiderMonkey を利用して PHP から JavaScript を実行する方法を調べる機会がありましたので、ご紹介します。 SpiderMonkey とは SpiderMonkey は  C で実装された Mozilla の JavaScript エンジンです。 これを PHP から実行する拡張を利用すると、 PHP コード内で JavaScript が実行できます。 SpiderMonkey extension のインストール こちらhttp://devzone.zend.com/article/4704に記載されている方法で CentOS にインストールしてみました。 PHP 5.3.0 以上が必要です。 $ wget http://ftp.mozilla.org

    Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript
  • Kazuho@Cybozu Labs: crontab を使って効率的にサービス監視する方法

    監視とは継続的なテストである、という話 (もしくは cronlog とテストスクリプトを組み合わせた監視手法について)に続きます 今日ようやく、積ん読状態だった「Software Design 2010年1月号」を手に取ったのですが、特集が「今日から使えるスクリプト満載! [プロ直伝]お手軽サーバ監視術」。興味深く拝読したのですが、もっと楽ができるのにと思うところも。ちょうど、昨年末に運用しているサービス「パストラック」のサーバを移転し、crontab と perl で書かれたスクリプト群を使った監視環境を構築したところなので、そこで使っているスクリプト cronlog を紹介したいと思います。 特集の前書きにも書かれていることですが、サーバやネットワーク機器が多数ある環境なら、Nagios を始めとする、専ら監視のために作られたソフトウェアを使って、監視システムを構築すべきです。逆に小規

  • Real UNIX MAGAZINE Day ライトニングトーク | TAKESAKO @ Yet another Cybozu Labs

  • Kazuho@Cybozu Labs: パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ (BPStudy#25発表資料)

    先週金曜日、BPStudy#25で、「パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ」という題目で話をさせていただきました。その際に使用した発表資料は以下のとおりです。 1. Happy Optimization 最初に、最適化の考え方として、上限値を予測し、それを元にリソース配分を考える、という手法を説明しました。

  • Kazuho@Cybozu Labs: Perl のテスト用に MySQL 環境を自動で構築するモジュール Test::mysqld を書いた

    ORM やウェブアプリケーション関連のライブラリなどのテストケースを書くにあたっては、 RDBMS へのアクセスが必要になります。しかし、SQLite のようなスタンドアローンのデータベースと比較すると、サーバ型データベースである MySQL に接続してテストを書くのは、既存の MySQL の権限設定やデータベース名を気にする必要があったりと、いろいろ不便です。そこで、MySQL のインスタンスをテンポラリディレクトリに自動生成し、テストが終わったら削除してくれる Perl モジュール Test::mysqld を書きました。こんな感じで使います。 use DBI; use Test::mysqld; use Test::More; my $mysqld = Test::mysqld->new( my_cnf => { 'skip-networking' => '' }, # TCP接続を

  • Android初心者の最初の2週間での感想

    Androidの開発機を入手して2週間ほど経つのですが、その2週間の感想です # 2週間といっても、他にいろいろとやってたのですが(個人の方で新サービス読んだ4!のテスト公開とか) この手のことをするのは、2002-3年ぐらいにPocket PCの開発をやって以来なので、少しずれてるかもしれませんが。いろんな事が簡単にできるようになっているなあと、時代の違いを感じました。 開封から設定 設定にパソコンは不要 [開封]-[起動]-[タイムゾーンと日時の設定]-[WiFiの設定]-[Googleアカウントの設定] で。Gmailが使えるようになり、GmailのコンタクトもAndroid上で閲覧できるようになりました。携帯電話として使うためのSIMは持ってないし、持っていたとしても使うとたいへんなパケット料金になるらしいので、無線LANだけで使ってます。 Gmailのコンタクトに電話番号の情報は

    sbg3
    sbg3 2009/07/22
  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

  • 記号でPolyglotプログラミング♪(RejectKaigi2009) | TAKESAKO @ Yet another Cybozu Labs

    RubyKaigi2009の最終日に同じ場所で開催された別のイベント「RejectKaigi2009」にて 「はじめてのRuby1.9プログラミング」と題して、記号Polyglotプログラミングの話をしてきました。 3分という限られた時間でありましたが、貴重な発表の機会を与えてくださりありがとうございます。 取り急ぎプレゼンで披露した記号Polyglotのプログラムを公開しておきます。 ■ hello.pl (という名前ですが、Perlの他にRubyJavaScriptでも実行できるプログラムです) "#{",$/*"}";%#=();$^_^=’?“;">)~${`&&@`{;:+`[[‘,$^_^=’/?")-=^{(=!".=.!,!)&&>’,$^_^=’`-+|{!?“*.((-+({:^(_^’,$^_=”^’+@$@&’^’^.@%@’.’$^_^"";’.$^_^"",’

  • Kazuho@Cybozu Labs: Pacific という名前の分散ストレージを作り始めた件

    大規模なウェブアプリケーションのボトルネックがデータベースであるという点については、多くの同意が得られるところだと思います。解決策としては、同じ種類のデータを複数の RDBMS に保存する「sharding」 (別名:アプリケーションレベルパーティショニング/レベル2分散注1) が一般的ですが、最近では、分散キーバリューストア (分散 KVS) を使おうとする試みもみられるようになってきています。 分散 KVS が RDBMS sharding に対して優れている要素としては、事前の分割設計が不要で、動的なノード追加(とそれにともなう負荷の再分散)が容易、といった点が挙げられると思います。一方で、Kai や Kumofs のような最近の実装では eventually consistent でこそ無くなってきているものの、ハッシュベースの分散 KVS は、レンジクエリができなかったり (例:

    sbg3
    sbg3 2009/06/11
  • 秋元@サイボウズラボ・プログラマー・ブログ: 究極の.htaccess?

    via del.icio.us/popular Apacheのフォルダローカルな設定ファイル.htaccess で使いそうな設定をかたっぱしから書き込んだファイル。 メイン、スクリプト関連、ヘッダ(キャッシュや最速化)、URL書き換え、認証、SSL、開発中サイト、というようなジャンルごとに、よく使われそうなディレクティブがずらずらと並んでいる。PHPの設定、cool URLの設定、エラーページ、認証の掛けかた、などなど。 書き換えるべきところは英単語で何を書くのかわかるようになっているので、コメントとあわせて思い出しながらコメントを外していくとそれなりに使えそうな .htaccess が作れるかもしれない。僕なんかは細かい設定方法すぐ忘れてしまって検索することが多いので、これで楽になりそう。 # 当に不要なものはコメントにせずファイルから消すべきだし、安定運用に入ったら.htaccess

    秋元@サイボウズラボ・プログラマー・ブログ: 究極の.htaccess?
  • 秋元@サイボウズラボ・プログラマー・ブログ: 開発合宿に行ってきた&3分クイズ公開

    この週末、idea*idea田口さんとサイドフィード赤松さんの開発合宿に参加してきた。(田口さんの詳細レポートはこちら) 今回とくに何を作るか決めていなかったのだけど、初日の朝に、diggの人気エントリになっていた「10分でアメリカ合衆国の50州を答えるクイズ」を見て、これをユーザが作れたらいいかな、ということでジェネレータを作ることにした。 できたのがこれ。 3分クイズ いろいろ足りない点はあるのだけど、旬のネタは早めに出さないとだめな感じがするし、とりあえずアルファ版として公開する。遊んでみていただければうれしい。 # 開発中バージョンを見てクイズを追加してくれたみなさんありがとう ちなみに、元ネタサイトは田口さんがやはり土曜朝にidea*idea: テスト番に強くなれそうなウェブアプリ(多分)で紹介されている。 土日月と作っている間に、オリジナルのデータを変更したバリエーションもい

    秋元@サイボウズラボ・プログラマー・ブログ: 開発合宿に行ってきた&3分クイズ公開
    sbg3
    sbg3 2007/03/08
  • 1