Stratejiniz ve iskeletiniz, önemsiz bir şekilde, ne tür testler oluşturmak istediğinize, ne tür bir kapsam aradığınıza ve içinde çalıştığınız dile / ortama bağlıdır.
C veya Java gibi diller için sınıf imzalarını okuyan ve otomatik olarak standart köşe vakaları için testler üreten (0, 2 rasgele değer, MAX_INT, MIN_INT) bir tamsayı argümanına, null için boş değer sağlayan bir test oluşturucu yazmak oldukça basittir. , vb...). Daha sonra, oluşturulan testleri çalıştırabilir, her test için sonuçları kaydedebilir ve alakasız olanları kaldırmak için manuel olarak filtreleyebilir, geçen testler için kabul edilebilir sonuçları onaylayabilir (böylece otomatik olarak ondan sonra geçebilirler) ve başarısız olan geçersiz testler olarak işaretleyebilirsiniz .
Bunu, jeneratörünüzün ekstra ipuçları ile yardımcı olması için sınıfların etiketlenmesi / yorumlanması / yeniden düzenlenmesi ile artırabilirsiniz. Bir yöntem çağrısının yükseltilmesine izin verilen tüm olası istisnaları listeleyen veya bir tamsayı bağımsız değişkeni için daha az geçerli tamsayı aralığı veren bir etiketiniz olabilir. Bunlara testleri kendiniz yazmak zorunda olduğunuz için kısa el olarak bakın.
İşte, bakmak isteyeceğiniz bazı bileşenler:
- Kaynak kodunu / işlev imzalarını / manuel ek açıklamaları otomatik olarak ayrıştıran, standart test senaryoları üreten veya girdinizin tamamlanmasını bekleyen test senaryolarının ana hatlarını / imzalarını içeren bir bileşen.
- Otomatik test oluşturucunun ipuçlarını temsil eden herhangi bir ayrıntı düzeyine (yöntem / sınıf / imza / while döngüler / vb.) Gidebilecek sürekli büyüyen / değişen etiket / ek açıklama / yorum dili. İdeal olarak, çerçevenizi veya içindeki herhangi bir parçayı yeniden kodlamak zorunda kalmadan bu dil ile oynayabilmeniz gerekir.
- Her test için "kabul edilebilir" cevaplara karşı yeni / eski testleri belirleme ve kaydetme / test etme özelliği ile otomatik test koşucusu. İdeal olarak, bu koşucu her test için test çalışmalarının, kabul edilen / reddedilen sonuçların ve mevcut kabul edilebilir sonuçların bir veritabanını oluşturacaktır.
- Bir sınıf adı ve adlar haritası> değerleri verildiğinde, sınıfı taklit eden, işlev çağrıları, erişimciler, genel veri yuvaları vb. İçin özelleştirilebilir veriler döndüren bir nesne oluşturabilen otomatik "nesne faker" ...
Çeşitli diller ve platformlar için zaten bu işlevselliğin parçalarını içeren birçok test çerçevesi var. Bu işi kendiniz yapmaya başlamak ve organik olarak kurum içinde bu tür bir çerçeveyi büyütmek oldukça kolay olsa da, muhtemelen mevcut çalışmaları çoğaltacak sonsuz uzun vadeli bir projedir. İlk önce nelerin mevcut olduğuna bakmak için önemli zaman ayırmanızı ve ardından dalmaya zaman ayırmaya değer olup olmadığına karar vermenizi öneririm.