कोड की समीक्षा उद्धार / परीक्षण चक्र के पीछे रहती है


14

हमारी चुस्त प्रक्रिया में हमारे पास 2-सप्ताह स्प्रिंट हैं। कार्य दैनिक आधार (दैनिक बिल्ड) पर वितरित किए जाते हैं, और टेस्ट टीम अगले दिन या उसी दिन तुरंत अपना परीक्षण पूरा करती है।

हमारे पास देव कोड समीक्षाएं भी हैं, जिनमें कुछ समय (1-2 घंटे) की आवश्यकता होती है, इसलिए उन्हें सप्ताह में 3 बार निर्धारित किया जाता है: मोन-वेड्स-शुक्र। डेवलपर्स एक साथ आते हैं और सुझाव देते हैं कि कैसे / सुधारकर्ता कोड को सुधारना है।

हमारी समस्या यह है कि जब कोड समीक्षा के बाद एक्शन आइटम आते हैं, तब तक अधिकांश कार्यों का परीक्षण किया जा चुका होता है। परीक्षक पुन: परीक्षण नहीं करना चाहते हैं कि पहले से ही उनके परीक्षण क्या पारित हुए हैं। वे आंतरिक देव परिवर्तनों के बारे में परवाह नहीं करते हैं।

क्या हम चुस्त प्रक्रिया को गलत समझ रहे हैं? क्या दैनिक समीक्षा / परीक्षण चक्र के साथ कोड समीक्षाएं असंगत हैं? हम हर दिन कोड समीक्षा नहीं कर सकते, क्योंकि वे हर किसी का समय लेते हैं।


मुझे कुछ सुझाव मिले जो मददगार हो सकते हैं - कोड रिव्यू इन एजिल टीम्स - भाग II (बहुत जल्दी Google खोज से मिला - आप और अधिक खोजने में सक्षम हो सकते हैं)।
डुकलिंग

1
क्या आपके परीक्षक "जारी" कार्यों पर काम कर रहे हैं? क्या आपकी टीम की "जारी" की परिभाषा में कोड समीक्षा और एक्शन आइटम रिज़ॉल्यूशन शामिल है? या कोड समीक्षा आपकी टीम की परिभाषा के बाहर हो रही है?
केंट ए।

1
क्या आपकी परीक्षण टीम में एक स्वचालित प्रतिगमन सूट नहीं है?
तेलस्टिन

5
आप "कोड समीक्षाएं" कैसे करते हैं? क्या यह एक लंबी औपचारिक प्रक्रिया है, जहां समीक्षकों को गुणवत्ता मैट्रिक्स की पूरी चेकलिस्ट (प्रयास: कई व्यक्ति-घंटे) के माध्यम से काम करना है? या यह सिर्फ किसी अन्य टीम के सदस्य को कोड के माध्यम से देख रहा है और सवाल पूछ रहा है अगर कुछ बंद लगता है (प्रयास: कोडर और समीक्षक के लिए 10-30 मिनट)? आप कोड समीक्षाएं क्यों करते हैं? कोड गुणवत्ता सुनिश्चित करने के लिए? कीड़े पकड़ने के लिए? कई व्यक्तियों के बीच प्रणाली का ज्ञान फैलाना? क्या आपका कोड समीक्षा तंत्र इन लक्ष्यों को पूरा करने में मदद करता है, या यह सिर्फ नौकरशाही है जिसे कोई करना नहीं चाहता है?
अमन

मुझे सभी उत्तर पसंद हैं, लेकिन मुझे एक बिंदु जोड़ना चाहिए जिसे मैं महत्वपूर्ण मानता हूं। आप पूछ रहे हैं कि क्या आप एजाइल की गलत व्याख्या कर रहे हैं लेकिन आप यह नहीं कहते कि कौन सी कार्यप्रणाली है। क्या आप स्क्रैम का अनुसरण कर रहे हैं? सबसे महत्वपूर्ण: क्या आपके पास "पूर्ण" की परिभाषा है? मैं पूछ रहा हूँ क्योंकि मुझे यह बहुत अजीब लगता है। आप वास्तव में इस पर काम करने से पहले कुछ "डिलीवर" कर रहे हैं। कोड की समीक्षा की तरह लगता है कुछ "अतिरिक्त" आप सिर्फ इसलिए करते हैं।
लोरेंजो डेमेटे

जवाबों:


8

परीक्षक पुन: परीक्षण नहीं करना चाहते हैं यह कहने की तरह है कि "कोडर रिफ्लेक्टर नहीं चाहते हैं।" नौकरी का अपना हिस्सा। इस प्रक्रिया को कुछ इस तरह से बहाल किया जा सकता है: कार्य बनाए जाते हैं। कोड उत्पन्न होता है। कोड का परीक्षण किया जाता है। कोड की समीक्षा की जाती है। कोड में खामियां पाई जाती हैं। इन खामियों को दूर करने के लिए नए कार्य बनाए गए हैं (उदाहरण के लिए कोड को हटा दिया गया है)। इन नए कार्यों के लिए नए परीक्षण की आवश्यकता होती है।


2
+1 एक दैनिक रिलीज़ फुर्तीली कार्यप्रणाली में, कार्यों को फिर से न खोलें। अपनी टीम की प्राथमिकताओं के अनुसार पाए गए मुद्दों को संबोधित करने के लिए एक नया कार्य बनाएं और इसे शेड्यूल करें। नए कार्य = नई क्यूए कार्रवाई (जिसका अर्थ है कि फिर से वही परीक्षण चलाने का मतलब है)। यदि QA इसे पसंद नहीं करता है, तो बहुत सारे अन्य करियर हैं।
केंट ए।

यह स्पष्ट रूप से काम करता है लेकिन यह अक्षम लगता है।
usr

7

यदि आप किसी बिंदु पर कोड की समीक्षा करने जा रहे हैं, तो समीक्षा को जल्दी करना अधिक महंगा नहीं है। और ऐसा लगता है कि आपके पास एक महंगी परीक्षण प्रक्रिया है, इसलिए आप दो बार परीक्षण नहीं करना चाहते हैं। इसलिए परीक्षण से पहले कोड की समीक्षा करना सस्ता है। परीक्षण के बाद कोड की समीक्षा करने से काम तेज नहीं होता है। यह धीमी गति से चलता है और आपको खराब लिखित लेकिन सफलतापूर्वक परीक्षण किए गए कोड को वितरित करने के लिए प्रेरित करता है। समय के साथ यह सभी अन-रिव्यू कोड काम को धीमा और धीमा कर देगा। तब एक अधिक कुशल प्रतियोगी कम कीमत पर एक बेहतर उत्पाद प्रदान करता है और यह खेल खत्म हो जाता है।

इसके अलावा, परीक्षण को स्वचालित करें। मैनुअल परीक्षण तो 1970 है।


5

यदि आपको QA से पहले के समय में कोड समीक्षाएं प्राप्त करने में मुश्किल हो रही है, तो आपको कोड समीक्षाओं को और अधिक हल्के बनाने पर विचार करना चाहिए, क्योंकि Agile Teams में कोड समीक्षा, भाग II कि @Dukeling ने चर्चा की।

मैंने पाया कि सबसे सरल चीज जिसे संभवतः एक कोड समीक्षा कहा जा सकता है, ने लाभ दिया: कोड करने से पहले (या एक डीवीसीएस में धक्का), एक दूसरे डेवलपर को कॉल करें और अपने बदलाव के माध्यम से चलें। इसमें पाँच या दस मिनट लग सकते हैं। इस कोड की समीक्षा का लक्ष्य "क्या यह अन्य डेवलपर के लिए समझ में आता है?" लक्ष्य डिजाइन कार्यान्वयन पर नाइटपिक करने के लिए या समीक्षक के व्यक्तिगत विचारों के लिए पूरी तरह से अनुरूप नहीं था कि यह कैसे लिखा जाना चाहिए था। इसने ये लाभ दिए:

  • कोड कैसे काम करता है, इसका साझा ज्ञान बेहतर है
  • भ्रमित या संभावित रूप से गलत कोड पकड़ा गया क्योंकि कोड को समझाने का कार्य लेखक को चीजों पर पुनर्विचार करने के लिए पर्याप्त था
  • धीरे-धीरे टीम के मुहावरों और शैली को विकसित करने में मदद की, क्योंकि इससे चीजों को समझाने में आसानी हुई
  • टीम की ओर से बहुत कम बड़बोलापन

समस्याओं को खोजने के लिए डीपर कोड पूरी तरह से बेहतर काम करता है। लेकिन आपको उन्हें प्राप्त करने और मूल्य प्राप्त करने के लिए उन पर कार्य करने में सक्षम होना चाहिए। एक हल्की प्रक्रिया जो आप हर समय कर सकते हैं एक हैवीवेट प्रक्रिया की तुलना में अधिक सहायक हो सकती है जो कि बंद रहती है, या केवल बैकलॉग में चीजों को जोड़ती है।


1

इस समस्या का एक समाधान यह है कि उपयोगकर्ता की कहानी समाप्त होने के बाद एक अन्य सहकर्मी द्वारा कोड की त्वरित समीक्षा करें, ताकि कोड में कोई बुनियादी / स्पष्ट गलतियाँ न हों।

लेकिन परीक्षण चक्र से पहले ऐसा होना चाहिए। तब परीक्षण के बाद कम कोड परिवर्तन होंगे, जब आप सभी टीम के साथ मिलकर बड़ी समीक्षा करेंगे।


1

यह लगता है कि परीक्षकों से पीछे हटना नहीं चाहते क्योंकि परीक्षण एक दर्दनाक / महंगी प्रक्रिया है।

देवों और परीक्षकों द्वारा टेस्ट ऑटोमेशन, चुस्त तरीके से काम करने की कोशिश करने वाली टीमों के लिए एक बड़ा बोनस है। आपके परीक्षण सस्ता, आसान, और अधिक पुनरुत्पादनीय हैं और फिर आप उन्हें निष्पादित कर सकते हैं - और कम प्रतिरोध आपको कुछ बदलने के लिए मिलेगा।

कुछ देव प्रतिक्रिया के आधार पर एक त्वरित रिफ्लेक्टर किया? बड़े लाल बटन को दबाएं जो आपके रिग्रेशन / स्मोक सूट को निष्पादित करता है और किसी भी दृश्य समस्याओं की जांच करने के लिए एक बार फिर से एक त्वरित मैनुअल करता है जो कि फसली हो सकती है। आसान!

एक बार जब आप इस तरह से एक जगह पर होते हैं, तो पुन: परीक्षण एक घर का काम नहीं होगा - यह दूसरी प्रकृति होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.