Upgrade to Pro — share decks privately, control downloads, hide ads and more …

試験仕様書の英語化をやってみたら試験仕様書の本質が見えてきた

Cybozu
April 16, 2024
380

 試験仕様書の英語化をやってみたら試験仕様書の本質が見えてきた

Cybozu

April 16, 2024
Tweet

More Decks by Cybozu

Transcript

  1. Copyright © Cybozu 2 Copyright © Cybozu 2 誰 •

    臼井 新(うすい あらた) • サイボウズ株式会社 開発本部(2009~) • 多国籍な開発チームにおける非母語(英語)コミュニケーションの 改善活動
  2. Copyright © Cybozu 4 Copyright © Cybozu 4 本日の内容 •

    試験の目的には、「何を動作保証したいのか」を書いてください • 試験手順と期待結果には、「どのような必要条件が満たされれば 試験の目的が達成されたと言えるのか」を書いてください
  3. Copyright © Cybozu 5 Copyright © Cybozu 5 開発チームの言語事情 •

    日本人エンジニア:約50名 • ベトナム人エンジニア:約70名 • 日本もベトナムも、英語が得意という人はほとんどいない • ベトナム語⇔日本語の通訳翻訳者:1名 • 英語⇔日本語の通訳翻訳者:0
  4. Copyright © Cybozu 6 Copyright © Cybozu 6 試験仕様書の問題点 •

    長年にわたり日英併記で引き継がれてきた • 二重管理に起因する問題 • 変更の反映漏れ、内容の乖離 • 英語スキル不足に起因する問題 • 誤訳、スペルミス、文法ミス、解読困難な文章、誤解を招く文章、......
  5. Copyright © Cybozu 7 Copyright © Cybozu 7 なんとかしなきゃ 改善プロジェクトを立ち上げて!

    すべての試験仕様書を英語に統一! 誤記・不正確な記述・解読困難な記述を一掃する! はずだった
  6. Copyright © Cybozu 8 Copyright © Cybozu 8 実際の試験仕様書の例1 目的

    カスタマイズグループの設定に関係なく、JS APIが常に有効であること を確認する 手順 1. 以下の画面にアクセス • システム管理(基本システム) > カスタマイズ > JavaScript / CSS によるカスタマイズ:カスタマイズを適用しない • システム管理(各アプリケーション) > スケジュール > JavaScript / CSSによるカスタマイズ:適用しない 2. スケジュールに新しい予定を追加する 3. スケジュールの詳細画面を開く 4. 開発者ツールを開き、コンソールタブを選択する 5. JS API で "garoon.schedule.event.get() "を実行する。 期待結果 JS APIのイベント、functionが有効であること
  7. Copyright © Cybozu 10 Copyright © Cybozu 10 画面上に見当たらないテキストが手順にある 目的

    カスタマイズグループの設定に関係なく、JS APIが常に有効であること を確認する 手順 1. 以下の画面にアクセス • システム管理(基本システム) > カスタマイズ > JavaScript / CSS によるカスタマイズ:カスタマイズを適用しない • システム管理(各アプリケーション) > スケジュール > JavaScript / CSSによるカスタマイズ:適用しない 2. スケジュールに新しい予定を追加する 3. スケジュールの詳細画面を開く 4. 開発者ツールを開き、コンソールタブを選択する 5. JS API で "garoon.schedule.event.get() "を実行する。 期待結果 JS APIのイベント、functionが有効であること
  8. Copyright © Cybozu 12 Copyright © Cybozu 12 それのことを言ってる? 目的

    カスタマイズグループの設定に関係なく、JS APIが常に有効であること を確認する 手順 1. 以下の画面にアクセス • システム管理(基本システム) > カスタマイズ > JavaScript / CSS によるカスタマイズ:カスタマイズを適用しない • システム管理(各アプリケーション) > スケジュール > JavaScript / CSSによるカスタマイズ:適用しない 2. スケジュールに新しい予定を追加する 3. スケジュールの詳細画面を開く 4. 開発者ツールを開き、コンソールタブを選択する 5. JS API で "garoon.schedule.event.get() "を実行する。 期待結果 JS APIのイベント、functionが有効であること
  9. Copyright © Cybozu 13 Copyright © Cybozu 13 曖昧な指示に対する解釈の問題 「カスタマイズを適用しない」

    • UI上のテキストともとれるし、テスターへの指示ともとれる • カスタマイズの設定データをまずは投入して、それの「カスタマイズ」パラメータ の値を「適用しない」に設定してくれ、と言っている? • 単に「カスタマイズを適用しないでね」(=カスタマイズの設定データを投入 しないでね)と言っている?
  10. Copyright © Cybozu 15 Copyright © Cybozu 15 曖昧な指示を曖昧に翻訳するのは困難 •

    カスタマイズの設定データをまずは投入して、それの「カスタマイズ」パラメータ の値を「適用しない」に設定してくれ、ということなら → Set the "Customize" parameter to "Do not apply" for the customization group. • 単に「カスタマイズを適用しないでね」(=カスタマイズの設定データを投入 しないでね)、ということなら → Make sure there is no customization group applied.
  11. Copyright © Cybozu 16 Copyright © Cybozu 16 わからないので試験の目的から推定する 目的

    カスタマイズグループの設定に関係なく、JS APIが常に有効であること を確認する 手順 1. 以下の画面にアクセス • システム管理(基本システム) > カスタマイズ > JavaScript / CSS によるカスタマイズ:カスタマイズを適用しない • システム管理(各アプリケーション) > スケジュール > JavaScript / CSSによるカスタマイズ:適用しない 2. スケジュールに新しい予定を追加する 3. スケジュールの詳細画面を開く 4. 開発者ツールを開き、コンソールタブを選択する 5. JS API で "garoon.schedule.event.get() "を実行する。 期待結果 JS APIのイベント、functionが有効であること
  12. Copyright © Cybozu 17 Copyright © Cybozu 17 曖昧な試験目的 「カスタマイズグループの設定に関係なく」

    • 「カスタマイズグループを設定してあるかどうか(設定が存在するかどうか) に関係なく」と言っている? • 「カスタマイズグループ(存在する前提で)の設定内容がどうなっているかに 関係なく」と言っている?
  13. Copyright © Cybozu 18 Copyright © Cybozu 18 試験目的が不明確だと詰む •

    手順や期待結果の何が正しいのか判断できなくなる
  14. Copyright © Cybozu 19 Copyright © Cybozu 19 試験目的の本質 •

    この試験が保証する内容についての宣言 • 「以下の手順を行って、以下の期待結果通りになったら、この試験目的で 述べた範囲の機能は正常に動作しているものと見なすよ」
  15. Copyright © Cybozu 20 Copyright © Cybozu 20 試験目的を明示することで、手順と期待結果が 妥当か判断できるようになる

    • 手順や期待結果について「間違っている」「正しい」という判断が できるのは、目的が明確に書かれているからこそ
  16. Copyright © Cybozu 21 Copyright © Cybozu 21 実際の試験仕様書の例2 目的

    マルチレポートの本文で画像ファイルが正しくサムネイル表示される ことを確認する 手順 1. ログインし、マルチレポートアプリを表示する。 2. 「レポートを作成する」をクリックし、フォームを選択する。 3. 必須項目を入力し、画像ファイルを添付する(例:画像サイズ 720 × 900)。 4. 「内容を確認する」をクリックし、「作成する」をクリックする。 5. 作成したレポートの「レポートの詳細」画面を表示する。 6. 本文の画像ファイルをクリックする。 期待結果 • 手順5で画像ファイルはサムネイルとして本文に表示され、最大サイ ズは 450px であること(360 × 450) • 手順5でサムネイル画像は、オリジナルの比率を保持していること。 • 手順6でオリジナルサイズの画像ファイルが別タブで表示されること。
  17. Copyright © Cybozu 22 Copyright © Cybozu 22 手順と期待結果から仕様がわかる? 目的

    マルチレポートの本文で画像ファイルが正しくサムネイル表示される ことを確認する 手順 1. ログインし、マルチレポートアプリを表示する。 2. 「レポートを作成する」をクリックし、フォームを選択する。 3. 必須項目を入力し、画像ファイルを添付する(例:画像サイズ 720 × 900)。 4. 「内容を確認する」をクリックし、「作成する」をクリックする。 5. 作成したレポートの「レポートの詳細」画面を表示する。 6. 本文の画像ファイルをクリックする。 期待結果 • 手順5で画像ファイルはサムネイルとして本文に表示され、最大サイ ズは 450px であること(360 × 450) • 手順5でサムネイル画像は、オリジナルの比率を保持していること。 • 手順6でオリジナルサイズの画像ファイルが別タブで表示されること。
  18. Copyright © Cybozu 23 Copyright © Cybozu 23 曖昧な手順 「例:720

    x 900」 • 正確にこのサイズじゃないといけない? • 期待結果はこのサイズに依存しているように見える • あくまで「例」なので、他のサイズを選択してもいい?
  19. Copyright © Cybozu 24 Copyright © Cybozu 24 意図がわからない記述は、そのまま英訳しても何も 解決しない

    Fill in all the required fields and attach an image file (example: 720 x 900) • 正確にこのサイズじゃないといけない? • 期待結果はこのサイズに依存しているように見える • あくまで「例」なので、他のサイズを選択してもいい?
  20. Copyright © Cybozu 25 Copyright © Cybozu 25 曖昧な手順と期待結果 •

    サイズを半分にする? • 長辺の長さが450になるようにする? 画像 720 x 900 ? サムネイル 360 x 450
  21. Copyright © Cybozu 26 Copyright © Cybozu 26 必要条件と十分条件 試験の目的は「何かが正しいことを確認する」

    • 「どのような必要条件を満たせば『正しい』と言えるのか」がわ かるように手順と期待結果を書く • 十分条件に基づいて手順と期待結果を定義するのは悪手 (十分条件を満たす手順と期待結果の組み合わせは複 数あり得るから)
  22. Copyright © Cybozu 27 Copyright © Cybozu 27 本日の内容おさらい •

    試験の目的には、「何を動作保証したいのか」を書いてください • 試験手順と期待結果には、「どのような必要条件が満たされれば 試験の目的が達成されたと言えるのか」を書いてください