うさぎ組

ソフトウェア開発、チームによる製品開発、アジャイル、ソフトウェアテスト

ソフトウェアテストを勉強しはじめて10ヵ月でやったこと

").prependTo(".entry-content"); } //スクロールを滑らかにする $('.sectionList a').on("click", function() { $('html,body').animate({scrollTop: $(this.hash).offset().top}, 600); return false; }); });

WACATE 2011 夏に誘われたのがキッカケでソフトウェアテストを勉強しはじめて10ヵ月くらいがたちました。
先日、わんくま名古屋でソフトウェアテストの勉強法についてLTしたのですが、みなさんにいろいろ聞かれたのでここにまとめておこうと思います。
本当は1年の区切りで書こうと思ったけど、まぁいいでしょう。


追記ここから
わんくまで発表したLT資料はこちらです

追記ここまで

こういうのを書くときに時系列で書くべきか、コツを書くべきか悩みますね。
でも、みんなが知りたいのは僕の歴史じゃなくってコツだと思うので後者で書きます。前者はTwitterとか勉強会とかお食事とかお茶でもしているときに聞いてみてください。
以下では多くの書籍を紹介していますが、僕がこの10ヵ月で読んだ本。っていうだけです。もちろんオススメです。
ですが、ほかにも素晴らしい書籍はたくさんあります。もし、これもオススメですよってあればおしえてください。


前提がひとつと基本が5つあります。
前提
「常に疑問を持つ」

基本

  • 書籍を読む
  • JaSSTの資料を読む
  • Webの連載記事を読む
  • Twitter/MLで質問してみる
  • イベントに参加する


です。
常に疑問を持ちましょう。なぜ、テストをしなければいけないのか。なにをテストしたいのか。書籍にある通りのテストで本当に正しいのか。
その気持ちをわすれずに基本に沿って勉強をすすめます。


JaSSTの資料、Web

(書籍のリンクが大量なので、先に書いておきます。)
自分のブログだけど、よくまとまっているので。 ->「 テスト戦略、設計、手法、技法などなどのリンクをまとめてみた - うさぎ組」

書籍を読む

ソフトウェアテスト初心者向け
マインドマップで始めるソフトウェアテスト、はじめて学ぶソフトウェアのテスト技法はおさえておきたいところです。


マインドマップから始めるソフトウェアテスト

マインドマップから始めるソフトウェアテスト

はじめて学ぶソフトウェアのテスト技法

はじめて学ぶソフトウェアのテスト技法

ソフトウェア・テストの技法 第2版

ソフトウェア・テストの技法 第2版

ソフトウェアテスト教科書 JSTQB Foundation 第3版

ソフトウェアテスト教科書 JSTQB Foundation 第3版



これらを読んだら、あとは続きの書籍や、JaSSTの資料をを読み漁ります。そして、自分なりに理解できるまでなんども読み直しましょう。
できればよんだあとにマインドマップとか書くといいです。理解度がわかります。
では、書籍の続きを。


ソフトウェアテスト初心者向けが終わったら読みたい


ソフトウェア・テスト PRESS 総集編

ソフトウェア・テスト PRESS 総集編

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法

ソフトウェアテスト技法

ソフトウェアテストHAYST法入門 品質と生産性がアップする直交表の使い方

ソフトウェアテストHAYST法入門 品質と生産性がアップする直交表の使い方

ビューティフルテスティング ―ソフトウェアテストの美しい実践 (THEORY/IN/PRACTICE)

ビューティフルテスティング ―ソフトウェアテストの美しい実践 (THEORY/IN/PRACTICE)

Making Software ―エビデンスが変えるソフトウェア開発

Making Software ―エビデンスが変えるソフトウェア開発

ソフトウェア品質知識体系ガイド―SQuBOK Guide

ソフトウェア品質知識体系ガイド―SQuBOK Guide

セーフウェア 安全・安心なシステムとソフトウェアを目指して (IT Architects’Archive)

セーフウェア 安全・安心なシステムとソフトウェアを目指して (IT Architects’Archive)

ソフトウェア開発の定量化手法 第3版 ?生産性と品質の向上をめざして?

ソフトウェア開発の定量化手法 第3版 ?生産性と品質の向上をめざして?

パーフェクトソフトウエア

パーフェクトソフトウエア


Software Testing ManiaX (WACATE が発行している同人誌。WACATE, JaSST, コミケで買えます。かなり良書)



自動化することで自分たちの仕事をクリエイティブに

継続的インテグレーション入門

継続的インテグレーション入門

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))



テストエンジニアなら綺麗な自動テストを書こう

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))

Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))

データベース・リファクタリング

データベース・リファクタリング

  • 作者: スコット W アンブラー,ピラモド・サダラージ,梅澤真史,越智典子,小黒直樹
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2008/03/26
  • メディア: 単行本
  • 購入: 10人 クリック: 211回
  • この商品を含むブログ (53件) を見る


考え方

いかにして問題をとくか

いかにして問題をとくか

デザインのためのデザイン

デザインのためのデザイン



ツールの入門

入門Mercurial Linux/Windows対応

入門Mercurial Linux/Windows対応

入門Git

入門Git

Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Redmineによるタスクマネジメント実践技法

Redmineによるタスクマネジメント実践技法



システムを考えるために

システムアーキテクチャ構築の原理 ITアーキテクトが持つべき3つの思考 (IT Architects’Archive ソフトウェア開発の実践)

システムアーキテクチャ構築の原理 ITアーキテクトが持つべき3つの思考 (IT Architects’Archive ソフトウェア開発の実践)

システムアーキテクチャ構築の実践手法 (IT Architects’ Archive)

システムアーキテクチャ構築の実践手法 (IT Architects’ Archive)



要求を考えるために

[改訂第2版] [入門+実践]要求を仕様化する技術・表現する技術 -仕様が書けていますか?

[改訂第2版] [入門+実践]要求を仕様化する技術・表現する技術 -仕様が書けていますか?

「派生開発」を成功させるプロセス改善の技術と極意

「派生開発」を成功させるプロセス改善の技術と極意



ユーザー視点で考えるために

検索と発見のためのデザイン ―エクスペリエンスの未来へ

検索と発見のためのデザイン ―エクスペリエンスの未来へ

デザイニング・インターフェース 第2版 ―パターンによる実践的インタラクションデザイン

デザイニング・インターフェース 第2版 ―パターンによる実践的インタラクションデザイン



開発プロセスや運用からプラクティスを得るために

Release It! 本番用ソフトウェア製品の設計とデプロイのために

Release It! 本番用ソフトウェア製品の設計とデプロイのために

Manage It! 現場開発者のための達人式プロジェクトマネジメント

Manage It! 現場開発者のための達人式プロジェクトマネジメント

アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング (THEORY/IN/PRACTICE)

アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング (THEORY/IN/PRACTICE)

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション


Twitter/ML

あとはTwitterで「きょんくんのソフトウェアテスト界隈のTwitterアカウントリスト」のリストにのっている人とかに質問を投げてみるといいと思います。
MLならTEFというテストコミュニティがあります。


イベント

JaSSTというテストのシンポジウム、WACATEというテストの合宿イベント、SQiPという品質のシンポジウムなどなどあります。
また勉強会もおこなわれています。TEFにそういったイベント情報が流れてくることも多いので、入会をオススメします。
あとはTDDBC / SCMBC / ScrumBC といった開発の基礎になるようなイベントもいいと思います。
勉強会がない場合は自分でやってみるといいんじゃないですかね!w



実体験として

上にあげた書籍、JaSSTの資料の7割くらい、IPAの資料、SQiPの連載記事などをだいたいこの10ヵ月で読みました。
あとはTDDBC in Tokyo 1.5, 1.6へ参加者、サポーターとしてそれぞれ参加。
WACATE2011夏、WACATE2011冬への参加。
JaSST'11 Tokaiでのポスターセッション発表。
Twitter/TEFでの議論。
Twitterの議論はここらへんから。->


「単体テスト/結合テストなんて存在しない - Togetterまとめ」
「テスト観点まとめ - Togetterまとめ」
「TEFに燃料投げたら秋山さんが答えてくれた - Togetterまとめ」
「僕が勉強中のNGTの理解度について - Togetterまとめ」


といった感じです。こう振り返るといろいろやったんだなぁって気がします。約1年前まではテスト技法って言葉すら知りませんでした。



TwitterやTogetterを見てもらうとわかるのですが、僕は最近は、にしさんが考案したNGTについて熱中しています。
なので、より効率がよく抜けがなく、変更に強いテストとはどう構築できるのかについて考える日々です。とっても楽しいですよ。



以上が、僕がこの10ヵ月で試したことです。みなさんのなにかのお役にたてば幸いです。
また、僕の今後に必要そうなことをアドバイスしてくださると非常に助かります。