ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

TABOK粗読による自動化の座学 - まえがき

TABOK

 TAIのサイトからTABOKガイドを購入するプロセスを紹介するだけで、アメリカから海を渡ってきたCD-ROMを死蔵するのはもったいないので、のろのろ読んでいます。

www.kzsuzuki.com ぼくの英語読み速度は決して速くないのですが、TABOKの英語は読みやすいです。

 まず、文章が入り組んでいない。文中のカッコ書きや、関係代名詞多発の文が少ないです。また、文章の構成が、まず箇条書きした後にそれぞれの要素を深掘り、という構造を再帰的に繰り返しているので、最初の箇条書きを見て意味が理解できれば深掘りは読み飛ばせばいいし、わからない要素があればその部分だけ読む、という進め方がしやすいです。
 ということで、読んだ内容を割とざっくばらんすぎる感じで紹介してみます。正しい理解は、TABOK研究会のテストオートミターなみなさんが教えてくれるでしょう・・・。

セグメント1: TABOKガイドイントロ

 TABOKガイドは、テスト自動化エンジニアのための指針だよ!F-TAP(Functional Test Automation Professional)認定のテキストとしても使えちゃうかも!・・・あ、でもすべてが書いてあるわけじゃないから自分で資料を補完しろよな。その資料も、巻末の参考文献に載せてあるよ!・・・あ、でもそれもあくまで代表的なものだから、自分の責任で探せよな。というツンデレな感じの導入です。

スキルカテゴリー

 まず、スキルを大きく「macroscopic」および「microscopic」に分けています。macroscopicはテストリーダー向け、microscopicは自動化エンジニア向けですね。
 さらにマクロとミクロでそれぞれ7つと5つ、合わせて12のスキルカテゴリーを定義しています。これらの概要は、「TABOK」でgoogleペイジランク1位のしんすくさんのblogで紹介されています。

d.hatena.ne.jp自動テストと手動テスト

 TABOKガイドはもちろん自動化を推奨していますが、自動化に寄せられる幻想には慎重な態度ですし、手動テストならではのメリットもしっかりフォローしています。
 手動テストの強みは、人間の「学習」と「判断」の能力によるものです。たとえばパターン認識ですね。また探索的テストのように、状況に応じて臨機応変にやり方を変えていけるのも人間ならでは。自動テストでは基本的に、プログラムされたことしかできません。
 一方で自動テストの強みは、「同じことを」「何度も」「素早く」「夜中でも」「三六協定も気にせず」やってくれる点です。場合によってはそれを「並行して」やってくれます。
 ただ、自動テストを設計・実装するのも、結果を判定するのも、やはり人間であるという認識は重要です。

ロールと責任

 しんすけさんの訳にならって「ロール」としておきました。
 自動テストに関わるロールは、主に以下の5つです。しんすくさんのエントリではあえて英語のまま残したとのことでしたが、確かに日本語にしづらい。特に4つ目が謎。相互網羅調停者
  1. Team Lead
  2. Test Engineer
  3. Lead Automation Architect
  4. Cross Coverage Coordinator
  5. Automation Engineer
 テストチームにおけるそれぞれの位置づけをイメージしてみましょう。
 まず、テストチーム全体のリーダーが、テスト工程の計画・管理を行います。Test Leadはテスト自動化をまとめるロールであり、自動化の戦略・方針やリソース配分を考える人ですが、立場上、テストチームリーダーが兼任することも多いでしょう。
 自動テストのアーキテクチャを考えるのは、Lead Automation Architectの仕事。そして、個別の自動化サポートアプリケーションを用いてアーキテクチャを実装に落としこむのが、Automation Engineerです。
 Test Engineerは従来の手動テストを担当するけど、どのテストを自動化の対象にするかの検討には、仕様に精通しているこの人たちの知識は必須。よって、彼らがそのままAutomation Engineerを兼ねることもあります。
 Cross Coverage Coordinatorは、自動化の流れが始まったら、それが組織の中で最適化されているかを確認したり、維持のためのフローやルールなどを決めたりする責任がある。まとめ的な仕事なので、Lead Automation Architectが兼務することも。

ロールとスキルカテゴリー

安心院さん。 さて、Segment 2以降では12のスキルカテゴリーが解説されるわけですが、上の5つのロールが、それぞれどのスキルを習得しているべきかが定義されています。そこで、スキルカテゴリーとロールの関係を、表にしてみました。
 なおカテゴリーの訳はしんすくさんとちょっと違いますが、単なる好みです。特にカテゴリー9の「object」を、しんすくさんは「目的」と訳しているところがあり、一方ぼくは「対象」と訳してみましたが、両方違う気がする。カテゴリー9を具体的に説明しているこちらのエントリのように、「オブジェクト」とそのまま訳すのが正しそう。いかがでしょうか。

  カテゴリ↓ ロール→
1 テスト自動化の役割      
2 テスト自動化の種類とインターフェース      
3 テスト自動化のツール      
4 テスト自動化フレームワーク    
5 自動テストのフレームワーク設計        
6 自動テストのスクリプトのコンセプト  
7 品質属性の最適化      
8 プログラミングのコンセプト    
9 自動化の対象    
10 デバッグの技術    
11 エラー処理    
12 自動テストのレポートと分析    
 何と言いますか・・・
 Lead Automation Architectさんの激務が予想されてならない・・・。安心院さんも驚きのスキルコンプリート。