मुझे इस सवाल से पूछने में थोड़ा शर्म आती है लेकिन मैं उत्सुक हूं। मैंने हाल ही में एक स्क्रिप्ट लिखी है (मॉड्यूल में कोड व्यवस्थित किए बिना) जो एक स्टोर की लॉग फाइलें पढ़ती है और जानकारी को डेटा बेस पर सहेजती है।पर्ल: परीक्षण की परिभाषा क्या है?
उदाहरण के लिए, मैं कुछ इस तरह (रिचर्ड Huxton के माध्यम से) ने लिखा:
while (<$infile>) {
if (/item_id:(\d+)\s*,\s*sold/) {
my $item_id = $1;
$item_id_sold_times{$item_id}++;
}
}
my @matched_items_ids = keys %item_id_sold_times;
my $owner_ids =
Store::Model::Map::ItemOwnerMap->fetch_by_keys(\@matched_item_ids)
->entry();
for my $owner_id (@$owner_ids) {
$item_id_owner_map{$owner_id}++;
}
कहो, इस स्क्रिप्ट script.pl कहा जाता है। फ़ाइल का परीक्षण करते समय, मैंने एक फ़ाइल स्क्रिप्ट बनाई और script.pl में script.pl के कुछ ब्लॉक दोहराना पड़ा। प्रासंगिक कोड खंडों को चिपकाने के बाद, मैं पुष्टि करता हूं:
is($item_id_sold_times{1}, 1, "Number of sold items of item 1");
is($item_id_owner_map{3}, 8, "Number of sold items for owner 3");
और इसी तरह से।
लेकिन कुछ ने इंगित किया है कि मैंने जो लिखा है वह एक परीक्षण नहीं है। यह एक पुष्टिकरण स्क्रिप्ट है। एक अच्छे परीक्षण में मॉड्यूल के साथ कोड लिखना, एक स्क्रिप्ट लिखना शामिल है जो मॉड्यूल में विधियों को लाता है और मॉड्यूल के लिए एक परीक्षण लिखता है।
इसने मुझे सॉफ्टवेयर इंजीनियरिंग में व्यापक रूप से उपयोग किए जाने वाले परीक्षण की परिभाषा के बारे में सोचा है। शायद आप में से कुछ ने पर्ल कोर फ़ंक्शंस का परीक्षण भी किया है, मुझे एक हाथ दे सकता है। एक स्क्रिप्ट (मॉड्यूलिज्ड नहीं) का ठीक से परीक्षण नहीं किया जा सकता है?
सादर
मैं अपने साथियों से कहूंगा और यदि वे सामान पूछते रहेंगे तो मैं कहूंगा कि ब्रायन डी फोय को उद्धृत करते हुए मैं कहूंगा। यह काम करना चाहिए जैसा हमने आपकी पुस्तक से सीखा है :) – ado
ए (अच्छा) परीक्षण कुछ ऐसा है जो कुछ हितधारक को मूल्यवान जानकारी प्रदान करता है। पूरी तरह से अलग सवाल यह है कि आपको एक पर्ल स्क्रिप्ट के लिए यूनिट परीक्षण कैसे लिखना चाहिए। :-) – Edu