【1ヶ月で学ぶ!】Back-end Developperへの道 #12日目 : Testingとは、CI/CDとは


下記の企画の6日目です。
【1ヶ月で学ぶ!】Back-end Developperへの道 #0:導入

下記を参考に項目を作成しました。
Roadmap to becoming a web developer in 2020

Testingとは

Integration Testing

  • 結合テストとは、システム開発におけるプログラムの検証作業の中でも、手続きや関数といった個々の機能を結合させて、うまく連携・動作しているかを確認するテスト
  • 個々の機能を果たすためのプログラム部品(プログラムモジュール)を組み合わせて、データの受け渡しがうまく行われているか、コードの記述様式は揃っているか、データを授受するタイミングはずれていないか、といった点が確認される
  • サブシステム内の機能連携を検証する内部結合テストと、サブシステム間や他システムとの機能連携を検証する外部結合テストに分かれる

Unit Testing

  • 単体テストとは、個々のプログラムモジュールが問題なく機能するかを確認するテスト
  • プログラムを手続きや関数といった個々の機能ごとに分割し、そのそれぞれについて動作検証を行う
  • ロジックの条件分岐を網羅するホワイトボックステストを実施する

Functional Testing

  • 機能テストとは、ユーザー側から要求された機能をシステムが満足しているかどうかを検証するテスト
  • 機能テストで確認すべき機能要件とは、クライアントが要望する必ず搭載すべき機能を指す
  • 入力されたテストデータと出力結果を比較検証するブラックボックステストが用いられる

CI/CDとは

  • 継続的インテグレーション(Continuous Integration)とは、ソフトウェア開発において定期的にビルド、テストされ、共通リポジトリに統合されるような自動化プロセスのこと
  • 継続的デリバリー(Continuous Delivery)とは、バグがないか自動的にテストし、リポジトリ (GitHub やコンテナレジストリなど) にアップロードすること
  • 継続的デプロイメントとは、開発者による変更をリポジトリから本番環境に自動的にリリースすること
  • バグを素早く発見したり、手動プロセスを自動化し素早くリリースすることができる

参照

単体テスト・結合テスト・総合テストの違い、観点や注意点を簡単に説明する
CI/CD とは-継続的インテグレーション/継続的デリバリー|Red Hat