intro-to-software-testing/README.md
2021-07-27 23:16:32 +09:00

5 KiB

title marp paginate
ソフトウェアテスト概論 true true

ソフトウェアテスト概論

WebDINO Japan エンジニア 渡邉浩平 w:200


なぜテストをするのか


品質

品質とは製品としての価値

開発したサービスや製品によって利用者への価値の提供を目指している 製品としての価値を支えているのは品質


狩野 (かのう)モデル

bg right:60% fit

顧客の求める品質のモデル


魅力的品質と当たり前品質

魅力的品質についてはみなさんが考えてほしい

ソフトウェア開発における当たり前品質に関するヒントをご紹介します


CI/CD (Continuous Integration and Continuous Delivery)

変更すると決めてからユーザーが使えるようになるまでの一連の継続的な活動

「サイクルタイムを短く、品質を高く」

デプロイメントパイプライン

品質: 最適なレベルに保つ 手段: 自動化し機械によって繰り返す、頻繁なフィードバックを得る


自動化とフィードバック

どちらも欠かせない

なぜなら…

  • 自動化していなければ素早く変更を反映させられない
  • フィードバックが得られなければ最適な品質を見極められない

テスト

品質の評価

ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、信用の失墜など、さまざまな問題が発生し、時には傷害や死亡事故になることもある。ソフトウェアテストはソフトウェアの品質を評価し、運用環境でソフトウェアの故障が発生するリスクを低減する 1 つの手段である。


まとめ

  • 品質とは製品としての価値
  • 品質を高めるヒント … CI/CD、テスト

便利な CI/CD サービスとテストツール

JavaScript と TypeScript での開発を支える便利なツールの紹介


実行環境

CI/CD を実現するための環境


GitHub Actions による自動テストの例

.github/workflows/test.yml

name: test
on: push
jobs:
  main:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with: { node-version: lts/*, cache: npm }
      - run: npm ci
      - run: npm test

git pushするたびに繰り返し GitHub が実行環境を構築し自動的にテストを実行


テストフレームワーク

テストをサポートするための一連のツール


E2E テストツール

Web ブラウザーの操縦を自動化するためのツール


  • 型システム … TypeScript
  • 静的解析ツール … ESLint
  • UI を確認するためのショーケースツール … Storybook
  • 依存関係の自動更新 … Renovate
  • セキュリティ監査 … LGTMSnyk
  • コンプライアンス監査 … FOSSA

まとめ

JavaScript と TypeScript での開発を支える便利なツールを紹介


後付


話していないこと

  • ソフトウェア設計技法
  • テスト設計技法
  • リファクタリング

テストピラミッド

テスト戦略の 1 つ

コストに応じた適切な粒度で行う

Mike Cohn によって提唱

bg right fit


h:0.8em フィードバック

このスライドを編集する / 問題を報告する