ソフトウェア品質シンポジウム『共通言語としての欠陥特性の提案』 参加レポート #SQiP

はじめに

  • 第7分科会の発表
  • そのまま現場に持って行くことができるわけではない

本日お伝えしたいメッセージ

  • 「ソフトウェア欠陥」そのものを見つめなおそう

問題提起

バグが伝わらない

  • QAがメモリリークとDevに伝えた
  • 後日見てみたら、バグ票に全然違うことが書いてある

無限のバグピンポン

  • QA「バグだろ」
  • Dev「バグじゃない」

課題整理

どうして怒るのか

  • 欠陥の定義がない!?
  • それぞれの文書によって用語の定義違う

メモリリーク

  • C言語だと、free()していない
  • Javaだと、ずっと参照しているため、GCが走らない
  • 欠陥の定義が変わっていく

先人に学ぶ

  • 「品質」のイメージがぼやっとしていた
    • 品質特性に性質に分解して理解した
  • 「欠陥」もぼやっとした概念
    • 同じ手が使えるのでは?

提案

提案内容

  • 基本特性
  • 混入特性

基本特性とは

  • すべての欠陥が保有する性質
  • 昆虫の定義
    • 頭・胸・腹の3つ
    • 胸には6本の肢
    • 胸には4枚の翅

具現性

  • 対象成果物と故障モードの組み合わせ

有害性

  • 欠陥とはなんらかの外を及ぼすものである
  • 基本的には品質特性の裏返し

因果性

  • 欠陥は混入・表出に因果関係を伴うものである
    • JaSST Tokyo 2013 細川さんの発表資料より引用
  • 混入原因(因子)
    • 開発の制約
    • 関節原因
    • 思考の誤り

混入特性

連鎖性

増殖性

  • 複製・再利用により再生産される性質(コピペ)

好複雑性、好欠乏性

  • 偏在性
    • 人的資源
    • 成果物
    • 環境
    • 複雑
    • 欠乏

欠陥特性の事例

文章による表現

  • 改修元のプログラムをよく理解しないまま書いたために、SQLの組み立てに失敗し…
    • 読みにくい
3色ボールペン
  • ポイントはわかりやすくなる
  • 因果関係がわかりにくい

欠陥モデルによる表現

  • 因果関係すっきり
  • 対策も立てやすい

欠陥特性による表現

実験と考察

実験1

  • 欠陥の認識が統一されたか

実験2

  • 混入特性は品質改善提案に繋がるか
  • ピンポイントの改善活動を導出できた

質問

  • Q.不具合を見つけた人は現象と改善点を書いて、問題点とかは後で書かれることが多い。どのタイミングで書かれることを想定しているのか?

    • A.基本的には事後の分析
    • 欠陥モデルにするときに細かい情報をそぎ落としてモデル化する
  • Q.実験2で混入特性のばらつきがあったのは興味深いが、混入特性を決めるのが複数存在して、分類しづらいのでは?

    • A.時間的な変化もあると思う
    • 切り離した形では行かないこともあると思っている

感想

  • 品質と欠陥を表裏一体のものとして考えるやり方はなるほどと思えた