1

私はかなりのソースを確認しましたが、依然として私には不明な点があります。つまり、CIのテスト環境への配備か、あるいは頻繁にコミットしてメインラインをバグフリーで統合したCIです。ターゲット環境への導入がCIの一部だと言う人もいます。テスト環境への配置は、継続的インテグレーションの一部ですか?

それ以外の場合は、CIと継続配信の違いは分かりません。

答えて

1

継続的な統合では、テスト環境への導入を検討する必要があるかもしれません。 CIの主なポイントは、自動化されたテストをソフトウェアのバージョンで実行して、そのバージョンiを次のステップ(QA、ステージング、プロダクション、またはプロセスの次のステップが何であれ)に展開できることを確認することです。したがって、ソフトウェアがテストされるために必要であれば、ソフトウェアがデプロイされます。

自動テストはいくつかのコンピュータで実行する必要があるため、いつも何らかのテスト環境がありますが、コードはデプロイメントを考慮して実行する必要があります。たとえば、アプリケーションがインタープリター言語の場合、自動テストを実行するには、ソースをテスト環境にコピーし、実際にデプロイするのではなくスクリプトを実行するだけで済みます。

自動テストの展開が必要かどうかは、アプリケーションにどのような自動テストがあるかによって異なります。単体テストしかない場合は、デプロイする必要はありません。フルスタックの統合テストがある場合は、統合テストのフレームワークによっては、デプロイメントが必要な場合とない場合があります。たとえば、Railsの一部である統合テストフレームワークは、テスト用のRailsサーバーのテスト固有のバージョンを実行するため、これらのテストにはデプロイメントは必要ありません。一方、他のフレームワークではそのサポートが提供されない可能性があるため、完全なスタック統合テストを実行するためにアプリケーションをテスト環境に配備する必要があります。また、CIビルドに自動化されたパフォーマンステストを含めることもできます。それらは確かにテスト環境にデプロイされたアプリケーションに対して実行する必要があります。

+0

ありがとうございました。しかし、テストによって意味されるものは何ですか?自動化されたもの?ほとんどのシステムでは、テスター(例えば、アクセシビリティ、ユーザビリティなどをチェックする必要のあるGUIを備えたシステムなど)によって手動で検証する必要があります。それでは、コティンの配達との違いは何ですか? – Pietross

+0

はい、自動テストです。私は私の答えでそれをより明確にしました。アプリには手動テストがあるかもしれませんが、それはCIの一部ではありません。 CDの場合、実稼働環境にデプロイする前に手動テストを実行する必要がある場合は、CDを実行していません。あなたはCDをプロダクションにして手動でテストすることができます。 –

+0

また、私たちのアプリ(多層、DB、Javaミドルウェア、Flex UI)が単体テストと統合テストを実行しても、依然としてCIです。次に、私たちのテスターがいくつかのテストを実行するために、私たちのSIT環境に配備します。デプロイメントはJenkinsで手動で起動されます。私が読んだいくつかの情報源(Pro:NETのベストプラクティスのようなもの)では、DeploymentはCIの一歩と言われています。 – Pietross

関連する問題