Sorunuzu ilk önce cevaplamak için: Evet, bana sorarsanız kesinlikle Sürekli Entegrasyonun bir parçasıdırlar. Ancak entegrasyon testlerinin ne olduğunu netleştirmemiz gerektiğini düşünüyorum.
Martin Fowler, hızlı dağıtım için tüm oluşturma sürecini otomatikleştirmenin bir yolu olarak sürekli teslimattan bahsediyordu. Bu, geliştiricilerin Sürekli Entegrasyon süreci tarafından sağlanan hızlı geri bildirimleri almasını gerektirir. Bu yüzden yapının geçmesi gereken aşamaları tanımlar :
- taahhüt edilmiş bir yapı
- kapsamlı test
- yayılma
Taahhüt oluşturma, geliştiriciler için hızlı geri bildirim nedeniyle belirttiği 10 dakikadan fazla sürmemelidir.
İşleri şu şekilde görüyorum: İlk adımda, en son taahhüdü getirin ve oluşturun. Bu başarılı olursa, sınıflarınızın / sınıf gruplarınızın tanımlandığı ve beklendiği gibi çalışıp çalışmadığını öğrenmek için birim testlerinizi gerçekleştirirsiniz.
Bu başarılı olduğunda entegrasyon test kısmına geçersiniz. Burada, sadece başarıyla test edilmiş birimlerin etkileşimini test edersiniz. Bu, birimlerin girdi ile beslenmesini ve durum / etkileşim / çıktılarının izlenmesini içerir. Hala taahhüt yapısında olduğumuzu unutmayın, bu yüzden bunun da hızlı olmasını istiyoruz. Bu nedenle, dosya sistemi, bir veritabanı, ağ eşleri ve benzerleri ile olan etkileşimlerin hızlı bir şekilde yürütülmesi için saplanması gerekir. Martin Fowler ayrıca, gerektiğinde bellek içi veritabanlarının kullanımını, yalnızca CI sunucusunda hızlı bir şekilde işlemeyi sürdürmek için kullanmanızı önerir.
Ünitelerin gerektiği gibi çalıştığından ve etkileşime girdiğinden emin olduktan sonra, genellikle test kapsamı hakkında bilgi edinmek istersiniz (sadece küçük bir alt sistemi test etmek genellikle yeterli değildir) ve test edilen yapay nesneleri işlevsel test / KG / dağıtım için kullanılabilir hale getirmek istersiniz ( okuyun: kapsamlı testler) testlerinizin programınızı yeterince kapsamadığını düşünüyorsanız. Tam o zaman, hedeflediğiniz üretim ortamını yansıtan bir test ortamı sağlayın ve gerçek bir veritabanı, gerçek dosyalar, gerçek ağ eşleri vb. İçeren testleri çalıştırın.
Sonunda, entegrasyon testleri kod değişiklikleri ile ilgilidir. Yaptığınız değişikliklerin mevcut sistemi bozmadığından emin olmak istiyorsunuz, yani iyi entegre oluyorlar. Öyle olup olmadıklarını öğrenmek için, kendi başlarına doğru davrandıklarından, sonra bağımlılıklarıyla doğru bir şekilde etkileşip etkileşmediklerinden ve hiç test edilip edilmediklerinden emin olmanız gerekir. Tüm bu testleri geçtikten sonra sisteminizden emin olabilirsiniz.
Daha sonraki aşamalar programınızla ilgili herhangi bir sorun bulursa (veritabanınız belirli bir değer döndürdüğünde, ağ bağlantınız durduğunda olduğu gibi) bu testleri entegrasyon testlerinde saptırmaya çalışmalısınız. Taahhüt oluşturma büyük olasılıkla KG'den daha hızlıdır;)