- 表紙
- serverspec: 宣言的記述でサーバの状態をテスト可能な汎用性の高いテストフレームワーク
- 宮下 剛輔、栗林 健太郎、松本 亮介
- 所属はどう書くのがいいんだろう?
- 宮下 剛輔、栗林 健太郎、松本 亮介
- serverspec: 宣言的記述でサーバの状態をテスト可能な汎用性の高いテストフレームワーク
- 目次
- 本研究の概要
- サーバの構成管理とテスト手法
- 提案するサーバテスト手法
- 提案手法の評価
- まとめ
- 本研究の概要
- 研究の背景
- システムの大規模・複雑化
- 科学やビジネス領域における問題の複雑化
- サーバ設定をコードで記述する構成管理手法の登場
- 構成管理コードの複雑化
- 汎用プログラミング言語で構成管理コードを記述
- Test-Driven Infrastructureの必要性
- システムの大規模・複雑化
- サーバ構成管理とテスト手法
- 既存サーバ構成管理とテスト手法
- 構成管理ツールと密な単体テストツール
- 結合テストツールは以下のいずれか
- 構成管理ツールと密
- OS毎の違いはテストコードを書く人が考慮
- 既存テスト手法の問題点概要
- 構成管理ツールからの独立性
- OS・ディストリビューション汎用性
- 双方を満たすテストツールが存在しない
- 既存サーバ構成管理とテスト手法
- 本研究
- 汎用的かつ可読性の高いコードでテスト可能な手法の提案
- 構成管理ツール独立性
- OS・ディストリビューション汎用性
- 双方を満たす
- 汎用コマンド実行フレームワークと制御テストフレームワークを分離
- 制御テストフレームワークを容易に変更可能
- 汎用コマンド実行フレームワークを別用途に応用可能
- 汎用的かつ可読性の高いコードでテスト可能な手法の提案
- 研究の背景
- サーバの構成管理とテスト手法
- Test-Driven Infrastructureへの流れ
- CFEngineの登場からChefの登場
- Chefの登場によりTest-Driven Infrastructureの要請が高まる
- Test-Driven Infrastructureにおけるテスト手法の分類
- 単体テスト
- 結合テスト
- 受け入れテスト
- 従来テスト手法の問題点
- 以下のいずれかにあてはまる
- 特定の構成管理ツールに依存している
- OS・ディストリビューションの違いをテストを書く人が考慮する必要がある
- Test-Driven Infrastructureへの流れ
- 提案するサーバテスト手法
- 提案手法
- 汎用コマンド実行フレームワーク
- 構成管理ツール固有の振る舞いを抽出
- 振る舞いのテストに特化したAPIを定義
- 制御テストフレームワーク
- 宣言的かつ自然言語に近い記法で汎用コマンド実行フレー ムワークを操作するための記法の定義
- 記法内 の各命令と実際に呼び出す汎用コマンド実行フレームワー クのAPIメソッドをひもづけ
- 汎用コマンド実行フレームワーク
- 手法の概要
- 図で説明
- 手法の実装
- specinfraとserverspec
- コード例で説明
- 提案手法
- 提案手法の評価
- 従来手法のテストコードとの比較
- コード例を挙げて説明
- 定量的な評価は今後の課題
- (OSSとして公開されていること、任天堂などで採用されていること、Black Duck Open Source Rookies of the Year に選ばれたこと、などにも触れる)
- 従来手法のテストコードとの比較
- まとめと今後の予定
- まとめ
- 汎用コマンド実行フレームワークの定義
- 宣言的かつ自然言語に近い記法で汎用コマンド実行フレームワークを操作できる制御テストフレームワークを定義
- 構成管理ツール独立性とOS・ディストリビューション汎用性
- 今後の予定
- 定量的な評価
- 汎用コマンド実行フレームワークのテスト以外への応用
- まとめ