Galapagos Tech Blog

株式会社ガラパゴスのメンバーによる技術ブログです。

新人テストエンジニアの勉強会参加レポート

はじめまして。テストチームのあべです。
社会人もテストエンジニア歴も8ヶ月の新人です。
まだまだ未熟な私が少しでも知識を蓄えるべく、今回始めて勉強会に参加してきました!

イベント内容

開催日時:12/6 19:00~
開催場所:株式会社アカツキ
講義者:B氏
「いまさら聞けないテスト・品質の基礎」【初心者向け】【ソフトウェアテスト・品質勉強会】

connpass.com

Agenda

・はじめに
・テストの立ち位置とは
・何をテストすべきか
・どうやってテストケースを作るのか
・どうやってテストを実施すべきか
・おわりに

普段上流工程のお仕事をしている方や開発エンジニアの方、
ベテランテストエンジニアから私のような新人まで、
幅広い職種の方が参加されていました。

講義の資料は穴埋め形式になっており、講義の合間に参加者の方と考えを共有する時間があり、
体験的に、自ら考え学べるような仕組みになっていました。

はじめに

1.品質とは?
2.テストの目的とは?

  1. 品質とは?
    品質が高いと言えるソフトウェアは「バグが出ない」こと
    また、「ユーザーのニーズに以下に答えるか」も品質になる
    →バグが出ないことはもちろん、ユーザーが使いたくなるようなソフトウェアでなければ、品質が高いとは言えない

  2. テストの目的とは?
    ・欠陥を検出
    ・ソフトウェアの品質が十分であることの確認
    ・意思決定のための情報の提示
    ・欠陥の作り込みの防止
    →開発からのテストで確認する、ではなく、
     開発前に主体的にテストを行えば欠陥の作り込みの防止が可能になる!

テストの立ち位置とは?

代表的な開発サイクル、VモデルとWモデルの中でのテストの立ち位置は「早期に不具合を見つけること」
ソフトウェア開発 201の鉄則によると、要求仕様時点での不良修正のコストを1すると、
設計段階 5 → コーディング 10 → テスト 20 → 納入時点 200
のように、開発が進むにつれて不良修正コストは大きくなっていく
→コスト削減のためにも、不具合を早期に検出することが、テストの役割であり立ち位置である

何をテストすべきか?

本記事をお読みの皆さんも、お時間があれば以下の例題を少し考えてみてください


以下の仕様に対してどんなテストをすれば良いか。  

・パスワードは4文字以上12文字以下の英数字のみを許容する
・パスワードを3分以内に4回以上間違って入力すると、アカウントを5分間ロックする


ちなみにこの例題には完璧な回答も間違いもなく、
重要なのは、仕様を見てさまざまなテスト観点を見つけていくこと!
→1人で考えるより、複数人で一緒に考えていくと様々なことが見つかる(建設的相互作用)

テスト観点を見つけるのに必要な視座:視点・視野
視座:ユーザーの立場になる
視点:様々なドキュメントや過去の経験
視野:品質特性

どうやってテストケースをつくるのか?

テストケース作成の心得
どうしてこのテストを実施するのか(理由)を述べられるかどうか!

効果的なテストケースを作成するために、テスト設計技法(境界値分析・ 状態遷移テストなど)を活用する。
→闇雲に行うと膨大な数のテストケースになってしまう。

テスト作成時に気がついた動作の不明点は、気がついた時点で開発者に確認すべき
仕様に書いていないことは抜け漏れの可能性が高く、バグになる可能性も高い
→テスト作成の時点でバグの作り込みを防止できる(開発前に行うテスト)

どうやってテストを実施すべきか

テストは実施して終わりではなく、
発見した欠陥に関してのレポートは、だれが見てもわかりやすい内容にする
→ほかの人や、1年後の自分が見てもすぐに理解できるかどうかが重要

おわりに

まとめ

・テストの目的は欠陥の検出と未然防止がある
・開発前に行うテストもある
・早期のテストやレビューでコストを削減できる
・テストケースは仕様書や過去の経験、品質特性から作成することができる
・テストケースを少なくかつ効果的に行うためにテスト技法を活用する
・テスト実施のときは他の人がわかるように結果を残す

おまけ

各チームがするべきテスト

開発チーム:Checking
→ 正しいと信じている事柄を確認すること、妥当性確認
QAチーム:Testing
→ 新しい情報を見つける、探索、発見、究明
自動テスト:単純テスト
→ 自動テストをどれだけ行っても、テストエンジニアの工数が0になることはない

あべの全体の感想とまとめ

個人的に講義の中でとても感動したのは、「開発前に行うテスト」と「建設的相互作用」についてでした。

特に建設的相互作用については、
例題の自分の答えを参加者の方と共有する時間があったのですが、
話している間にも新しいテストケースがどんどん浮かんできて、誰かと仕様について話すことがいかに重要であるかを体験できました。
業務の中でも、仕様についてもっと話してみようと思います。

本で学んだり実際にテストするなかで気づくことを今回の勉強会で再確認しつつ、新しいことを学ぶことが出来ました。
また、勉強会に参加します!