Gerçek bir geliştirme ortamı olmadan güvenle geliştirme


12

Son zamanlarda, üçüncü taraf "kurumsal" sistemlerle ve bu sistemlerin etrafında çalışmayı içeren bir proje için işe alındım. Üretim ortamının yeterince sadık bir kopyasını oluşturmak için gereken astronomik maliyet ve çaba olacağını düşündüğümden dolayı, gerçek bir geliştirme ortamına sahip olma ihtimali kayboluyor.

Bu elbette ideal değil. Parlak tarafta, yazılımın bu gibi tekrarlanamayan ortamlara güvenli bir şekilde test edilip dağıtıldığı insanlar olmalı ve muhtemelen ayak izlerini takip edebilirim.

Bu tür durumlarla etkin bir şekilde ilgilenenler bunu nasıl yapar?


1
Sanallaştırma, "benzer" ortamlara vb. Sahip olmak ... Özünde, sistemin en "hareketli parçalarını" en azından kapsayacak şekilde daha küçük ölçekte neler yapabileceğinizi kopyalamaya çalışın.
Oded

6
Kurumsal sistemin API'sinin doğruluğuna güvenmeniz ve belki de bazı test hesaplarıyla çok sayıda entegrasyon testi yapmanız gerekir.
Robert Harvey

@RobertHarvey burada öldü. Birisi buna bir cevapla açıklamalı ama tam da ihtiyacınız olan şey bu. Sistemi manuel olarak test etmek için bir ortam olmadığında, yapabileceğiniz tek şey kodu otomatik olarak test etmektir.
Jimmy Hoffa

1
Tamam, belki de iyi bir başlangıç ​​noktası, tam bir geliştirme ortamınız yoksa , üretimdeki test hesaplarının bir sonraki en iyi şey olabileceğidir.
Jason Swett

Yanıtlar:


9

Bu gerçek dünyada her zaman olur. Devasa tarımsal seraları kontrol eden uygulamalar yazan bir adamı tanıyorum - havalandırma, ısıtma, nem kontrolü, adını siz koyun. Bir "test serası" yok, ancak gerçek donanım sistemlerini oluşturan şirket tarafından sağlanan bir simülatör programı var. Kod simülatörle doğru çalışıyorsa, gerçek ekipmanla doğru çalıştığı varsayılır. Nadir durumlarda simülatör yanlış çıkıyor, ancak sera-donanım şirketinin uğraşması gereken sorun bu, çünkü doğru bir şekilde simüle etmiyor.


OP'nin bir 'simülatör' garantisi yok gibi görünüyor. Ayrıca, sizin durumunuzda, meslektaşınızın işvereni, simülatör başarısız olursa muhtemelen tazminat talep edebilir. OP benzer bir durumda ne yapabilir? Sigorta şirketini rahatsız ediyor musunuz?
K.Steff

4
OP'nin bir simülatörü yoksa, gerçekten önemli olmayan bir tane - dilenmek / çalmak / ödünç almak / inşa etmek - alması gerekir. Bir simülatörün ne kadar iyi olması gerektiği - karar vermesi gereken bir şeydir ve eğer ihtiyacı hissederse, bir sigorta şirketi ile tazminat denilen küçük bir şey hakkında konuşabilir / konuşmalıdır.
mattnz

3

Bunlar API dokümanları, arayüz kontrol dokümanları ve emülatörlerin en önemli durumlarıydı. Daha önce çalıştığım bir şirkette, bu aslında bir projenin içinde bir segmentin hazır olduğu, ancak diğerlerinin arkasında olduğu, üzerinde çalışılan başka bir özelliğe sahip olduğu veya başka bir nedenle konuşlayamadıkları başka bir nedenden ötürü sık sık gerçekleştiği oldu kendi segmentlerinin en son sürümünü test sistemimize. Evet, aslında test ettiğimiz üretim ortamımızın sadık bir kopyası var; bununla birlikte, uygulamada tüm segmentler hiçbir zaman programda hazır olmamıştır, ancak arayüzler geliştirme başlamadan önce üzerinde anlaşılmış ve kilitlenmiştir ve çoğunlukla diğer segmentlerin davranışını taklit edebilen emülatörler oluşturulmuştur.

Başka bir yanıtın belirttiği gibi, taklitçi, testin konuşlandırmadan önce yapılmasını sağlayacak şeydir. İyi bir emülatör; ancak, iyi tanımlanmış arabirimlere ve belgelere bağlıdır.


1

Ben her zaman böyle bir durumdayım.

Kesinlikle tüm uygulama ile etkileşim kurmanız gerekmez, ancak muhtemelen bir tür birkaç arayüz. Arabirimlerin belgelerini doğruladığınızdan ve ayrıntılı bir şekilde belgelediğinizden emin olun, ardından yalnızca eklediğiniz / değiştirilen kodunuzun çalışmasını istediğiniz şekilde çalıştığını doğrulamak için bu arabirimlerin alaylarını ayarlayın.

Ayrıca bir melez de yapabilirsiniz. Kolayca yapabileceğiniz parçaları çoğaltmaya çalışın, ardından gerçek sistemlere "bağlanın" (durumunuzda bu mümkün ise). Bunu bazı başarılarla yaptım - bazı durumlarda mantığımın ve sunucu yazılımının yerel olarak çalıştırıldığı, ancak hala invocies vb. Doğrulamak için gerçek ERP sistemine bir bağlantı vardı. İdeal değil, ama nadiren şeyler.

Sadece çalışmak için bir üretim sisteminiz olduğu göz önüne alındığında, yalnızca bir kopya oluştururken kaydedilen herhangi bir geliştirme süresini sayamayacağınızı unutmayın, ancak canlı iş verileriyle büyük ölçüde test edilmemiş kod kullanma iş riskini dikkate almanız gerekir. Kodunuz bir kopyaya karşı test edilen koddan daha az güvenilir olacaktır. Sistemler bir süre kapalı olabilir mi? Veri bozulması durumunda geri yüklenebilir mi? Bu ne kadar?

İşletmelerde en iyi uygulama, üretim ortamı kurulduğu anda üretimin bir kopyasını (ya da birden fazlasını) oluşturmaktır. O anda, ek maliyet o kadar büyük olmayacak.


1

Sistemimiz bir dizi büyük harici sistemle çalışır. Tam bir uçtan uca kurulumumuz yoksa, test ederken aşağıdaki yaklaşımları birleştiririz:

  • Gerçek verileri kaydedin. Gerçek verileri kaydedin (gerçek harici sistemlerden gelen talepler / yanıtlar), gerektiğinde parametreleştirin ve tekrar oynatın
  • Harici bir sistem gibi davranan bir simülatör oluşturun veya satın alın
  • Test verisi üretimi için DSL. Veriye dayalı sistemlerde, test verisi oluşturmak için yüksek düzeyli DSL yazın.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.