Test Confessions: A Study of Testing Practice for Plug-In Systems Michaela Greiler†, Arie van Deursen†, Margaret-Anne Storey‡ † : Delft University of Technology ‡ : University of Victoria 担当:山内寛己 株式会社アクセス 概要 • プラグインベースシステムのテストは非常に複雑で あり,テストが難しい – 数多くのプラグインとの相互作用(競合の確認) – 異なるバージョン(プラグイン,プラットホーム),設定など • プラグインベースシステムにおけるテストにおいて, テストエンジニアおよび,開発者の意識と行動の実 態をより理解する Research Question • RQ1: プラグインベースシステムのテストにおいて,広く行わ れているテストプラクティスは何か.そのプラクティスは非プ ラグインシステムと異なるのか. • RQ2: プラグインのアーキテクチャがプラグイン特有のテスト アプローチにつながるのか.何がテストを困難にさせるのか. • RQ3: プラグインベースシステムのテストを困難にさせる要因 は何か. • RQ4: プラグインのテストを支援する付加的な補償の戦略が あるのか. 調査対象とその採択理由 • 調査対象: – Eclipseプラグインとその開発コミュニティ • 採択理由: – 洗練されたプラグイン機構を持ち,数々のプラグインが広 く使われている.また,個々の開発規模が大きく,複雑で, 業務用途にも耐えうる – 大きな開発コミュニティを持ち,専門的知識を持つ開発者 が多い. – Eclipseコミュニティ全体がテストについて前向きに取り組 んでおり,プラグイン開発環境(PDE)が整っている. – プラグイン開発プロジェクトの多くがオープンソースで他 の研究者と議論もしやすい. 本論文の研究アプローチ 1. サーベイ: 一般的なプラグイン開発に関する情報とEclipseプラグイン に特化した情報の収集(開発フォーラムや文献などから) 2. インタビュー: 25人(18組織)の様々なドメインのEclipseプラグインエキス パート*に1~2時間のgrounded theory (GT)によるインタ ビューを実施 3. 会議で報告: 2.の結果,分析と見解をEclipseCon**で発表 4. アンケート: 3.の発表に対するフィードバックとアンケートに151人のエキ スパートから回答があった(そのうち,60%ほどが開発者). * 開発者12名,プロジェクトリーダ11名,テスタ1名,テストマネージャ1名 **http://www.eclipsecon.org/2011/sessions/?page=sessions&id=2207 Research Question • RQ1: プラグインベースシステムのテストにおいて,広く行わ れているテストプラクティスは何か.そのプラクティスは非プ ラグインシステムと異なるのか. – 非プラグインシステムとプラクティスは変わらない. – Eclipseコミュニティでは,unit testingが重要な役割を担っており,その ほとんど(およそ70%)が自動化されている.一方で,system testing, integration testing, acceptance testing は unit testing ほど頻繁ではな いが導入,自動化がされている. • RQ2: プラグインのアーキテクチャがプラグイン特有のテスト アプローチにつながるのか.何がテストを困難にさせるのか. – プラグインの性質がテストアプローチに与える影響はあまりない. – 拡張ポイントの使用やプラグインの組み合わせ,プラグインのバー ジョン,プラットホームのバージョンが特有のチャレンジになる. Research Question • RQ3: プラグインベースシステムのテストを困難にさせる要因 は何か. – 主な障壁は,不明確な説明責任や当事者意識,容易にテストするた めのインフラの欠如,テスト容易性が担保できない,テスト実施時間 の長さである • RQ4: プラグインのテストを支援する付加的な補償の戦略が あるのか. – ユーザや開発者をコミュニティに巻き込む.そのためには… • オープンなコミュニケーションが可能な環境の整備 – 機能拡張のリクエストやバグレポートの報告 – テスト環境やリソースの提供,self-hostingなど Resources • 文献[11]のTechnical Report: http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD -SERG-2011-010.pdf インタビューおよび,アンケートの質問内容や項目,その回 答の統計などのデータが掲載さている. • ICSE 2012の発表スライド: http://www.slideshare.net/mgreiler/icse-2012-testconfessions-a-study-of-testing-practices-for-plugin-systems Asking and Answering Questions about Unfamiliar APIs: An Exploratory Study Ekwa Duala-Ekoko and Martin P. Robillard (McGill University) 担当:吉田 則裕 奈良先端大 本研究の概要 • 大量のAPIの使い方を学ばなければ,開発を行うこ とができない時代になってきた. • 本研究では,被験者にAPIを使ったプログラミングを 行なってもらうことで,以下を調査した. – 開発者が,APIを使用する際に持つ疑問(question) – その疑問に答えることが難しい理由 • 実験結果を踏まえ,APIを用いた開発に必要と考え られるツールについて述べる 被験者とタスク • 被験者 – 著者らが所属する大学の学生20名 – 最低一年間のJava言語を使った開発経験 – 対象のAPIに詳しくない • タスク – タスク1:JFreeChart APIを使って円グラフを描く – タスク2:JAXPを使って,与えられたXMLスキーマにXMLフ ァイルが合っているか検証する – 時間制限は,35分間 – Eclipseを使用 – APIドキュメントとWebを閲覧可 データ収集の方法 • think-aloudプロトコル – タスクを解決する際に考えたことを言語化 • スクリーンキャプチャの録画 • 実験後インタビュー 分析結果 • 被験者がAPIを使用する際に持つ疑問を,20種類 発見した. • 更に,被験者が手戻りを起こすなど,解決の難しか った疑問を5つ特定した(抜粋). – 型XとYの関係は何か? – Publicコンストラクトを使わずオブジェクトを生成する方法 は? – メソッド呼び出しの結果,得られるものは何か? 考察 • 観察(抜粋) – 開発者が使用している型から直接アクセスできないが, 関連するAPIを発見することが難しい – APIの一部をクエリとして取り込むと,良いコード例を探し やすい – メソッド実行と例外の関係の理解が難しい • 実験結果から必要と考えられるツール – 開発者が使用している型から直接アクセスできないが, 関連するAPIの情報を提供する – タスクに関連する型の発見する – API間の関係を発見する How Do Professional Developers Comprehend Software? Tobias Roehm*, Rebecca Tiarks**, Rainer Koschke**, Walid Maalej* *: TU München, **: University of Bremen 担当:戸田 航史 福岡工業大学 概要 • プログラム理解については,これまで多くの研究で 様々な手法やツールが提案されてきた • しかし現実の開発者のプログラム理解における行 動や,利用されている手法やツールについてはほと んど知られていない – 特に納期等の実プロジェクトでのプレッシャーがかかる中 での行動についてはほとんど知られていない • そこで,開発者のソフトウェア理解に関する業務中 の行動の観察し,現実のプログラム理解行動の内 容を明らかにする – 研究と実践のギャップを埋める 貢献 1. 実環境でのプログラム理解戦略について詳細に記 述した 2. プログラム理解についての行動仮説をまとめた – これは応用研究やツール開発の助けとなる 3. 実験の手順や内容について詳細に記述した – 本研究の実験デザインは同種の実験でも利用できる • 開発者の振る舞いに関する研究での実験 実験環境 • 7企業28人の開発者に対し,作業内容の観察とイン タビューをそれぞれ45分行った – 観察対象作業はソフトウェア理解に関する業務 • 日常の業務を勝手に観察しているというスタンス – ただし観察時には,ある程度以上(45分以上)の規模のソフト ウェアを理解の対象にしてもらった • 観察とインタビューから,ソフトウェア理解で行われ る20の行動を特定し,そこから23の行動仮説を立て た S5:クローン作成による理解の回避と工数削減 1. コード変更の結果が予測できないとき,開発者は既存 コードをコピーすることで,プログラムの理解自体を避 けようとする – ある開発者はオリジナルのソースコードをリファクタリングする 代わりにコードをそのままコピーしていた • その開発者は「オリジナルのコードを改ざんするとどこに影 響が出るか分からないし,その影響は調べるのは時間が かかりすぎる」と述べている 2. 開発者は必要な情報を見つけやすいように統一された 構造のドキュメントを好む – ある開発者は「ドキュメントはコピーして使い回した方が統一性 が取れる」と述べている 3. 開発者は通常,ソフトウェアを理解することよりもタスク を完了することを優先する I6:現実の利用シナリオの有用性とその稀少性 1. 「エンドユーザがアプリケーションをどのように利用 するか」はプログラム理解において有用な情報源 である – 「ユーザのニーズのうち,アプリケーションで実装されてい るものはプログラムを理解する上で必要な情報である」と ある開発者は述べている 2. 多くの場合,1.の情報は存在しない – 「「アプリケーションをエンドユーザはどのように使うのか」 が不明である場合や,アプリケーションのドメインについ ての知識がほとんどないという状況は多々ある」とある開 発者は述べている
© Copyright 2024 ExpyDoc