仙台ソフトウェアテスト勉強会のブログ -30ページ目

仙台ソフトウェアテスト勉強会のブログ

2012年から立ち上げた仙台ソフトウェアテスト勉強会のことなどを綴っていきます。

本日はソフトウェアテスト勉強会~開発とテストの関係を考えてみよう~編。
今回はJSTQBの第2章に沿って、開発とテストについて考えてみました。


勉強会当日に21歳の誕生日ケーキを迎えた初参加福田くんがいたので、おやつはケーキでした。
勉強会でマジのケーキって凄いなぁ。。。


仙台テスト勉強会のブログ-ケーキ



いつものようにお菓子を食べながら、説明をスタート。

最初は開発の種類を説明。
皆さんご存知のWF開発から、今熱いアジャイル開発、そして派生開発のアプローチのひとつであるXDDPと説明していきました。参加者の多くは保守の開発をしているので、XDDPも気になっていた模様。変更前と変更後というのを強く意識するっていうのはXDDPの特徴の一つだと思ってます。


そして、テストレベルの話。
JSTQBで規定されているのは以下の4つ。
・コンポーネントテスト
・統合テスト
・システムテスト
・受け入れテスト


コンポーネントテスト(単体テスト)というと、一般的には工程(フェーズ)のことも指すし、ユニットテストのことも指すよね。これがちょっと難しいんだよなぁ。
そして、コンポーネントテスト~統合テストの間は本当に境界が曖昧だよね。
ここらへんは以下の議論が結構面白いです。
http://togetter.com/li/206083


次にテストタイプの話。
これもかなり曲者で、JSTQB的には4つに分けているけれども、全てが直交した概念ではないところが分かりにくくしているんじゃないかな。

JSTQBではないですが、個人的にわかりやすかった下記の分類を紹介しました。
http://gihyo.jp/dev/serial/01/tech_station/0001

勉強会のアンケートにテストタイプが分からなかったとあったので、勉強会後にもう少しまとめてみたのが、以下の図になります。個人的にはちょっとスッキリしました。
例えば機能性テストと正確性テストは品質特性から引っ張ってくると階層になっていることが分かりますね。



仙台テスト勉強会のブログ-テスト分類


そして保守の話。
ソフトウェアの規模が大きくなっていけばいくほど、デグレが心配になりますね。
建築と大きく違うところは、柱(コード)が色々なところに使われてる可能性があるということですね。なので、この部分ではOKだけれども、こちらでの使われ方ではNGなんてことは結構あります。
確認テストと共に回帰テストの重要性も増していきますね。


一通り話したところで演習をしてみました。
まずは自分の会社のテストレベル、テストタイプを考えてみます。
参加者の一人にカーナビの開発に携わっている人がいて、その人のテストには操作性試験がありました。品質特性でいうと使用性(ユーザビリティ)や時間効率性にあたるところだと思います。ドメインによって必要とされている品質が違うといういい例ですね。


その後、3~4人のチームでグループディスカッション。
色々な意見が出ていますねぇ~。
本当に言葉の定義は様々。ドメイン、会社、部署によっても違ったりします。
このときJSTQBのような共通言語を持っていると少し助かりますよね。
これが結構盛り上がりました。
ベテランのエンジニアの知見が本当に勉強になりますm(__)m




仙台テスト勉強会のブログ-グループワーク



そして、もう一つ演習。
今回のお題はNo1料理サイトのコッコパッド(仮)。
これは先日参加した札幌Ruby会議のときのクックパッドの館野さんのプレゼンからヒントを得たものです。
「Webフレームワークのバージョンを変更することになりましたが、どのように開発~テストを実施しますか?」という演習でした。

長くこの業界にいるエンジニアであれば、F/Wやライブラリのアップデートは経験しているのではないでしょうか?自分も.NET F/Wのバージョンを上げたことがありますが、コンパイルで検出できないような、細かい動きが変わっていたりでかなり大変だった記憶があります。


いきなりは難しいので、まずは必要とされるテストタイプを洗い出してもらいました。
ユーザーにとっての機能は変わらないので、普通の開発と少し違うテストタイプになります。
あるグループの一人の話を聞いたときに、「問題ないことを確認する」と言っていました。でもこれってテストができないんですよ。逆にどういうことがあったら問題だと思うのか?という話をしていったところ、応答速度などが気になるようでした。これだったら応答速度が前のバージョンと+10%以上にならないことというテストができそうですね~。



最後にネタばらしをしてRuby会議の館野さんの発表を紹介しました。
http://sapporo.rubykaigi.org/2012/ja/schedule/details/59.html

このリリースが凄いと思ったのは、普通のテストでは検出できない不具合をβテストという形で、しかも2段階にしてリリースをしていたことです。何かあっても被害は最小限、そして何かあったら直ぐに復旧できる仕組みにしておくというのは本当にうまいなぁと感じました。是非、館野さんの発表をスライドで見てください!!


テスト勉強会の参加者の皆さんも興味津々でした。
さすが!20代、30代の女子の5割が使っているクックパッドは違いますねぇ。。。


最後にまとめを話して今日の勉強会も終了です。
今回もどうもありがとうございました!!


#福田君の誕生会という名の懇親会も盛り上がりましたw