てすてぃんぐライフ

駆け出しQAエンジニアの備忘録

QAがWebサービスを作ってみる奮闘記 - 序章

QAとして普段Webサービスをテストしてるけど、そもそもWebサービスの開発のことがわかってない\(^o^)/

ってことで、自分で開発してみようと思いました。

  • Webサービスを使うけど実際に自分で開発したことが無い
  • WebサーバとかAPサーバ、DBサーバとかがどう連携してるのか正直あんまり分かってない

という人に役に立てばいいなと思います。

どんなWebサービスか?

今日の玉○屋のメニューについて、みんながどう思っているかについて知ることができるサービス。

(○子屋って何?という方、東京では有名なお弁当宅配サービスの会社です。)

背景

オフィスでお弁当を食べていて、「おいしい」「うーん、これはちょっと」と感じた時に、それを共感できる仲間がほしいと思ったから。

(…と文章に起こしてみると、すごく寂しいですね。。あれ、おかしいな、目から汁が…)

機能と優先度

  • 今日のお弁当メニュー全体について評価ができる(S)
  • 今日のお弁当メニュー全体についてコメント投稿ができる(A)
  • 各メニュー(主菜、副菜、…)について評価ができる(A)
  • 各メニュー(主菜、副菜、…)についてコメント投稿ができる(B)
  • 過去のメニューの評価が見れる(A)
  • 評価が高かったランキングが見れる(A)
  • 過去のメニューについて評価ができる(C)
  • スマホでも見やすい(C)

優先度Sができしだい公開、その後優先度Aを実装、という感じで進めたいです。

ぼっち弁当はPCの前で食べる人が多いと思い、スマホの優先度を下げました。(ドヤァ

個人的に勉強したいこと

必ず勉強したいこと:

できれば勉強したいこと:

環境

  • さくらのVPS
  • 開発環境(ローカルPC)はMac

スケジュール

ざっくりと。

  • 4月
    • Webサーバーの構築、APサーバー、データベースの準備
    • アクセス制限の設定
    • モニタリングツールの整備
  • 5月
    • TDDについて学習
    • サーバ側(Java)実装
    • クライアント側(Javascript)実装
  • 6月
    • 6/1 サービス開始

6/1が会社の設立記念日だそうなので合わせてみましたw

ぼちぼちやってみます。


(2014/06/01 追記) スケジュールは1ヶ月遅れでやっています(汗) 現在、「4月」に書いた項目を(四苦八苦しながら)やりました。 7/1サービス開始を目標に。

さくらVPS を勉強用に使ってみた

サーバの勉強用に、さくらのVPSを借りてみた。

やったこと

ここら辺を参考に。

ファイアウォールの設定内容

/etc/sysconfig/iptables を設定してみたは良いものの、 肝心の内容がちんぷんかんぷんだったので、 その意味を調べてみた。

参考

# テーブル名
*filter

# チェインの定義
# :チェイン名 デフォルトポリシー [パケットカウント:バイトカウント]
# デフォルトポリシーがACCEPTだと、ルールに明示されないパケットは許可。DROPだと破棄。
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
# ユーザー定義チェイン
:RH-Firewall-1-INPUT - [0:0]

# ローカルホスト宛のパケットはRH-Firewall-1-INPUT で処理
-A INPUT -j RH-Firewall-1-INPUT
# ローカルホスト経由のパケットはRH-Firewall-1-INPUT で処理
-A FORWARD -j RH-Firewall-1-INPUT
# 受信インタフェースがループバック(lo)なら許可
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
# プロトコルがICMP なら許可
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
# プロトコル番号が50(ESP)なら許可
# ESP(Encapsulated Security Payload) とは、IPsecによる暗号化通信で送受信される、ペイロード(通信内容)を暗号化して付加情報を付け足したもの。
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
# プロトコル番号が51(AH)なら許可
# AH(Authentication Header) とは、IPsecの仕様の一部で、送信元の認証や改ざん防止(完全性の保証)を実現するための仕組み。
# ESPと異なり通信内容の暗号化は行わず、データ本体は平文で送受信される。
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
# プロトコルがUDPかつ、送信先ポートが5353(Multicast DNS)かつ、送信先アドレスが224.0.0.251なら許可
# マルチキャスト DNSとは、米アップルが開発したゼロ・コンフィギュレーション(=何の設定も行わず機器を使用可能にする)技術「Bonjour」において、
# ホスト名の探索に使われている。
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
# プロトコルがUDPかつ、送信先ポートが631(Internet Printing Protocol)なら許可
# IPPとは、印刷データの送受信や印刷機器の制御を行うプロトコル。
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
# プロトコルがTCPかつ、送信先ポートが631(Internet Printing Protocol)なら許可
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
# すでに接続されている通信なら許可
# ESTABLISHED(接続済み)または、RELATED(関連あり)
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 新規の接続かつ、プロトコルがTCPかつ、送信先ポートが***(ssh)なら許可
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport ***  -j ACCEPT
# 新規の接続かつ、プロトコルがTCPかつ、送信先ポートが80(http)なら許可
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80        -j ACCEPT

# ここまでで許可されなかったパケットはICMP-HOST-PROHIBITED を返して拒否
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

# 以上を登録
COMMIT

「第1回 日本Seleniumユーザーコミュニティ勉強会」に参加してきました

「第1回 日本Seleniumユーザーコミュニティ勉強会」に参加してきました。

イベントの公式ページはこちら。
http://kokucheese.com/event/index/117476/

 

内容は早速こちらの板垣さん、somatさん他多数の方がまとめてくださってますね。
http://itagakishintaro.blogspot.jp/2014/01/1-selenium.html
http://somat.hatenablog.com/entry/2014/01/19/005230

 

以下所感。

招待講演のJaso Huggings (@hugs) さんのプレゼンが、技術抜きにしてもとても面白かった。(各所で笑いが起きていた。)
データの見せ方もうまい。
例えば、seleniumのトレンドの高まりを感じさせるデータとして求人サイトindeed.com(http://www.indeed.com)でのヒット件数が急速に伸びていることをグラフにするとか。

 

f:id:yabit:20140119145217p:plain


http://www.indeed.com/jobanalytics/jobtrends?q=selenium&l=

seleniumの内容ががっつり聞きたい!と思って参加した参加者にとってはちょっと不十分だったかもしれないけど、話としておもしろい話を聞けたのは満足だった。

企画・運営に携わった方々、貴重なイベントを企画していただきどうもありがとうございました。