morikawa

インフラグループの Morikawa です。今回は AWS EC2 のインスタンスに SSH ログインする際にちょっと便利なツールのご紹介です。

ちなみに AWS は初心者でして、最近時間を見つけてはちょっとずつ勉強してるところです。…で、使い始めて思ってしまったわけです。

  • EC2 (起動のたびにグローバルIP変わる) に SSH ログインするの毎度面倒くさいな、と…。 (もっと他に学ぶところはあるはずなんですが ^^;)

Web 上を探してみますと同じような不満を持ってる方はやっぱりいらっしゃいまして、以下のサイトで migrs さんが、EC2 上のインスタンスの名称を指定して SSH ログインできる ec2-ssh というツールを紹介して下さってます。ツールは GitHub Gist で公開されてます。

これはログインのたびに ec2-api-tools を介してインスタンスの名称と Public DNS の対応を自動取得してくれるツールです。単独で動くシェルスクリプトですのでセットアップも簡単で非常に便利です。ただ ログインのたびに API での Public DNS 情報の取得に数秒必要 のがどうも気になってました。

そんなわけで (ここが本題)、migrs さんの ec2-ssh を Fork して Public DNS 情報のキャッシュ機能を追加した ec2-ssh を作ってみました (こちらも Gist にて公開 してます)。今のところ CentOS 6.4 と Mac OS X 10.8.4 で動作確認してます。

既にオリジナルの ec2-ssh を利用されてる方や、ec2-api-tools を普段から利用している方は単にダウンロードして実行してもらえればサクッと使えると思います。今回の記事では、私のような AWS 初心者向けに関連ツールのセットアップも含めてまとめてみました。

続きを見る >>>

Tags: , , , ,

s-24

もうすっかり暑くなりましたが、1日中半袖でいることができない男、s-24です。(改名しました!)
ずっと見てきた海外ドラマ、CSI-NYがシーズン9で終了してしまい残念すぎます。
マイアミも終わってしまったので、とってもさみしいです。。
そのかわり、24が復活するらしいですが、今更ジャックについていけるか心配で寝れません!

さて、今回は PHPMD – PHP Mess Detector についてです。PHPMD は PHP のコードの中から、コードレベルでバグになりそうな箇所を検出してくれるツールです。早めにバグを発見するために導入してみました。

インストールは簡単です。CentOS であれば root 権限で以下を実行していけば OK!

# yum -y install php-pear
 
# pear channel-discover pear.pdepend.org
# pear install pdepend/PHP_Depend-beta
 
# pear channel-discover pear.phpmd.org
# pear install --alldeps phpmd/PHP_PMD-alpha

これでインストールできます。

実行コマンドはこのように。

# phpmd [ファイル名] [レポート形式] [ルール]

ファイル名は解析したいファイル名、レポートは出力したいファイル名で、text と xml で出力できるみたいです。ルールは5つあるようですが、今回は unusedcode をセットしてみました。これは使われていないコードを検出してくれます。クラス内で定義はされてるけど参照されてない変数、パラメータなどを抽出してくれます。typo とかこれで発見できるかなあと思って導入しています。ちなみにその他のルールはこんな感じです。

  • controversial: キャメルケースなどを検出する
  • codesize: コードサイズ関連部分を検出する
  • design: 設計の問題を検出する
  • naming: 名前が短い、長い箇所を検出する

実際に実行してみるとこんな感じになります。

$ phpmd hogehoge.php text unusedcode
 
hogehoge.php:1225 Avoid unused local variables such as '$session'.
hogehoge.php:1674 Avoid unused parameters such as '$html'.
                  :
                  : (こんな感じでずらずらと…)

うん。かなり出てきました!コードをじっくり確認しないと発見できないような部分も発見!

これを開発側に投げて、確認して修正して貰うようにしています。これでもう少し早くバグが見つかると思います!

初回は全部1つずつ確認しましたが、問題ない部分はルールのカスタマイズをしたりすれば検出されなくなるらしいです。自分はルールのカスタマイズをするのが面倒だったので、確認した次の日からは新規に検出された部分だけ確認するようにしています。また、このチェックは日次で自動化して実行しないと手間かかっちゃいますので、自分は Jenkins にプロジェクトを作成して実行させるようにしています。

この ①PHPMD の Jenkins へ導入、②新規に検出された部分だけ確認するような運用方法については次回の投稿で紹介します!

参考サイト: CentOS6.3で静的解析ツールPHPMDを動かしてみる(PHP用)

Tags: , ,

morikawa

Tricorn Labs では初投稿になります。インフラグループの Morikawa です。今回はインフラグループで最近進めています、Zabbix Sender を用いたバッチ処理結果の監視について紹介します。

Zabbix はサーバ、ネットワーク、アプリケーションを監視するための統合監視ソフトウェアであり、GNU General Public License (GPL) v2 で配布されていて無償で利用可能です。ざっくりと仕組みを説明しますと、各サーバ上で動作する Zabbix Agent がサーバの様々なステータスを取得し、Zabbix Server が各 Agent からの情報を取得してデータベースに蓄積した上で、予め障害として設定された条件にマッチするものが検知された場合に管理者に対して障害報告を行います。また Web UI も備えており、そちらから諸々の設定を行えるだけでなく、ダッシュボードで状況を一覧することも可能です。

さて、インフラグループではトライコーンが提供するサービスの異常もしくはサービスに影響を与えうるサーバ・ネットワーク障害を速やかに検知するための様々な対策をとっていますが、その一環として Zabbix による監視も行なっています。一般的な監視項目であるサーバのディスク使用率やプロセス稼働に加え、最近は日次のバッチ処理の成否についても Zabbix で監視を行い始めています。バッチ処理の成否の取得には Zabbix Sender を用いていますが、なぜ Zabbix Sender を用いているのか、また実際にどのように監視しているのかについてご紹介します。

続きを見る >>>

Tags: ,

black

Webフォームのテスト

Posted Date: 2011-06-14 11:05
Author: / No Comments

こんにちは、品質管理チーム新人のblackです。
さて、今回は私がWebページのテストに用いている手法とツールについてご紹介します。

品質管理チームの業務の一つに、Webサイトや、データの登録、更新などを行うWebフォームのテストがあります。
これは自動化ツールを使用せず、手動、目視による確認を行っています。

私の場合は対象を”表示確認”、”動作確認”、”設定確認”、の大きく分けて3つの視点で確認します。
表示を

  • 「文言の誤字脱字」
  • 「改行、折り返しの位置」
  • 「文字の大きさ、色」
  • 「画像の表示」。

動作を

  • 「ページ遷移」
  • 「Formのsubmit動作」
  • 「JavaScriptの動作」
  • 「リンクの動作」。

設定を

  • 「各<input ~>の形式や値」
  • 「入力欄の文字数制限」
  • 「エラーメッセージの設定」
  • 「リンク先アドレス」
  • 「ヘッダの設定」。

というように確認項目を細分化し、それぞれの目的を網羅する簡易チェックシートを作成してテストを行います。
すると仕様書と違う部分や、仕様書通りでも違和感のある部分などが見えてきます。

仕様書との差異を探し、バグを見つけるだけに留まらず、新たなリスクを見つけることで仕様自体の問題を洗い出し、魅力的品質の向上に繋げる。
これは手動による確認でしかできないことだと思っています。

しかし、例えば出力結果だけを入力パターンの組み合わせで確認したい時や、
こまめに修正を確認したい時、その手前の入力作業を毎回全て手動で行うのはとても手間です。
入力項目が20や30もあると、それだけでかなりの時間を消費してしまいます。

そこで重宝しているのが、Firefoxなどで使えるアドオン「Lazarus: Form Recovery」です。
これはフォームのsubmitを実行すると、その時点で各フォームに入力されている情報をページごとに記録しておいてくれる物で、過去に入力した情報をコンテキストメニューからすぐに復元できるのです。

入力項目が複数ある中で、一カ所だけを変更するというパターンの網羅も手軽にできますし、例えばフォームからのリクエストによって問題が生じた時には、どういう入力情報で問題が発生したのか、条件をそのまま再現することができます。

このような作業においてはとても便利なアドオンの一つです。
私の工数はこのアドオンの導入で約2割削減できています。

目的に合わせた手法と、それを活かす為のツール探し。
後々の作業品質そのものを向上させる意味でも、時間をかける価値があると思います。

shishi

Developers Summit 2011 に行ってきました

Posted Date: 2011-02-24 10:15
Author: / No Comments

はじめましてこんにちは。12月に入社しました shishi です。社内で唯一の関西弁トーカーです。

今回 Developers Summit  (デブサミ)  に行ってきまして、そこでの体験を初めて Lab に書く記事にすることになりました。
デブサミは規模の大きなカンファレンスで、目黒雅叙園で丸2日間に渡り、IT業界で有名な個人の方や、会社等が集まって行われます。私は2日目に参加し、和田卓人さんや永和システムの木下さんといった開発プロセスで有名な方のお話を聞いてきましたので、そのことについて書きたいと思います。
続きを見る >>>

okt

OpenSSH5.6でControlPersistを使ってみる。

Posted Date: 2010-09-03 18:09
Author: / No Comments

こんにちは。三十路突入したばかりのoktです。
あぁもう30歳かと嘆いていたら各所から怒られました。

さて、先日、OpenSSH 5.6がリリース(http://www.openssh.org/txt/release-5.6)されました。
普段使っているCentOS5のOpenSSHは4.3なのですが、ControlMasterオプションや5.6で追加されたControlPersistオプションを使いたくなったので、CentOS5.5に入れてみました。

続きを見る >>>

Tags: ,

ookoshi

Seleniumを使っての回帰テスト

Posted Date: 2010-09-02 21:27
Author: / No Comments

こんにちは。
先日、会社から神宮の花火が見られて、千駄ヶ谷もいいなと思ったおおこしです。

品質管理チームでは手動での回帰テストと合わせて、Seleniumでの回帰テストを行っています。
もちろんSeleniumでは網羅はできませんが、広い範囲が自動実行できるのはとても便利です。
Seleniumは同じ操作をさせるのには便利ですが、単に操作を記憶させただけでは実行するたびにIDが変わる箇所ではつまずいてしまいます。
そこで、取得したID(文字列)を選択項目や入力項目に使って回帰テストを拡張したい!と思い調べました。
続きを見る >>>

Tags: , ,

toda

今年の夏は暑さが身にこたえるくらいの猛暑で、半分溶けているtodaです。

さて、JavaScriptのクラスを書いていて、staitc変数(クラス変数)が必要なことがあります。
しかしながら、現在のJavaScriptにはstatic変数という概念がありません。

続きを見る >>>

Tags: , , , ,

3 / 1712345...10...最後 »