• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Twitter4Jとテスト
 

Twitter4Jとテスト

on

  • 6,642 views

 

Statistics

Views

Total Views
6,642
Views on SlideShare
4,870
Embed Views
1,772

Actions

Likes
12
Downloads
9
Comments
0

10 Embeds 1,772

http://samuraism.jp 904
http://d.hatena.ne.jp 802
https://twitter.com 37
http://freerss.net 9
http://webcache.googleusercontent.com 9
http://s.deeeki.com 5
http://pinterest.com 2
http://tweetedtimes.com 2
http://131.253.14.98 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Twitter4Jとテスト Twitter4Jとテスト Presentation Transcript

    • Twitter4Jとテスト @yusuke#atest_hack Yusuke Yamamoto
    • ↑を開発しています Java用Twitter APIライブラリ サポートプラットフォーム • JDK1.4.2∼ • Google App Engine • Android#atest_hack Yusuke Yamamoto
    • Twitter4Jとテスト• Twitter4Jの開発・テスト環境• Twitter API1.1対応• (時間があまれば)Androidの本当にあった怖い話#atest_hack Yusuke Yamamoto
    • Twitter4Jの開発で利用しているツール IntelliJ IDEA: github / Jiraに対応 JUnit: テストツール Maven: ビルドツール Jira: issue管理ツール スライドに登場するロゴ、製品名は各社、各コミュニティの登録商標です#atest_hack Yusuke Yamamoto
    • Twitter4Jの開発で利用しているツール Maven Central Repository 2008年6月∼ Hudson / Jenkins: CIツール 2009年3月∼ 2011年2月∼ github: ソーシャルコーディングハブ 2009年4月∼ Sonatype Nexus: Mavenプロジェクト管理 2010年1月∼ スライドに登場するロゴ、製品名は各社、各コミュニティの登録商標です#atest_hack Yusuke Yamamoto
    • Twitter4Jの開発環境 release:perform git push origin master oss.sonatype.org service hook promote開発マシン CIサーバ github.com repo1.maven.org#atest_hack Yusuke Yamamoto
    • Android環境のテスト#atest_hack Yusuke Yamamoto
    • Android環境のテスト• AndroidはJavaじゃない• DalvikはJVMじゃない 参考: Androidの本当にあった怖い話 http://www.slideshare.net/yusukey/android-6595931#atest_hack Yusuke Yamamoto
    • Android環境のテスト• Twitter4JのAndroid環境のテストの現状 ‣ 報告があれば直す ‣ リグレッションテストはしていない• Android環境のテストも自動化すべき ‣ Android Emulator Plugin エミュレータのインストール/実行、 OSバージョン、スクリーンサイズ別のテストなどが簡単#atest_hack Yusuke Yamamoto
    • Twitter4Jとテスト#atest_hack Yusuke Yamamoto
    • Twitter4Jとテスト• Twitter4Jのテスト • APIの疎通確認 • ドキュメント通りの挙動をしているか確認 • 仕様変更(アナウンスなしに変更になることも)に対応#atest_hack Yusuke Yamamoto
    • Twitter4Jとテスト• Twitter4Jを使うアプリケーション • テスト不要 - 非ビジネスロジック ‣ パラメータ、レスポンスの型 ‣ APIコール失敗時のリトライ • 要テスト - ビジネスロジック ‣ 正常系 ‣ 異常系 • レートリミット到達#atest_hack • API呼び出し失敗時の挙動 Yusuke Yamamoto
    • テストの目的• ソフトウェア品質の向上、担保• 品質を保つために他に出来ること・・ • コンパイラにチェックさせる • メトリクス分析#atest_hack Yusuke Yamamoto
    • • 来週本が出ます データ指向のソフトウェア品質マネジメント メトリクス分析による「事実にもとづく管理」の実績#atest_hack Yusuke Yamamoto
    • Twitter4JをTwitter API1.1 に対応させてみた @yusuke#atest_hack Yusuke Yamamoto
    • Twitter API 1.1の主な変更点 • レートリミット方式の更新 • いくつか新しいAPIの導入 • エンドポイントのベースURLの変更http://api.twitter.com/1.1/users/show.json?screen_name=yusuke • 全APIが要OAuth認可に • いくつかのAPIが廃止 • いくつかのAPIが追加 #atest_hack Yusuke Yamamoto
    • 今回のフォーカス • レートリミット方式の更新 • いくつか新しいAPIの導入 • エンドポイントのベースURLの変更http://api.twitter.com/1.1/users/show.json?screen_name=yusuke • 全APIが要OAuth認可に • いくつかのAPIが廃止 • いくつかのAPIが追加 #atest_hack Yusuke Yamamoto
    • JUnitに期待すること• テストケースでAPI1.1非互換部分を洗い出せる OAuth認可せず呼び出している箇所 廃止されたAPIを呼び出している箇所#atest_hack Yusuke Yamamoto
    • 変更したコード#atest_hack Yusuke Yamamoto
    • 実際• テストケースひとつしか失敗しない#atest_hack Yusuke Yamamoto
    • わかったこと• Twitter API1.1でも依然OAuth認可なしに呼び出 せる(いまのところ)• Twitter API1.1で廃止されたメソッドもまだ呼び 出せる(いまのところ)#atest_hack Yusuke Yamamoto
    • わかったこと• Twitter API1.1でも依然OAuth認可なしに呼び出 せる(いまのところ)• Twitter API1.1で廃止されたメソッドもまだ呼び 出せる(いまのところ) ドキュメント通りの挙動になることに Twitter4Jが備えておく必要がある#atest_hack Yusuke Yamamoto
    • 現状できる対策(1)• 認可をを確認するコードを追加・テスト実行#atest_hack Yusuke Yamamoto
    • 現状できる対策(2)• 認可無しで呼び出すためのフィールドを削除• コンパイル#atest_hack Yusuke Yamamoto
    • 現状できる対策(3)• 廃止されたAPIを目チェック ・・・・・・・・・・・・#atest_hack Yusuke Yamamoto
    • まとめ• テストは品質向上・担保の「動的な」手段• 静的な手段も検討 • コンパイラにチェックさせる • 静的解析 • コードメトリクスで分析• 外部と接続する箇所は仕様に頼りすぎない#atest_hack Yusuke Yamamoto