IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Inst. Tech View

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第25回 ソフトウェアテスト 2013年5月

 今回のInst.Tech Viewは、ソフトウェアテストについての話題です。

 ソフトウェアテストとは、作成したプログラムを実行し、正しく動作するかどうか確認する作業のことです。ソフトウェアテストは、プログラム中の欠陥(バグ)を発見して修復することを目的として実施されます。

 ソフトウェアテストは小さなプログラムであれば人間が手作業で行うことも可能ですが、大規模になるとテスト項目の管理やプログラムを変更したときの影響範囲の把握などが困難となります。

 そこで必要なのがテストフレームワークです。
 テストフレームワークは、テストに用いられるプログラムの作成やテスト結果の出力など、ソフトウェアテストをプログラムで自動化するために必要な機能を備えたソフトウェアです。

 Rubyには《Test::Unit》と呼ばれるテストフレームワークが標準で添付されています。これはユニットテスト(または単体テスト)と呼ばれるテスト手法に対応したフレームワークです。

 ユニットテストはソフトウェアのテスト可能な最小の部品単位でテストを行う手法であり、Ruby以外にもSmalltalk用の《SUnit》やJava用の《JUnit》などさまざまな言語に対応したフレームワークが存在します。
 これらを総称して《xUnit》と呼びます。

 また、近年は《テスト駆動開発(Test Driven Development:TDD)》や、それをベースとした《振舞駆動開発(Behaviour Driven Development:BDD)》といったソフトウェアテストを実施することを前提としたソフトウェア開発手法が注目されており、ソフトウェアテストの重要性がますます高まっていることが伺えます。

 テスト駆動開発(TDD)とは、プログラムに必要な各機能について最初にテストコードを用意し(テストファースト)、そのテストが成功する最低限の実装を行った後プログラムの動作(振る舞い)を変えないようにコードを洗練(リファクタリング)する手法です。

 これにより、ソフトウェアが正しく動作することを毎回検証できるだけではなく、ソフトウェア開発の進捗の明確化、仕様変更への対応の容易さといった利点があります。

 もう一つの振舞駆動開発(BDD)はテスト駆動開発から派生したものです。BDDはテストファーストとリファクタリングを実践する点についてはTDDと同様ですが、ソフトウェアに期待する振る舞い(要求仕様)を自然言語に近い形でテストコードを記述できる点が異なります。

 BDDを支援するテストフレームワークを使用すれば、TDDを実践して、且つテストコードを要求仕様のドキュメントとして使用することができます。
 RubyではBDDを支援するテストフレームワークとして《RSpec》が有名です。

 《RSpec》はプログラムの振る舞いを記述するためのドメイン特化言語(Domain Specific Language:DSL)です。ドメイン特化言語とは、C言語やJavaなどの汎用言語とは異なり、特定の目的のために設計されたプログラミング言語のことを言います。RSpecにはプログラムの振る舞いを自然言語のように記述するための機能が備えられています。

 RSpecを使用したテストコードの例を以下に示します。

|describe Stack do
|  context "when new" do
|    it "is empty" do
|      stack = Stack.new
|      stack.should be_empty
|    end
|  end
|end

 このテストコードは、Stackクラスのインスタンスを生成した時に空であることを期待するテストです。RSpecは《itメソッド》や《shouldメソッド》等を用いてなるべく自然言語に近い形で記述できるようになっています。

 RSpecはRubyで開発されたDSLであり、さらにRSpecのテストコードの記述ににもRubyの文法を用います。RSpecのように開発言語そのもので記述できるDSLを特に内部DSLと呼びます。

 弊社では現在、RSpecを使用したRailsアプリケーションのテストについての新コースを準備中です。開催まで今しばらくお待ちください。

■■■ Rails関連コースの詳細情報 ■■■  ※価格はメルマガ配信時点の価格です。

R018:Ruby on Rails Webアプリケーション開発入門
   〜Rails 3 技術者認定ブロンズ試験対応〜
期間:3日間
価格:\157,500(税込み)

R030:Rails 3 技術者認定ブロンズ試験対策
   〜目指せ!Rails技術者認定ブロンズ試験 合格!!〜
期間:1日間
価格:\39,900(税込み)

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes