Flying Cat Penguin

ゆるゆる仕事、ソフトウェアテスティング関連のことについて綴ります。

「DMM.comを支えるデータ駆動戦」(2020)

DMM.comを支えるデータ駆動戦略

DMM.comを支えるデータ駆動戦略

新しめな本をたまには…ということで手に取ってみました。

データ駆動が表題として書かれていますが、
基本的にはトップダウンに経営戦略を立てるにはどうしたらよいか?という内容でした。
その上で意思決定に必要なデータをどのように得るか、製品開発としてはどうすべきかをまとめていました。
体系的に書かれているので、DMM.comがどのように動いているのかを知りたいという方には良い書籍化と思います。

「 オブジェクト指向UIデザイン」(2020)

オブジェクト指向ということで今回も手に取ってみました。

後半はワークが多かったですが、基本はタスク指向UI VS オブジェクト指向UIという話でした。
何をやるかを最初にUIにつけるのではなくまず物を認識させましょうというのが大体のお話。

確かに最初にツールなどを作るときに「動詞」のボタンばかりを羅列させていしまいますが、
結構何がそうなるのかわからないこともあります。
そのため、まずはどんなモノなのかを明示することは確かに納得でした。

UI設計に興味がある方は手に取ってもいいかもしれません。

テスト開発の第一歩としてのASTERテスト設計コンテスト参加

はじめに

こちらは、ソフトウェアテスト Advent Calendar 2020 - Qiita22日目(2020年12月)の記事です。
21日目の記事はこちらの松谷さんです。

※注意点:このブログは一個人としての私見です。
 ASTERテスト設計コンテストの実行委員、U-30審査委員の意見ではないことをご了承ください。

今回の目的

今回も例年通り、ASTERテスト設計コンテストの宣伝です。

ASTERテスト設計コンテストとはなにか

aster.or.jp

ASTERテスト設計コンテストはテスト設計の良さを競うコンテストです。新人や若手にはテスト設計を学ぶ場として、シニアには自分ちのテスト設計を試す場として参加されています。

今年のコンテストはどんなだったか

今年は初のオンライン予選&決勝でした。
また、私としても、実行委員兼U-30審査委員として初の参加でした。

いろいろと議論はありますが、今年はコロナの影響もあり比較的小規模なコンテストになったかなという印象でした。
ただし、その分、参加しきったチームは、個人活動もしくは、オンラインでうまく活動したチームも多かった印象です。

さて、話は元に戻りますが、テスト設計コンテストは技術の高さを競うものです。
コンテストに参加するにあたり、参加チームの方々は結構悩んだりされた方が多かったのではないでしょうか?
また、参加してみたいという方では、「ちょっと難しそうかな…」と思われている方もいると思います。
ということで、今回は、「どんなスキルが必要か」、「何に重点を置いて活動すべきか」を少し書き綴りたいと思います。

テスト開発をやりきるための必要なスキル

コンテストに限らずですが、テスト開発をやりきるには下記のスキルが必要だと考えています。

  • テスト成果物を定義するスキル
  • テストプロセスを作るスキル
  • テストベース分析を行う(テスト要件を抽出)スキル
  • テスト要件からテストケースを設計・実装するスキル

次では、具体的にどんな技術でどんなことができたらよいかを少しだけ紹介していきます

テスト成果物を定義するスキル

これはまず初めにどんなテスト成果物を作ればよいかを定義できるスキルです。
何某かテストを作るとしてもイメージしやすくなるようにどんな形式でどんなデータがあれば最終的なテスト成果物になるかを定義できるようになるとよいです。これがスキルとして不足している場合、「じゃぁ具体的にどう作ったらいいんだ?」と悩んでしまいます。この場合の対策としては、自分が扱いやすい細かい単位でまずは成果物を作成して、情報を整理して再定義すると良いでしょう。

参考になる技術、規格など:TPI Next,TMMi,ISO29119

テストプロセスを作るスキル

これも、テスト成果物を作るスキルと併用して語られるスキルです。最終的なテスト成果物を作るには上記と同じように、どこでどんなデータを得れば作れるかを明確にしていきます。スキルとして不足している場合はテスト成果物を作るスキルと同様のケースに陥ってしまいます。そのため、自分が扱いやすい単位まで成果物のデータの流れを整理して定義すると良いでしょう。

参考になる技術、規格など:TPI Next,TMMi,ISO29119,PFD

テストベース分析を行う(テスト要件を抽出)スキル

テストすべきことが何かを洗い出すスキルです。しかし、このスキルを十分に発揮するためにはテスト目的とテスト要件(テストすべきこと)の関係性を明確にしておく必要があります。もし、その関係性があいまいなままだったりすると、分析の粒度がぼんやりとしすぎていたり、細かすぎてしまったりしてテスト要件の抽出が十分に行えないという状況に陥ってしまいます。この場合、日本人なので言葉の主語述語などの文法や分析モデルの文法を定めて、同じ単位で分析すると良いです。

参考になる技術、規格など:リスクベースドテスト、VSTeP、ゆもつよメソッド

テスト要件からテストケースを設計・実装するスキル

仕様書などのテストベースから、テスト要件を抽出できれば、今度はそれをテストケースに落としていくのですが、その上ではテスト設計技法が使えるとより良いです。このスキルが不足していると、テストケースが体系的に作れず、作ったテストケースがどのような目的でテストすべきなのかを説明しきれなかったり、テストケースの重複や漏れが発生してしまいます。そのため、適切に設計、実装できているか確認したい場合は、作られたテストケースがテストの目的が合うかを確認してみましょう。

参考になる技術、規格など:テスト設計技法全般(ISTQBなどの参考書)

テスト開発で何よりも大切なこと

また、スキルも大切ですが、もっと大切なことがあります。
それは、テスト開発の一貫したコンセプト(テストで何を実現したいか)を提示することです。
別の言い方をすると、「テストで実現したいこと」をテスト開発に必ず込めることです。

例えば…

  • 現状直面しているテスト開発における課題解決につながること
  • 普段テスト設計していて、実現しているんだけどもっと効率よくできないかということ

「とにかくあらゆるバグを見つけたい!」、「 やばいバグをしっかり見つけたい!」,etc,..,

などをコンセプトに含めてみると良いです。
このコンセプトが明確だと、
現状の自分たちのテストプロダクトが目的を達成しているかをきちんと見直して、
その代替策や改善策を思いつくことができます。

むしろ、これがないとチーム内や、第三者目線でよくわからないものができることが多いです。
あなたが実現したいことが本当に実現できているか是非問いかけてみましょう。

おわりに

テスト設計コンテストは結構「タフ」なコンテストです。
ですが、一年を通してやり切れたとき、反省点はあるかもしれませんがかなり学びがあるコンテストであると私は感じています。
テスト/QAエンジニア・コンサルタントを目指される方には、とても有用なコンテストですので是非ご参加いただければと思います。(宣伝)

そして、先ほども含めて、2019年のU-30のチュートリアルでもお伝えしているのですが、
テスト開発は、一つのプロダクト開発と何ら変わるものではありません。
なので、「テストプロダクト(=テストスイートおよびテストシステム)」が何を提供する/したいのかを自分自身でしっかり掲げてみましょう。
その上で、自分自身の「テストプロダクト」を育てていきましょう!

チームや視聴参加の方へのお願い

これからも、参加者が参加しやすい環境を整えたいと思っているので、
何か要望があれば実行委員会にご意見ご感想をジャンジャン送っていただければ!

Oracle Certified Java Programmer, Silver SE 11 試験対策ポイント解説セミナーを受けたよ

Java Silverの受験を年内にしようと考えているので、
Oracle Universityのサイトを日々チラ見していたらセミナーをやっていました。

新着ニュース | Oracle University

受けてみて、基本黒本の中身で足りるのですが、変更点を聞けるのでいい感じです。

しかも…この先5月までは再受験が無料らしいです。

ラクル認定資格試験 再受験無料キャンペーン!!

ゴールドはすぐには無理そうですが、何とかSilverは近いうちに…。

と決意を新たにしたのでした。

クラウド型テスト技法ツール GIHOZのざっくり感想

www.veriserve.co.jp

ベリサーブさんのGIHOZを使ってみました。

最近、MBTの話をすることもあり、こういったツールが日本で出てきたのは良いことですね。
ZIPC FOTのようなテストツールもありましたが、一般的なテスト技法についてカバーしてくれるのはいい感じです。

ただ、ベータ版ということもあり、ほかのツールとの連携はまだの様子。
ネット上を見てるとAutifyとつながるみたいな話はありそうですが、
それは今後に期待しましょう。

デファクトスタンダードなツールになると良いですね。

「 ソフトウェア・ファースト: あらゆるビジネスを一変させる最強戦略」(2019)

ソフトウェア・ファースト

ソフトウェア・ファースト

今度のお仕事で、「ソフトウェアファースト」という言葉がしきりに出てくる職場だったので、手とってみました。

詳しい感想は、Webにはたくさん転がってそうなので簡単に…。

基本的に、Googleマイクロソフトの話が多いので、その手の本を読んでいると大体そんな感じだなぁという感じでした。
つまり…考え方は、その企業から受け継がれている話という印象。

ただ、日本人向けにキャリアの話であったり、日本の産業界に問いかけている書籍なので、
この本が日本で、日本人の手で生み出されているっていうのは価値があるなと感じました。

QAエンジニアについても書いてあるしね!

Java Silverのお勉強を再開。

楽天から「受験料値上げするよ!」というメールが来たので、
受験チケットを購入して勉強を再開してみました。

仕事での研修の話も終わり、Javaから離れ気味だったので、かなり忘れがちですが下記の書籍を片手に勉強中…。
その間に Java SE は11でなくて15になってたりするけど、ひとまず、問題集のコードも写経しながらやっています。

学習するにあたっては、ソースファイルモードは便利ですねー。

学習状況の記録は下記のGithub リポジトリにあげながらやっています。
github.com

年を越す前までにぼちぼち受けようかなと思います。

2章までの学習メモ

1章 Javaの基礎

パッケージの目的は下記

  • 名前空間を提供し、名前の衝突を開ける
  • アクセス修飾子と組み合わせてアクセス制御機能を提供する
  • クラスの分類を可能にする
  • 1-1 パッケージでアクセス制御と言っているが、正しくはクラスで制御しているので正解扱い。

ソースファイルモードについて

2章 Javaのデータ型の操作

2-3 数値リテラル(数値表記を見やすくするために使う)

  • リテラルの先頭と末尾は記述できない
  • 記号('.'、'L'、'F'、'0b'、'0x'などが該当)の前後には記述できない

2-5 識別子の命名規則

  • 予約語は利用できない
  • アンダースコア'_'と通貨記号'$'は利用できる
  • 数字から初めてはいけない
  • var はローカル変数にしか使えない。下記の場合はコンパイルエラー

フィールド宣言、引数の型宣言

StringBuilderは文字列の文字数分+16文字分のデフォルトバッファを持つことに注意する。