第189回: 「ソフトウェアテストしようぜ」6 洗濯機(前編)
◀前の記事へ 次の記事へ▶
≡ はじめに
前回は、「扇風機のタイマー」のソフトウェアテストの話を書きました。
内容としては、「難しいテスト技法を駆使したテストもいいけれど、全数テストができるなら、何も考えずにそちらに振ってしまおう」という話でした。
タイマーのロジックはいつも複雑なので、デシジョンテーブルをつくりたくなるところだけれど、案外難しいです。(設定可能なルールだけを書いてしまって設定できないことのテストが漏れてご迷惑を掛けた記憶があります……)
あと、miwaさんが、「時間どおりに動くことを確認する」とツイートしていらっしゃいました。
タイムアウトに限らず、「処理中のイベント発生問題」はやっかいです。
発生するイベントについて、そのすべてをテスト前に洗い出せればよいのですが、思いつかなかったイベントによって変なことになる経験は一度や二度ではありません。
長時間に渡るテストの自動化をした人はみな「こんなことが起こって自動テストが止まるかー」って悔しい思いをしたことがあるのではないでしょうか。
また、テストを効率的に進めるために、つい、1時間、2時間、4時間、6時間と設定するところを、1分、2分、4分、6分で動作するようにつくり変えた【テスト用の特別バージョン】を作ってテストしたくなるものです。
でも、6時間だからこそ発生するイベントもあるので悩ましい問題です。(例えば、日またぎとか)
さて、今回は一家に一台はある洗濯機がお題です。
≡ お題(洗濯機)の説明
前回の再掲になりますが、お題の説明です。
見ての通り、洗濯機の操作パネルがお題です。
マニュアルはこちらです。
≡ テスト対象を理解する
毎回書いていますが、テストを作る前に、テスト対象を理解することが何より大切です。
「洗濯機なんて知ってるよ」と油断していませんか?
■ 洗濯機の目的は汚れを落とすこと?
洗濯機に求められている機能は何でしょうか?
「そりゃあ、汚れを洗い落として、真っ白な服にすることだろう?」と思ったかもしれません。
昔は、そうだったのだと思います。いや、今でも野球部の部室にある洗濯機なら「汚れを落とす」ことが求められていることでしょう。
しかし、ご自宅の洗濯籠のなかを見てください。毎日洗濯するタオルと下着が中心で、それらはひどく汚れていますか? そんなことはないですよね。
■ メーカーは何を推している?
商品の価値(推しのポイント)は商品名にあらわれます。そこで、洗濯機の商品名をチェックしてみましょう。
昔の洗濯機には、「銀河」(東芝)や「青空」(日立)という名前がついていました。
「銀河」は、薄汚くすすけた衣類が輝きを取り戻す感じがします。また、「青空」は、晴天の青い空に白くはためくシーツやシャツのイメージがわいてきます。
ところが、今では、多くの洗濯機は型番で呼ばれています。
今回のテスト対象も「AW-10SD8」(東芝)といいます。「ZABOON」というニックネームはありますが。
ホームページをみると、
となっていますので、「低振動・低騒音設計」、「おしゃれ着トレー」、「ほぐせる脱水」、「自動お掃除モード」がフィーチャー(= 特長的な要件・魅力的品質)のようです。
日立のビートウォッシュのホームページも見てみましょう。
こちらは「汚れ落とし」を強くアピールしています。
さて、別のメーカーもチェックしてみましょう。
・ ななめドラム (パナソニック)
ドラム式の洗濯機、我が家も2台買いました。ただ、使い方が悪いのか、どちらも洗濯が途中でエラー終了してしまうことが頻発したので、使うのをやめてしまいました。少ない洗濯量で乾燥までさせると、ふわふわに仕上がる点はとても良かったのですが、「洗濯を開始したら最後まで止まらない」という「当たり前品質」が満たされなかったのです。
・ ES-W114(シャープ)
商品名はわかりませんでした。
シャープといえば、プラズマクラスターですよね。あとは、「COCORO WASH サービス」によるスマホ連携機能も特徴です。
家電といえば、アイリスオーヤマのチェックも欠かせませんが、こちらも型番しかないようです。アイリスオーヤマの洗濯機は、AI技術を活用していて攻めている点が魅力的です。
と、このように、顧客が洗濯機に求めるもの(これをデザイン思考ではJOBといいます)は、「汚れを落とす」から変わってきているようです。洗剤のジョブが「白くする」から「良い香りをつける」に変わってきているのと同じです。
≡ テストを作成する(ステップ1)
それでは、今回も2ステップに分けて、テストを作っていきます。まずは、“私はこういうテストを考えた”ってことを書きます。
※ 今回は長くなってしまったので、ステップ1のみとして、ステップ2は次回にまわします。
今回は、
洗濯時間
をテストしたいと思いました。
というのは、上に書いたように「汚れを落とす」家電じゃないだろうと思うからです。
洗濯機の当たり前品質として“汚れを落とす”は今もあると思いますが、「(シーツや枕カバーの)汗臭さの除却」とか「(下着の)さっぱりした着心地」とか「(タオルの)ふんわりした感触」を与えることが大切かなと思ったからです。
なお、そのためのいわゆる家事労働を最小限にすることが洗濯機のジョブと思います。
逆に、洗濯機の嫌な点は、「騒音と振動」、「長時間」、「洗濯物の取り出し」だと思います。
ところで、上記フィーチャーのほとんどは、洗濯機のハードウェアで実現されています。
としますと、ソフトウェアテストで確認したいことは「洗濯時間」かなと思いました。
洗濯機の【残り時間】の表示って怪しくないですか?
たいていのびるような気がしています。
干してから外出したいのに、洗濯が予定通りに終わらないとつらいですし、リモート会議開始までに終わるように洗濯を始めても、予定通りには終わらずにリモート会議中にピー!ピー!ピー!ピー!ピー!ピー!と洗濯終了を知らせるアラート音が鳴るとちょっと恥ずかしい気がします。
だから、その辺をね。どうなっているかテストしたいです。
具体的には使用条件を直交表に割り付けて、残り時間がいつ増えるのかをじっと観察するかなぁ。前回よりも原始的ですね。(笑)
オールペアでなく直交表としたのは、統計解析をしたいからです。
≡ テストを作成する(ステップ2)
次にステップ2ですが次回にまわします。
≡ おわりに
今回は、「洗濯機」のテストがテーマでした。
私はテストを考える前に、その製品の企画書を読み込み、競合機のウェブページを読み込みます。
それはテスト対象が与えようとしている「価値」について、細かく言うと、「利用者の利便性(GAIN)を高める機能」と「利用者の苦痛(PAIN)を減らす機能」を知ったうえで評価をしたいからです。
さて、次回は、洗濯機の後編になります。網羅的にテストすべきものは何で、どうしたらそれをテストできるのでしょうか?