CD'yi boşa harcamadan CD'ye yazılan yazılım nasıl test edilir?


16

CD (müzik) yazmak için kullanılabilecek bir uygulama yazmak istiyorum. Zaten gerçek CD'lerle test etmem gerektiğini biliyorum, ama her küçük değişiklik yaptığımda bunu yapmak istemiyorum. Ancak doğru verilerin yakılıp yakılmayacağını bilmek ve test etmek istiyorum, böylece CD'leri bozmuyorsunuz.

Sadece doğrudan fiziksel bir sürücüye yazmak için API'leri gösteren bir kütüphane kullanıyorum; bir disk görüntüsüne yazmanıza izin vermez (test edilmesi çok daha kolay olacaktır).

Yaptığım her değişiklik / birkaç değişiklik için CD ve zaman kaybetmeden bunu nasıl test edebilirim?


5
Bir kütüphaneye geçiş yapmak mümkün olabilir mi gelmez bir disk görüntüsünü yazmak için izin?
Sinirli

Yanıtlar:


29

Basit cevap genellikle en iyisidir: yeniden yazılabilir CD'ler?

Ayrıca zaman kazanmak için nispeten küçük dosyalar yazın. Büyük dosyaları yalnızca sık sık yapın.


1
Bunun basit ve iyi bir cevap olduğunu kabul ediyorum, ancak WTP testi başka bir seviyeye taşımak istiyorsa, API'yi taklit etmek (bu sorunun diğer cevaplarına bakın) test olasılıklarının (otomatik olarak olduğu gibi) tüm boyutunun kilidini açacaktır.
louisgab

@louisgab Size tamamen katılıyorum, cevabı yazdığımda sadece CD'leri boşa harcamak konusuna gerçekten değindim. Ben tamamen daha iyi bir şey bulmak için başka bir cevap bekledim (ve onlar var). Eğer bir şey varsa, alaycı yaklaşımı öneririm ve cevabımı sadece WTP aslında yanma sürecini fiziksel olarak test etmek istediğinde öneririm.
Kevin D

19

Linux'taysanız, sadece adlandırılmış bir kanal olan bir "cd aygıtı" ayarlayabilmeniz gerekir. API'niz "aygıta" yazar ve diğer ucunu ne yaptığını görmenizi / bir disk görüntüsüne dönüştürmenizi sağlayan bir programa bağlarsınız. Birçok seçenek var. Adlandırılmış kanallar hakkında bilgi için bu makaleye bakın .

Kevin'in cevabı IMO'dan çok daha kolay.


2
Aslında aynı zamanda UNIX sistemi olan Mac OS X'deyim. Bunu deneyeceğim.
sağ kanat

6

Kütüphanenin API'sinin bir taklidini kullanan mümkün olduğunca çok sayıda test yazın. Bu, kodunuzu birimler halinde test etmenizi sağlar. Bu, kitaplığın olması gerektiği gibi çalıştığını varsayarak kodunuzun kendi içinde çalıştığını gösterir.

Bir noktada, kütüphaneyi gerçekten kullanan entegrasyon testi yapmanız gerekir. Ancak mesele şu ki, bu noktaya gelmeden önce kendi kodunuza zaten güven duyuyorsunuz. Entegrasyon testleri genellikle gördüğünüz gibi daha fazla zaman ve kaynak gerektirir. Bu yüzden kapsamlı birim testi, entegrasyon testine tamamen güvenmemenizi sağlar.


3

Tam olarak hangi testten bahsediyorsun?

Sorunuzda "Her küçük değişiklik yaptığımda bunu yapmak istemiyorum" ifadesini okuduğunuzda, birim testi hakkında konuştuğunuzu hayal ediyorum .

Ancak daha sonra, CD'lere veri yazmaktan sorumlu bir API kullandığınızı da eklersiniz. Bu API test edilir ve doğru bir şekilde belgelenirse, verilerin CD'ye yazdırılmasıyla ilgili gerçek işlemle uğraşmanıza gerek yoktur ve test etmeniz gerekmez. Bu durumda, "her küçük değişiklik yaptığınızda " yapmak zorunda olmadığınız entegrasyon testiyle uğraşırsınız .


Ancak API'yi doğru şekilde kullanıp kullanmadığımı bilmem gerekiyor.
sağ kanat

@WTP: düzenlememe bakın. Ayrıca, doğru yazılmış bir API yanlış kullanarak bozuk CD'ler oluşturmanıza izin vermez. Bu tür şeyler yaparsa, muhtemelen ilk olarak başka bir API aramalısınız. Bir API, bir soyutlama sağlamak ve özellikle verileri bir CD'ye kaydederken bozulmayı önleme yollarıyla uğraşmaktan kaçınmak için buradadır.
Arseni Mourzenko

Orada bir noktan var. API çok iyi belgelenmiştir.
sağ kanat

1

Su arıtma,

Chris'in işaret ettiği gibi, yazılımınızı (API'yı veya kayıt cihazını değil) test etmek istediğiniz için, bir API taklidi gerekli olacaktır.
Entegrasyon testi için, güvenilir bir "ISO" kaydedici .iso dosyasını analiz ederek CD içeriğinin testini otomatikleştirmenize izin vermelidir.
Aslında CD veya DVD yazmak kesin sonuçlar vermeyecektir, çünkü hata nedeninin arızalı bir CD mi, arızalı bir kayıt cihazı mı yoksa bir yazılım hatası mı olduğunu tespit edemezsiniz, aynı diski (görünüşte bilmediğiniz).
İyi şanslar!

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.