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

品質技術を知る、学ぶ、作る

ka's
September 29, 2019

 品質技術を知る、学ぶ、作る

2019/09/29(日)に開催されたNaITE #33のLT発表資料
NaITE #33 https://nagasaki-it-engineers.connpass.com/event/145218/

ka's

September 29, 2019
Tweet

Other Decks in Technology

Transcript

  1. 品質技術を 知る、学ぶ、作る NaITE #33 LT/LD ka’s@pbjpkas (Connpass ID : kkazu)

  2. ka’s @pbjpkas 某メーカーのソフトウェア設計部門で SQAを担当 • Windows/Macのデスクトップアプリ • SQA歴は数年 • 組み込み系出身

    • 仕様、実装、テスト、量産立会など • C、Excel VBA、Python 2
  3. フライングまとめ ▪ QAの役割はQMSを回すこと – 品質技術の利用や開発が伴う – 先を読んで品質技術を開発する ▪ 品質技術を知る –

    品質技術の切り口:カテゴリ、マッピング、品質モデル、スコープ ▪ 品質技術を学ぶ – マッピング&アンテナ ▪ 品質技術を作る – 既存技術の取り込み、組み合わせ – 開発の敷居は意外と低い(かも!?) 3
  4. 最初に考えていた内容 ▪ 「品質技術を開発してみよう」 – 題材:アプリ実行時の消費電力チェックを自動化する検討 https://qiita.com/pbjpkas/items/ae3cb9653bbc56231223 – デモを交えたり ▪ ドメインが違うと単語レベルでわからないかも

    ▪ 背景から話すことに路線変更 4
  5. 目次 1. 品質技術を知る – QAの役割 – QMSを回す – 例:品質管理図による進捗管理 –

    品質技術のカテゴリ例 2. 品質技術を学ぶ – 品質技術のマッピング例 – 品質モデル(ISO 25000 / SQuaRE) – QAのスコープとアンテナ – これからのソフトウェアと開発 3. 品質技術を作る – 品質技術の調達 – どこにフォーカスしよう? – 資源効率性に着目 – 資源効率性の可視化技術 – テストベンチ – 実行結果 – 次のステップ 4. おわりに – まとめ – ブックガイド 5
  6. 6 1. 品質技術を 知る

  7. QAの役割 「QMSを回すこと」 by 奈良さん@JaSST’17Tokyo QA:Quality Assurance、品質保証 QMS:Quality Management System JaSST:ソフトウェアテストシンポジウム

    7 参考:JaSST Tokyoのまとめ https://togetter.com/li/1079456?page=8
  8. 「QMSを回す」(1/3) ▪ QMS – 価値を作り、価値を損ねるものを摘出し、価値を顧客に届ける仕組み 8

  9. 「QMSを回す」(2/3) ▪ 回す(1) – 品質の目標を立て – 目標達成の確認方法を確立し – 達成しているかをモニタリングし –

    未達の箇所をテコ入れし改善する – サイクルを回す 9 ←品質戦略 ←品質技術の開発 ←メトリクス収集・可視化 ←改善活動 ←PDCA・KPT
  10. 例:品質管理図による進捗管理 目標の例 ▪ 未実施のテスト:0件 ▪ 未摘出の不具合:0件 品質技術の例 ▪ 品質管理図 ▪

    自動集計 出典 ソフトウェアの品質保証の本質~技法の変遷から学ぶ~ http://jasst.jp/symposium/jasst17tokyo/pdf/A7.pdf 10
  11. 「QMSを回す」(3/3) ▪ 回す(2) – 止めない、ダウンタイムを最小にとどめる – 必要なものを、必要な時に、必要な量を、必要な場所に提供する ▪ 兵站、技術ロジスティクス –

    「必要なもの」は品質技術も含む – 技術開発は時間がかかることがある;先手を打って開発するのもQAの役目 – 技術スキルを向上するのも時間がかかる 11
  12. 品質技術のカテゴリ例 ▪ プロダクト寄り – レビュー – 自動化 – 品質評価、分析 –

    利用時の品質と製品品質 – テスト技法・マネジメント ▪ プロセス寄り – アジャイル開発 – プロセス改善 – チームビルディング、リー ダーシップ ▪ ホットな分野 – AI、IoT 12 出典:ソフトウェア品質シンポジウム2019 https://www.juse.jp/sqip/symposium/
  13. 13 2. 品質技術を 学ぶ

  14. 品質技術のマッピング例 (学びの地図) 適用範囲 個人 チーム ステークホルダ 市場・顧客 プロダクト 品質 •

    個人の作業を 支援する治具 やプログラム • 各種開発手法、 テスト技法 • チーム作業を 支援する治具 やプログラム • プロダクト品 質可視化の技 術 • 利用時の品質 の導出 • 当たり前品質 の導出 • 市場流出不具 合の分析 プロセス 品質 • PSP • 見積り • プロセス改善 • プロセス品質 可視化の技術 • 品質保証戦略 の立案 • GQM • ROI 14 PSP : Personal Software Process GQM : Goal, Question, Metric ROI : Return On Investment
  15. 品質モデル(ISO/IEC 25000 SQuaRE) 15 出典:バグだけが品質と考えていませんか? ~つながる世界に向けてSQuaREベースに品質を考えよう!~ https://www.ipa.go.jp/files/000045962.pdf

  16. QAのスコープとアンテナ ▪ スコープは全工程 – 開発 – テスト – QA ▪

    アンテナ – 書籍 – カンファレンス、勉強会 – Blog記事 16
  17. これからのソフトウェアと開発(1/2) ▪ ソフトウェアはIoTや自動運転、ARなど物理空間とインタラクション – コンピュータ内でソフトウェアが完結しない ▪ 実装、チェック、デバッグに仮想化技術を用いる流れ ▪ 実機を用いるテストがなくなるわけではない 参考:20年後のソフトウェアテストの話をしよう(湯村さん@builderscon

    tokyo 2019) https://builderscon.io/builderscon/tokyo/2019/session/783619e0-4c45-45cb-b29a-fbff39077f43 http://yumulog.hatenablog.com/entry/2019/08/31/235727 17
  18. これからのソフトウェアと開発(2/2) ちょっと考えてみた。 ▪ 仮想化技術でできることは仮想化技術で行うようになる? ▪ 実機を用いるテストは実機だからこそ可能なテストにシフトする? 18

  19. 19 3. 品質技術を 作る

  20. 品質技術の調達 20 好適な技術 が存在する 技術開発 に挑戦する おめでとう! 次のページへ 誰かが開発するまで待つ Yes

    Yes No No
  21. どこにフォーカスしよう? ▪ 仮想化技術を極めて機能適合性のテストを高度化? ▪ 性能効率性や使用性など機能適合性以外の品質や利用時の品質にフォーカス? ▪ いちユーザ目線で不満や困りごとを想像したり? 21

  22. 資源効率性に着目 アプリ実行時の消費電力を可視化 ▪ アプリをバージョンアップしたら電池の減りが早くなった、なんてのは困る ▪ 実機だからこそ可能なテスト 確認したいこと ▪ 実機でアプリを動かしそのときに端末に供給される電力 ▪

    いつもと同じ使い方なのにいつもと消費電力が違う→なにかやったかも!? 22
  23. 資源効率性の可視化技術(1/3) ▪ 電力測定は既製品を流用 ▪ Bluetoothで測定データを取得 23 電圧電流などを測定し、データ出力できる高機能テスター「SD-WWC01」 https://www.area-powers.jp/product/others/4580127696875/

  24. 資源効率性の 可視化技術(2/3) ▪ データ取得プログラムはPythonで 20行(空行、コメント込み) 24 アプリ実行時の消費電力チェックを自動化する検討 https://qiita.com/pbjpkas/items/ae3cb9653bbc56231223 ▪ プログラムの内容

    – シリアル通信をオープン – コマンド(0xf0)を送信 – データを受信 – 受信したデータを整形 – print文で出力 – シリアル通信をクローズ
  25. 資源効率性の可視化技術(3/3) ▪ 実行結果(例) 25 アプリ実行時の消費電力チェックを自動化する検討 https://qiita.com/pbjpkas/items/ae3cb9653bbc56231223

  26. テストベンチ 26 電源 (モバイルバッテリ) 充電チェッカ テスト対象 (Windows 10 MobileのEdge) Bluetooth

    キーボード PCからアプリを操作 電力データを収集
  27. テスト対象 ▪ YouTubeをブラウザで再生しているときの消費電力を測定 ▪ YouTubeのキーボードショートカットで動画の再生を制御 – スペース :再生/一時停止 – 左カーソル:10秒戻る

    – 右カーソル:10秒進む ▪ キーボードはBluetoothキーボードをペアリングして使用 27
  28. Bluetoothキーボード ▪ PCからコマンドを与えBluetoothキーボードのキーコードを送出 ▪ M5Stackで実装 ▪ C/C++で1000行くらい – mhama/M5StackHIDCtrlAltDel https://github.com/mhama/M5StackHIDCtrlAltDel

    – M5Stackでコマンド操作 https://qiita.com/pbjpkas/items/c8c26837a1a5a243f4b6 – キーコードは下記資料のp.53~ https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf 28
  29. 実行結果(1/6) – 再生前 29 5.13[V] 0.256[A] 1.31[W] USBカメラで テストベンチ を撮影

    Bluetooth キーボードを 制御 消費電力を 測定
  30. 実行結果(2/6) – 再生中 30 5.13[V] 0.312[A] 1.60[W]

  31. 実行結果(3/6) – 一時停止中 31 5.13[V] 0.275[A] 1.41[W]

  32. 実行結果(4/6) – 再生中 32 5.12[V] 0.356[A] 1.82[W]

  33. 実行結果(5/6) – 一時停止中 33 5.14[V] 0.258[A] 1.33[W]

  34. 実行結果(6/6) ▪ アプリ実行時の消費電力を可視化できた ▪ 再生中の供給電力は再生前や一時停止中より平均で0.36W増えた 34

  35. 次のステップ ▪ 自動化できるようプログラムを改修 – タイムスタンプと測定結果を1行で出力する – シリアル通信のオープン、クローズはテスト開始時と終了時だけにする ▪ 何回か測定を行って傾向をつかむ 35

  36. 36 4. おわりに

  37. まとめ ▪ QAの役割はQMSを回すこと – 品質技術の利用や開発が伴う – 先を読んで品質技術を開発する ▪ 品質技術を知る –

    品質技術の切り口:カテゴリ、マッピング、品質モデル、スコープ ▪ 品質技術を学ぶ – マッピング&アンテナ ▪ 品質技術を作る – 既存技術の取り込み、組み合わせ – 開発の敷居は意外と低い(かも!?) 37
  38. ブックガイド ▪ ソフトウェア品質保証 入門 ▪ ソフトウェア品質保証の基本 ▪ ソフトウェア品質知識体系ガイド第2版 38

  39. 39 ご清聴ありがとうございました