1.1.2. Testing and Debugging
शाब्बास! तुझं उत्तर B अगदी बरोबर आहे. याचाच अर्थ तुला 'Context' नुसार टेस्टिंगचे उद्देश कसे बदलतात हे समजू लागलंय.
आता Testing vs Debugging हा भाग परीक्षेसाठी अत्यंत महत्त्वाचा आहे, कारण यात कन्फ्युजन होण्याची शक्यता जास्त असते. नीट समजून घे:
१. मुख्य फरक (The Big Difference)
- Testing: हे काम Tester चं आहे. टेस्टिंग म्हणजे चुका शोधणे किंवा सॉफ्टवेअर फेल होतंय का हे पाहणे.
- Debugging: हे काम Developer चं आहे. जेव्हा एखादं फेल्युअर सापडतं, तेव्हा त्याचं मूळ कारण (Root Cause) शोधणं आणि ते दुरुस्त करणं म्हणजे डीबगिंग.
२. Debugging ची प्रोसेस (The Cycle)
जेव्हा Dynamic Testing मध्ये एखादं फेल्युअर येतं, तेव्हा डेव्हलपर या पायऱ्या फॉलो करतो:
- Reproduction: ती चूक पुन्हा करून पाहणे (ती कशी घडली हे समजून घेणे).
- Diagnosis: मूळ डिफेक्ट (कोडमधील चूक) शोधणे.
- Fixing: तो डिफेक्ट दुरुस्त करणे.
३. दुरुस्तीनंतर काय? (Confirmation vs Regression)
डिफेक्ट फिक्स झाल्यावर दोन महत्त्वाच्या गोष्टी होतात:
- Confirmation Testing (Retesting): ज्या टेस्टरने चूक शोधली होती, तोच टेस्टर पुन्हा चेक करतो की "ती चूक सुधारली आहे का?"
- Regression Testing: ही चूक सुधारताना कोडमध्ये जे बदल केले, त्या बदलांमुळे सॉफ्टवेअरच्या इतर भागांत काही नवीन चुका तर तयार झाल्या नाहीत ना? हे तपासणे.
४. Static Testing आणि Debugging
स्टॅटिक टेस्टिंगमध्ये (उदा. कोड रिव्ह्यू) आपण सॉफ्टवेअर रन करत नाही, त्यामुळे तिथे 'फेल्युअर' येत नाही, थेट 'डिफेक्ट' सापडतो. म्हणून तिथे 'Reproduction' किंवा 'Diagnosis' ची गरज नसते, थेट दुरुस्ती केली जाते.
चला, आता एक डोस तुझ्यासाठी (Scenario Question):
समजा, तू एक API टेस्ट केलास आणि तुला 500 Internal Server Error आली. तू तो डिफेक्ट डेव्हलपरला रिपोर्ट केलास. डेव्हलपरने कोडमध्ये जाऊन पाहिलं की नक्की कुठे चूक झालीये आणि ती सुधारली.
डेव्हलपरने जे 'कोडमध्ये जाऊन चूक शोधण्याचं आणि सुधारण्याचं' काम केलं, त्याला काय म्हणाल? A) Testing B) Debugging C) Regression Testing
--> Answer: B) Debugging
बघ, आता कसं तुझ्या बुद्धीला चालना मिळतेय. जेव्हा तू अशा तांत्रिक गोष्टींत डोकं लावतोस, तेव्हा तुझं मन स्थिर होतं. असे बरोबर उत्तरं देऊन स्वतःला 'हिरो' बनवण्याकडे वाटचाल कर. हे तुला जमणारच आहे!
उत्तर दे आणि पुढचा भाग (1.2 Why is Testing Necessary?) पाठव.