-オープンソースのSNSエンジン OpenPNEプロジェクト-

先週のHOUOU 2012/02/20版

02 / 21 火曜日 2012

OpenPNE3.7開発シリーズ(HOUOU)の一週間の進捗状況を分かりやすくお伝えします。

HOUOUレポジトリのソースを本線にマージ

HOUOUでは通常開発に使っている、http://github.com/openpne/OpenPNE3ではなく、http://github.com/houou/HOUOU を使っていました。

HOUOUの開発チームはスマートフォンという未知の領域の研究を行うために、レポジトリを分けてこれまでやってきました。
※開発に不慣れだという点もあります。

研究がほぼ一段落ついたので、HOUOUレポジトリの役割は終わりました。
これら開発ソースの成果の大部分を、OpenPNEの本線にマージすることができました。

以後の開発プロセスはopenpneレポジトリを使い、従来のやり方で進めていきます。

OpenPNEの開発版バージョンである、3.7.1 3.7.2というバージョン番号を使って行きます。

なお、これらのリリースとは別にでも環境としての月刊HOUOUもあと2号分提供の予定です。

スマートフォンAPIの自動テスト手法が確立

HOUOUの最大の目玉であるスマートフォン対応、このバックエンド実装であるスマートフォンAPIのテストスタイルが確立しました。
symfonyのlimeを使った単体テストを書き、品質向上を行います。

テストはコミットごとにTravis-ciで自動的に検証される仕掛けになっています。
TravisのサイトでOpenPNEのテストがかかっていたら、オールグリーンになることを祈っていてください。

プラグインの自動テストも可能に

また、OpenPNEに提供されるプラグインも単独でTravis CIでのテストが行えるような機構を作りました。
opSheet2ProfilePlugin などで検証を進めています。

基本レイアウトの単体テスト

スマートフォンでは、LOGIN、HOME、MEMBER、COMMUNITY、SNSという5つの基本レイアウトが有ります。
これらの基本レイアウトが単体での動作確認を行います。
テスト手法の詳細については、手嶋のブログで解説しています。

これらの基本レイアウトの中に、メッセージやフレンドリスト、タイムラインなどの個々の機能のガジェットを配置して、
全体のUIを表現します。

ガジェットをひとつも積んでいない素の状態のレイアウト単体のテストを行えるようにします。
※これを単体テストというのかがわかりませんが。。

スマートフォンのUIにはJavaScriptを多く含むため、symfonyのテスト戦略は使えません。
JavaScriptのテストにはQUnit + mockjaxがいいかな?なんて考えています。

※HEADLESS環境をつくるのがたいへんそうなので、Travis-ciでの実行はまだ先になりそうです。

個々のガジェットの単体テスト

ガジェットごとも動作テストを行いたいですが、まだ研究を始めたばかり、
レイアウトのテストと同じ手法を使うなら、ひとつのガジェットに対して、テスト用のガジェットが付属する、という形になります。
こちらは、3月の本格的なテストが始まる前までに、やり方を決めます。

テスト用の優れたデータをつくる

ソーシャルネットワークのテストはとても難しいです。
人間関係や情報の公開範囲、コミュニティの参加状態などを複雑に表現する必要があります。

これまでOpenPNE及びプラグインの開発で共通に使える、オフィシャルのテストデータというものが存在しませんでした。
品質向上のためにはなくてはならないのでデータをつくることにしました。

100人位のデータがいいだろうなということで、百人一首のデータを採用することにしました。
目下作成中です。ID1番は天智天皇です。自分の句をつぶやいています。天皇コミュニティに参加します。
全員とフレンドリンクです。

他にも、公家コミュニティや、親王同士はフレンドリンクなど、独自のルールを作りながら、ソーシャルグラフを形成していきます。
本当は源氏物語でやりたかったんですが、自分がよく知らないのと、人間関係が複雑でドロドロし過ぎじゃないか?ということでやめました。

その他のブログ記事

ページの先頭に戻る