mirror of
https://github.com/kou029w/intro-to-software-testing.git
synced 2025-01-18 16:08:00 +00:00
5 KiB
5 KiB
title | marp | paginate |
---|---|---|
ソフトウェアテスト概論 | true | true |
ソフトウェアテスト概論
WebDINO Japan エンジニア 渡邉浩平
なぜテストをするのか
品質
品質とは製品としての価値
開発したサービスや製品によって利用者への価値の提供を目指している 製品としての価値を支えているのは品質
狩野モデル
顧客の求める品質のモデル
魅力的品質と当たり前品質
魅力的品質についてはみなさんが考えてほしい
ソフトウェア開発における当たり前品質に関するヒントをご紹介します
CI/CD (Continuous Integration and Continuous Delivery)
変更すると決めてからユーザーが使えるようになるまでの一連の継続的な活動
「サイクルタイムを短く、品質を高く」
品質: 最適なレベルに保つ 手段: 自動化し機械によって繰り返す、頻繁なフィードバックを得る
自動化とフィードバック
どちらも欠かせない
なぜなら…
- 自動化していなければ素早く変更を反映させられない
- フィードバックが得られなければ最適な品質を見極められない
テスト
品質の評価
ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、信用の失墜など、さまざまな問題が発生し、時には傷害や死亡事故になることもある。ソフトウェアテストはソフトウェアの品質を評価し、運用環境でソフトウェアの故障が発生するリスクを低減する 1 つの手段である。
まとめ
- 品質とは製品としての価値
- 品質を高めるヒント … CI/CD、テスト
便利な CI/CD サービスとテストツール
JavaScript と TypeScript での開発を支える便利なツールの紹介
実行環境
CI/CD を実現するための環境
- 手元のパソコン
- GitHub Actions
- CircleCI
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
- セキュリティ監査 … LGTM、Snyk
- コンプライアンス監査 … FOSSA
まとめ
JavaScript と TypeScript での開発を支える便利なツールを紹介
後付
話していないこと
- ソフトウェア設計技法
- テスト設計技法
- リファクタリング
テストピラミッド
テスト戦略の 1 つ
コストに応じた適切な粒度で行う
Mike Cohn によって提唱