JSTQB Foundation Level に合格しました

JUGEMテーマ:PHP
 

JSTQB Foundation Levelに合格しました


JSTQBというソフトウェアテスト界ではおそらく最もポピュラーな資格に合格しまして、
先日その合格証書が届きました。
これを機にJSTQBを取ろうと思った経緯や、JSTQBがどんなものか、どうやって勉強したのかを
少し振り返ってみたいと思います。

 
大西 建児,勝亦 匡秀,佐々木 方規,鈴木 三紀夫,中野 直樹,町田 欣史,湯本 剛,吉澤 智美
翔泳社
¥ 4,298
(2011-11-12)

Mark Fewster,Dorothy Graham,テスト自動化研究会,伊藤 望,玉川 紘子,長谷川 孝二,きょん
翔泳社
¥ 4,104
(2014-12-16)





合格証書!資格取得したのは応用情報技術者資格以来!

無事に合格して、上の合格証書が届きました。
それに同封されていたものを見てみると・・・
 

アイエエエエ!シール!?シールナンデ!?

JSTQBシール100枚が同封されていました・・・。
何に使えと!?
1枚でさえ用途不明なのに、100枚なのが破壊力ばつ牛ンです。


JSTQBとは

ソフトウェアテストの資格認定を行っているISTQB(International Software Testing Qualifications Board)という
国際的な組織がありまして、JSTQB(Japan Software Testing Qualifications Board)は
その組織に加盟している日本のソフトウェアテスト技術者資格認識を行う組織です。
そしてそこから発行される資格の名前が「JSTQB認定テスト技術者資格」という名前なのですが、
一般的に「JSTQB」と呼ばれているっぽいです。

JSTQBの資格はFoundation、Advanced、Expertの3レベルが存在してまして、
今回取得したFoundationレベルは、
ソフトウェア開発プロジェクトにおけるテストの役割だとか、
ソフトウェア開発における基本的な知識体系が問われるような内容となっています。

ソフトウェアテスト業界ではおそらく最もポピュラーな資格なのですが、
僕のいるWeb業界ではあまり取られることはないものだと思います。
JSTQB試験後に結構大き目なアンケート用紙を書かされるのですが、
「あなたのいる業界はどこですか?」という質問の答えにも、
Web業界なんて項目はありませんでした。


何故JSTQBを取ろうとしたのか

テストをやっていて、あれ?何でこれやってるんだっけ?とか、
なんとなくこのテストが必要な気がするけど理由はよく分からないとか、
そういう思いがあったりしたので、
一度テスト全体に関わる体系的な知識が得ておきたいと考えたためです。

合格してみてそこらへんが解決したのかって言えば、
正直なところそんなに・・・って感じなのですが・・・。

ただ全エンジニア共通のテスト標準知識を得たおかげで、
ソフトウェアテストという広い世界の地図を得て、
その地図で自分のいる位置がおぼろげに見えてきたような気がします。
(気がするだけかも


JSTQB Foundation Levelのシラバス

シラバスというか目次をそのまま持ってくると、こんな内容になっています。
 

1. テストの基礎
1.1. テストの必要性
1.1.1. ソフトウェアシステムの状況
1.1.2. ソフトウェアの欠陥の原因
1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割
1.1.4. テストと品質
1.1.5. テストの十分性
1.2. テストとは何か?
1.3. テストの 7 原則
1.4. 基本的なテストプロセス
1.4.1. テスト計画作業とコントロール
1.4.2. テストの分析と設計
1.4.3. テストの実装と実行
1.4.4. 終了基準の評価とレポート
1.4.5. 終了作業
1.5. テストの心理学
1.6. 行動規範
2. ソフトウェアライフサイクルを通じてのテスト
2.1. ソフトウェア開発モデル
2.1.1. V 字モデル
2.1.2. イテレーティブ-インクリメンタル開発モデル
2.1.3. ライフサイクルモデルの中のテスト
2.2. テストレベル
2.2.1. コンポーネントテスト
2.2.2. 統合テスト
2.2.3. システムテスト
2.2.4. 受け入れテスト
2.3. テストタイプ
2.3.1. 機能のテスト
2.3.2. 機能以外の特性のテスト
2.3.3. ソフトウェアの構造/アーキテクチャのテスト
2.3.4. 変更部分のテスト:再テスト、および回帰テスト
2.4. 保守テスト
3. 静的技法
3.1. 静的技法とテストプロセス
3.2. レビュープロセス
3.2.1. 公式レビューの活動
3.2.2. 役割と責任
3.2.3. レビューの種類
3.2.4. レビューを成功させるために
3.3. ツールによる静的解析
4. テスト設計技法
4.1. テスト開発プロセス 
4.2. テスト設計技法のカテゴリ 
4.3. 仕様ベース/ブラックボックスのテスト技法 
4.3.1. 同値分割法 
4.3.2. 境界値分析
4.3.3. デシジョンテーブルテスト
4.3.4. 状態遷移テスト
4.3.5. ユースケーステスト
4.4. 構造ベース/ホワイトボックスのテスト技法 
4.4.1. ステートメントテストとカバレッジ
4.4.2. デシジョンテストとカバレッジ
4.4.3. その他の構造ベース技法
4.5. 経験ベースのテスト技法 
4.6. テスト技法の選択 
5. テストのマネジメント
5.1. テスト組織
5.1.1. テスト組織と独立性
5.1.2. テストリーダとテスト担当者の作業
5.2. テスト計画作業と見積り
5.2.1. テスト計画作業
5.2.2. テスト計画策定
5.2.3. 開始基準
5.2.4. 終了基準
5.2.5. テスト見積り
5.2.6. テスト戦略、テストアプローチ
5.3. テスト進捗のモニタリングとコントロール
5.3.1. テスト進捗モニタリング
5.3.2. テストレポート
5.3.3. テストコントロール
5.4. 構成管理
5.5. リスクとテスト
5.5.1. プロジェクトリスク
5.5.2. プロダクトリスク
5.6. インシデント管理
6. テスト支援ツール
6.1. テストツールの種類
6.1.1. ツールによるテストへの支援
6.1.2. テストツールの分類
6.1.3. テストマネジメントの支援用ツール
6.1.4. 静的テスト支援ツール
6.1.5. テスト仕様の支援ツール
6.1.6. テスト実行と結果記録の支援ツール
6.1.7. 性能・モニタリング支援ツール
6.1.8. 特定のテストに対する支援ツール
6.2. ツールの効果的な使い方:利点とリスク 
6.2.1. ツールでテストを支援する利点とリスク 
6.2.2. 個別ツールの使用上の注意
6.3. 組織へのツールの導入 


「ソフトウェアに何故欠陥が発生するのか、どう防ぐのか」といったソフトウェアそのもの話や、
「ソフトウェア開発プロジェクトにおけるテストの役割、計画、テストマネジメント」とか開発プロジェクトの話や、
「テストレベル、テスト技法、テストツール」といったテスト設計・テスト実装の話など、
さすが標準知識だけあって非常に広範囲な内容となっています。
結構、基本情報技術者や応用情報技術者とも被る内容は多かったと思います。

逆にアジャイルのような繰り返し型開発においてどうやってテストをして品質を担保するのかとか、
具体的なシーンにおける知識は提供してくれません。
最近会社の人に自動テストと人力テストでどう分担するか話で、そういうのはJSTQBにはなかったの?
と聞かれたこともあったのですが、そういう内容は無かったです・・。


僕の勉強方法

試験会場で周囲を見ると、ほとんどの人は書籍による勉強をしていたのですが・・・
ソフトウェアテスト教科書 JSTQB Foundation 第3版

僕の場合は書籍は買わずにテス友という無料のスマホアプリでやっていました。
無料なのにすごくよくできたアプリだと思います。
模擬試験問題の数も多かったですし、JSTQBシラバス全文収められていて、
さらに試験問題とシラバス関係箇所にリンクが張られていて、相互参照しながら勉強できました。
本当に、これ1つで勉強は十分でした。

他の人が4,5千円払って、熱心に教科書で勉強してるなか、スマホいじってるなんて!!!
なんて思うとちょっと気が引けてきちゃうんですけど、
勉強って問題に答えてすぐフィードバックが帰ってくるような方法の方が頭に入りやすい気がするんですよねー・・・。
自分で問題の答え合わせしてると、
問題用紙と答案を右見て左見てで作業するのがひどく無駄なコストに思えてしまいます。


今後のテストはこうしていきたい

JSTQB見るとテストで検証する項目って、やっぱり仕様から作られるんですよね。
当然です。当たり前です。
正となるシステムの挙動が定義されているから、それとのギャップが計測できるようになるんです。
それがテストです。

それと比べると今の仕事は仕様がどこにも定義されておらず、
人の脳みその中にだけあったりするんですけど、それすらもだいぶ怪しいレベルだったりします。
仕様の定義から始めなきゃいけないんだなー、と思って途方のなさを感じているんですけど、
アジャイルで開発しているので、やっぱり自動テストによって仕様を定義したいんですよね。
(アジャイルだから自動テスト、ってのはかなり途中の経緯を省いて乱暴に書いてます・・・。飛躍しまくりに見えたらすいません。)
というわけでシステムテスト自動化標準ガイドを読み始めるのであった・・・。


気づいたらものすごい長い記事になってた・・・。
ただ合格した!って書きたかっただけなのに。

スポンサーサイト

コメント