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

QAはソフトウェアエンジニアリングを学んで実践するのが大事なの

Avatar for ymty ymty
June 17, 2025

 QAはソフトウェアエンジニアリングを学んで実践するのが大事なの

Avatar for ymty

ymty

June 17, 2025
Tweet

More Decks by ymty

Other Decks in Technology

Transcript

  1.   3 ◆(これまでのfreeeでの)担当プロダクト:会計帳簿と固定資産、コ アエンジン、freeeカードUnlimited、小口現金管理のQAエンジニア、 会計全体、金融(入出金管理、リレバン、オファー型融資、資金調 達、福利厚生)、支出管理のQAオーナー 
 ◆趣味:酒を飲む、ギターの練習をする 
 ◆経歴:1991年4月から社会人

    
 → 工作機器メーカーで原価管理システム受入テスト 
 →テスト担当者(主に財務会計ソフト) 
 →テストリード(主にプリンタドライバー) 
 →テストコンサルタント(主に携帯、オーディオ) 
 →テストツールプリセールス(主にテスト管理ツール) 
 →テストマネージャー(国際案件のAPJ担当など) 
 →保険会社のテスト専門部署の課長(合併案件のTM兼任) 
 →2019年7月〜 freeeのQAエンジニア 
 →2022年1月〜 freeeのQAマネージャー 
 ◆好きな食べ物:日本そば 
 ◆最近あった嬉しかったこと:上の2人の子供が大学卒業したので学 費がかからなくなること 
 ◆最近あった悲しかったこと:個人的に持ってるmiroのアカウントで 誤って30万円近い請求がきたこと 
 湯本 剛(ymty:ゆもつよ) 
 QA品質企画/SEQ JM 
 Tsuyoshi Yumoto 

  2. • エンジニアリングとは、再現可能なやり方で問題を解いていくこと 
 ◦ もっと言えば、成功の確率を上げるための考え方と仕組み 
 
 • ソフトウェア開発にとってエンジニアリングとは、目に見えないものを作っていくため の論理と構造の技術

    
 ◦ つまり、ソフトウェアの見た目(画面)だけではわからないたくさんのルール、仕組 み、繋がりと言った中身をみんなで共有できる形にする技術 
 ◦ 、
     そもそもエンジニアリングってなんなの? 
 エンジニアリング実践者 = エンジニア 

  3. エンジニアリングの三要素 
 技術
 プロセス
 人
 活動、順序 
 技法、ツール 
 倫理、能力

    
 開発での活動にて、効率をよくしたり、同じ間違えを繰り返さないような上手いやり方が技術
 技法や手法:開発言語、設計技法、仕様記述言語、モデリング言語、テスト技法... 
 
 ツール:エディター(VSCodeなど)、構成管理(GitHubなど)、CI/CD(CircleCIなど)、環境(Dockerなど)... 
 開発での活動をブラックボックスではなく、具体的にあきらかにして共有可能にするのがプロセス
 ソフトウェア開発活動を具体的に明らかにする 
 
 
 
 ソフトウェア開発活動 
 要求
 設計
 構築
 テスト
 インプッ ト
 アウト プット
 インプッ ト
 アウト プット
 明らかにする

  4. • 要求に対する認識が不十分 
 
 • 曖昧な仕様 
 
 • 設計がされずコーディング

    
 
 
 ソフトウェアの問題はコードの中だけではないの 
 そういう「目に見えない問題」に気づくためにQAは 
 プロセスに関わる必要があるの 

  5. さらには、今年の新人教育にも組み込んで、新卒エンジニア全員にも教えたの 
 • 計画、見積もり、スケジューリングって何をするの? 
 • 要求と要件は何が違うの? 
 • 要件と設計は何が違うの?

    
 • 星占いやギャンブルではない合理的なやり方ってなんなの? 
 • 設計しないでコードを書くのはなんでいけないの? 
 • 本番リリース、リリース後対応って何をしてるの? 
 • チーム開発で大事なことは何? 
 
 
 だから私はQAエンジニアにエンジニアリングを教えてるの 
 QAとは、品質に向き合うことなの 
 だから、作り方の仕組みを理解するのが大事なの 

  6. 4.ソフトウェア開発にて行うこと 
 
 
 
 
 
 
 
 


    
 
 
 
 4.4 構築 
 
 
 
 「エンジニアリング入門」の全体構成 
 2.ビジネスにおけるソフトウェア開発の特徴 
 3.ソフトウェアエンジニアリングとは何か? 
 4.1コミュニケーション 
 
 
 
 4.5 デプロイ、リリース後対応 
 
 
 
 4.3 モデリング 
 
 
 
 4.2プランニング 
 
 
 
 4.6 QA(品質保証) 
 4.7 チーム開発 
 
 コーディング 
 
 
 インテグレーション 
 
 テスティング 
 
 環境構築
 
 
 設計
 
 
 要求獲得
 
 
 要求まとめ 
 
 
 保守運用
 
 
 障害対応
 
 
 チーム、ツール 
 見積り
 スケジューリング 
 
 本番デプロイ 
 本番モニタリング 
 ç
 
 分析
 
 
 仕様化
 
 ç

  7. • 要求分析のプロでも良い 
 • 業務ドメインのプロでも良い 
 • データ設計のプロでも良い 
 •

    コーディングのプロでも良い 
 • テストのプロでも良い 
 
 QAは、開発の「プロセスの中」に立つ人、しっかりと立つには何か一つ「自分の軸」 を持っているのがよい。それが、QAをやる「エンジニア」 
 • 軸があるとその人の言葉には信頼が集まる 
 ◦ なぜそこに気付いたのか?、なぜ今それを問うのか? 
 ▪ そういう「問いの質」に大きく影響するの 
 エンジニアは何かのプロであるべき