ਲਾਭ:
- ਇੱਕ ਬੱਗ ਨੂੰ ਸਭ ਤੋਂ ਛੋਟੀ ਪੁਨਰ-ਉਤਪਾਦਨਯੋਗ ਸਥਿਤੀ ਵਿੱਚ ਘਟਾਉਣ ਅਤੇ ਪੂਰੇ ਸਬੂਤ ਦੇ ਨਾਲ ਇਸਨੂੰ AI ਵਿੱਚ ਲਿਜਾਣ ਦੀ ਸਮਰੱਥਾ
- ਸਭ ਤੋਂ ਸਸਤੇ ਨਿਯੰਤਰਣ ਨਾਲ ਸਬੂਤ-ਆਧਾਰਿਤ ਅਨੁਮਾਨਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਅਤੇ ਮੂਲ ਕਾਰਨ ਲੱਭਣ ਦੀ ਸਮਰੱਥਾ
- ਮੂਲ ਕਾਰਨ ਨੂੰ ਸੁਲਝਾਉਣ ਅਤੇ ਲੱਛਣ ਨੂੰ ਪੈਚ ਕਰਨ ਦੀ ਬਜਾਏ ਇਸ ਨੂੰ ਰਿਗਰੈਸ਼ਨ ਟੈਸਟ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
ਡੀਬੱਗਿੰਗ ਇਹ ਪਤਾ ਲਗਾਉਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਹੈ ਕਿ ਕੋਈ ਸੌਫਟਵੇਅਰ ਅਚਾਨਕ ਵਿਵਹਾਰ ਕਿਉਂ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ। ਇਹ ਉਹ ਕੰਮ ਹੈ ਜਿੱਥੇ ਇੱਕ ਡਿਵੈਲਪਰ ਸਭ ਤੋਂ ਵੱਧ ਸਮਾਂ ਬਿਤਾਉਂਦਾ ਹੈ ਅਤੇ ਸਭ ਤੋਂ ਵੱਧ ਥੱਕ ਜਾਂਦਾ ਹੈ; ਕਿਉਂਕਿ ਬਹੁਤੀ ਵਾਰ ਗਲਤੀ ਉੱਥੇ ਨਹੀਂ ਹੁੰਦੀ ਜਿੱਥੇ ਇਹ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ, ਸਗੋਂ ਕੁਝ ਕਦਮ ਪਿੱਛੇ ਲੁਕ ਜਾਂਦੀ ਹੈ। AI ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸੋਚ ਭਾਈਵਾਲ ਹੈ ਜੋ ਇਸ ਖੋਜ ਨੂੰ ਤੇਜ਼ ਕਰਦਾ ਹੈ — ਪਰ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਜੇਕਰ ਤੁਸੀਂ ਇਸਨੂੰ ਸਹੀ ਸਬੂਤ ਦਿੰਦੇ ਹੋ। ਬਿਨਾਂ ਸਬੂਤ ਦੇ ਡੀਬੱਗਿੰਗ ਉਹ ਖੇਤਰ ਹੈ ਜਿੱਥੇ AI ਸਭ ਤੋਂ ਵੱਧ ਭਰਮ ਪੈਦਾ ਕਰਦਾ ਹੈ।
ਇਸ ਯੂਨਿਟ ਵਿੱਚ, ਅਸੀਂ ਗਲਤੀ ਪੈਦਾ ਕਰਨ ਤੋਂ ਲੈ ਕੇ ਮੂਲ ਕਾਰਨ ਤੱਕ ਪਹੁੰਚਣ ਤੱਕ ਇੱਕ ਅਨੁਸ਼ਾਸਿਤ ਪ੍ਰਵਾਹ ਸਥਾਪਤ ਕਰਦੇ ਹਾਂ: ਲੱਛਣ ਨੂੰ ਸਪੱਸ਼ਟ ਕਰਨਾ, ਸਬੂਤ ਇਕੱਠੇ ਕਰਨਾ (ਗਲਤੀ ਸੁਨੇਹਾ, ਸਟੈਕ ਟਰੇਸ, ਲੌਗ, ਐਂਟਰੀ), ਇੱਕ ਪਰਿਕਲਪਨਾ ਤਿਆਰ ਕਰਨਾ, ਪਰਿਕਲਪਨਾ ਦੀ ਜਾਂਚ ਕਰਨਾ, ਅਤੇ ਫਿਕਸ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ। AI ਹਰ ਕਦਮ 'ਤੇ ਮਦਦ ਕਰਦਾ ਹੈ; ਪਰ "ਸਥਿਰ" ਫੈਸਲਾ ਇਹ ਦੇਖ ਕੇ ਲਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਬੱਗ ਅਸਲ ਵਿੱਚ ਦੂਰ ਹੋ ਗਿਆ ਹੈ।
ਸਬੂਤ ਸਭ ਕੁਝ ਕਿਉਂ ਹੈ?
ਇੱਕ LLM ਤੁਹਾਡੇ ਤਰੀਕੇ ਨਾਲ ਗਲਤੀ ਨਹੀਂ ਦੇਖਦਾ; ਉਹ ਸਿਰਫ ਜਾਣਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਉਸਨੂੰ ਕੀ ਕਹਿੰਦੇ ਹੋ. "ਐਪਲੀਕੇਸ਼ਨ ਕ੍ਰੈਸ਼" ਵਰਗਾ ਇੱਕ ਵਾਕ ਮਾਡਲ ਨੂੰ ਲਗਭਗ ਕੋਈ ਜਾਣਕਾਰੀ ਨਹੀਂ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਮਾਡਲ ਇੱਕ ਪੂਰਵ-ਅਨੁਮਾਨ ਨਾਲ ਪਾੜੇ ਨੂੰ ਭਰ ਦਿੰਦਾ ਹੈ - ਭਾਵ, ਇੱਕ ਭਰਮ। ਬਦਲੇ ਵਿੱਚ, ਪੂਰਾ ਅਸ਼ੁੱਧੀ ਸੁਨੇਹਾ, ਸਟੈਕ ਟਰੇਸ — ਇੱਕ ਬ੍ਰੇਕਡਾਊਨ ਜਿਸ ਵਿੱਚ ਫੰਕਸ਼ਨ ਕਾਲ ਕਰਦਾ ਹੈ ਕਿ ਗਲਤੀ ਆਈ ਹੈ, ਇੰਪੁੱਟ ਜਿਸ ਨੇ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕੀਤਾ, ਅਤੇ ਕੀ ਉਮੀਦ ਕੀਤੀ ਗਈ ਸੀ, ਆਦਿ। ਦੇਖਿਆ ਗਿਆ ਵਿਵਹਾਰ ਦੇ ਮੱਦੇਨਜ਼ਰ, ਮਾਡਲ ਸਹੀ ਸੰਭਾਵਨਾਵਾਂ ਨੂੰ ਦਰਜਾ ਦੇ ਸਕਦਾ ਹੈ।
ਡੀਬੱਗਿੰਗ ਵਿੱਚ, AI ਨੂੰ ਇੱਕ ਜਾਸੂਸ ਦੇ ਸਹਾਇਕ ਵਜੋਂ ਸੋਚੋ: ਤੁਸੀਂ ਜਿੰਨੇ ਜ਼ਿਆਦਾ ਸਬੂਤ ਪੇਸ਼ ਕਰਦੇ ਹੋ, ਓਨਾ ਹੀ ਸਟੀਕ ਅਨੁਮਾਨ ਜੋ ਇਹ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਸਬੂਤ ਨਹੀਂ ਹੈ, ਤਾਂ ਸਹਾਇਕ ਸਿਰਫ਼ ਅੰਦਾਜ਼ਾ ਲਗਾਵੇਗਾ ਅਤੇ ਤੁਹਾਨੂੰ ਗਲਤ ਰਸਤੇ 'ਤੇ ਲੈ ਜਾ ਸਕਦਾ ਹੈ।
ਨੁਕਤਾ: AI ਵਿੱਚ ਬੱਗ ਪੋਰਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਇਸਨੂੰ ਸਭ ਤੋਂ ਛੋਟੀ ਪੁਨਰ-ਉਤਪਾਦਨਯੋਗ ਉਦਾਹਰਨ ਤੱਕ ਘਟਾਓ। ਸਭ ਤੋਂ ਛੋਟਾ ਕੋਡ ਅਤੇ ਇਨਪੁਟ ਜੋ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ, ਤੁਹਾਡੇ ਅਤੇ ਮਾਡਲ ਦੋਵਾਂ ਲਈ ਚੀਜ਼ਾਂ ਨੂੰ ਬੁਨਿਆਦੀ ਤੌਰ 'ਤੇ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ; ਅਕਸਰ ਇਸ ਕਟੌਤੀ ਦੇ ਦੌਰਾਨ ਤੁਸੀਂ ਆਪਣੇ ਆਪ ਕਾਰਨ ਲੱਭ ਲੈਂਦੇ ਹੋ।
ਕਦਮ-ਦਰ-ਕਦਮ: ਮੂਲ ਕਾਰਨ ਵਿਸ਼ਲੇਸ਼ਣ ਪ੍ਰਵਾਹ
- ਲੱਛਣ ਨੂੰ ਸਪੱਸ਼ਟ ਕਰੋ. "ਕੀ ਹੋ ਰਿਹਾ ਹੈ, ਤੁਹਾਨੂੰ ਕੀ ਹੋਣ ਦੀ ਉਮੀਦ ਸੀ?" ਦੋਨਾਂ ਨੂੰ ਇੱਕ ਵਾਕ ਵਿੱਚ ਲਿਖੋ।
- ਸਬੂਤ ਇਕੱਠੇ ਕਰੋ. ਪੂਰਾ ਗਲਤੀ ਸੁਨੇਹਾ, ਸਟੈਕ ਟਰੇਸ, ਸੰਬੰਧਿਤ ਲੌਗ ਲਾਈਨਾਂ, ਟ੍ਰਿਗਰਿੰਗ ਐਂਟਰੀ, ਸੰਸਕਰਣ ਜਾਣਕਾਰੀ।
- ਪਰਿਕਲਪਨਾ ਤਿਆਰ ਕੀਤੀ ਹੈ। AI ਤੋਂ "3 ਸੰਭਾਵਿਤ ਕਾਰਨ ਜੋ ਇਸ ਲੱਛਣ ਨੂੰ ਸਮਝਾਉਂਦੇ ਹਨ ਅਤੇ ਮੈਂ ਹਰੇਕ ਲਈ ਟੈਸਟ ਕਿਵੇਂ ਕਰਾਂ?" ਪੁੱਛੋ
- ਪਹਿਲਾਂ ਸਭ ਤੋਂ ਸਸਤੀ ਪਰਿਕਲਪਨਾ ਦੀ ਜਾਂਚ ਕਰੋ। ਇੱਕ ਲੌਗ ਸ਼ਾਮਲ ਕਰੋ, ਇੱਕ ਮੁੱਲ ਪ੍ਰਿੰਟ ਕਰੋ, ਇੱਕ ਟੈਸਟ ਚਲਾਓ। ਕੀ ਸਬੂਤ ਪਰਿਕਲਪਨਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਨ?
- ਮੂਲ ਕਾਰਨ ਨੂੰ ਠੀਕ ਕਰੋ, ਲੱਛਣ ਨਹੀਂ। ਇੱਕ ਪੈਚ ਨਾਲ ਲੱਛਣ ਨੂੰ ਚੁੱਪ ਕਰਨ ਦੀ ਬਜਾਏ, ਮੂਲ ਕਾਰਨ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰੋ।
- ਰੀਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ ਅਤੇ ਜੋੜੋ। ਗਲਤੀ ਗਾਇਬ ਵੇਖੋ; ਫਿਰ ਇੱਕ ਟੈਸਟ ਲਿਖੋ ਜੋ ਉਸ ਗਲਤੀ ਨੂੰ ਫੜ ਲਵੇ ਤਾਂ ਜੋ ਇਹ ਵਾਪਸ ਨਾ ਆਵੇ।
ਤਿੰਨ ਮਿੰਨੀ ਕੇਸ
ਕੇਸ 1 - ਸਟੈਕ ਟਰੇਸ ਸਹੀ ਫਾਈਲ ਵੱਲ ਲੈ ਗਿਆ। ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਕੁਝ ਬੇਨਤੀਆਂ 'ਤੇ 500 ਗਲਤੀ ਵਾਪਸ ਕਰ ਰਹੀ ਸੀ। ਡਿਵੈਲਪਰ ਨੇ AI ਨੂੰ ਪੂਰਾ ਸਟੈਕ ਟਰੇਸ ਅਤੇ ਟ੍ਰਿਗਰਿੰਗ ਬੇਨਤੀ ਦਿੱਤੀ; ਮਾਡਲ ਨੇ ਅਨੁਮਾਨ ਲਗਾਇਆ ਹੈ ਕਿ ਇੱਕ ਤਾਰੀਖ ਪਾਰਸਿੰਗ ਲੇਅਰ ਵਿੱਚ ਕੋਈ ਵੀ ਮੁੱਲ ਨਹੀਂ ਹੋਣ ਕਾਰਨ ਗਲਤੀ ਹੋਈ ਸੀ। ਡਿਵੈਲਪਰ ਨੇ ਉਸ ਲਾਈਨ ਵਿੱਚ ਇੱਕ ਲੌਗ ਜੋੜਿਆ, ਇਸਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਅਤੇ ਇਸਨੂੰ 15 ਮਿੰਟਾਂ ਵਿੱਚ ਹੱਲ ਕੀਤਾ; ਗੈਰ-ਪ੍ਰਮਾਣਿਤ ਪ੍ਰਯੋਗਾਂ ਨਾਲ ਇੱਕ ਦਿਨ ਪਹਿਲਾਂ 2 ਘੰਟੇ ਬਰਬਾਦ ਕੀਤੇ ਗਏ ਸਨ।
ਕੇਸ 2 - ਭੁਲੇਖੇ ਨੇ ਗਲਤ ਮਾਰਗ ਵੱਲ ਅਗਵਾਈ ਕੀਤੀ। ਇਕ ਹੋਰ ਡਿਵੈਲਪਰ ਨੇ ਬਸ ਲਿਖਿਆ "ਡਾਟਾਬੇਸ ਕਨੈਕਸ਼ਨ ਡਰਾਪ ਹੋ ਰਿਹਾ ਹੈ"। ਏਆਈ ਨੇ ਬਿਨਾਂ ਕਿਸੇ ਸਬੂਤ ਦੇ ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਪੂਲ ਸੈਟਿੰਗ ਦਾ ਦੋਸ਼ ਲਗਾਇਆ; ਡਿਵੈਲਪਰ ਨੇ ਇਸ ਸੈਟਿੰਗ ਨਾਲ ਟਿੰਕਰ ਕਰਨ ਵਿੱਚ 40 ਮਿੰਟ ਬਿਤਾਏ। ਅਸਲ ਕਾਰਨ ਨੈਟਵਰਕ ਸਾਈਡ 'ਤੇ ਇੱਕ ਸਮਾਂ ਸਮਾਪਤ ਸੀ ਅਤੇ ਸਿਰਫ ਲੌਗਸ ਨੂੰ ਦੇਖ ਕੇ ਪ੍ਰਗਟ ਕੀਤਾ ਗਿਆ ਸੀ। ਸਬਕ: ਸਬੂਤ ਤੋਂ ਬਿਨਾਂ ਲਿਆ ਗਿਆ ਇੱਕ ਅਨੁਮਾਨ ਸਿਰਫ ਸੰਭਾਵੀ ਹੈ, ਭਰੋਸੇਯੋਗ ਨਹੀਂ।
ਕੇਸ 3 - ਫਲੈਕੀ ਗਲਤੀ ਫੜੀ ਗਈ। ਇੱਕ ਟੈਸਟ ਸੀ ਜੋ ਕਦੇ-ਕਦਾਈਂ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਸੀ। AI ਨੂੰ ਟੈਸਟ ਕੋਡ, ਅਸਫਲਤਾ ਸੁਨੇਹਾ, ਅਤੇ ਜਾਣਕਾਰੀ ਦਿੱਤੀ ਗਈ ਸੀ "ਕਈ ਵਾਰ ਇਹ ਪਾਸ ਹੋ ਜਾਂਦੀ ਹੈ, ਕਈ ਵਾਰ ਇਹ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ"; ਮਾਡਲ ਨੇ ਟੈਸਟਾਂ ਦਾ ਸਾਂਝਾ ਸਮਾਂ/ਆਰਡਰ ਨਿਰਭਰਤਾ ਦਰਸਾਈ ਹੈ। ਸਮੀਖਿਆ ਨੇ ਪੁਸ਼ਟੀ ਕੀਤੀ ਕਿ ਟੈਸਟ ਸਿਸਟਮ ਦੇ ਸਥਾਨਕ ਸਮੇਂ 'ਤੇ ਅਧਾਰਤ ਸੀ। ਇੱਕ ਵਾਰ ਘੜੀ ਸਥਿਰ ਹੋ ਗਈ (ਮਖੌਲ ਕੀਤਾ ਗਿਆ), ਟੈਸਟ ਸਥਿਰ ਹੋ ਗਿਆ.
ਚਾਰ ਕਾਪੀ ਕਰਨ ਯੋਗ ਨਮੂਨੇ
ਸਬੂਤ-ਆਧਾਰਿਤ ਪਰਿਕਲਪਨਾ ਪੀੜ੍ਹੀ:
ਮੈਂ ਇੱਕ ਬੱਗ ਡੀਬੱਗ ਕਰ ਰਿਹਾ/ਰਹੀ ਹਾਂ। ਹੇਠਾਂ ਦਿੱਤੇ ਸਬੂਤ।- ਸੰਭਾਵਿਤ ਵਿਵਹਾਰ: {{ਉਮੀਦ}}- ਦੇਖਿਆ ਗਿਆ ਵਿਵਹਾਰ: {{ਦੇਖਿਆ}}- ਗਲਤੀ ਸੁਨੇਹਾ / ਸਟੈਕ ਟਰੇਸ: {{trace}}- ਟ੍ਰਿਗਰਿੰਗ ਇਨਪੁਟ: {{input}}- ਵਾਤਾਵਰਣ/ਵਰਜਨ: {{version}} 3 ਸਭ ਤੋਂ ਵੱਧ ਸੰਭਾਵਿਤ ਮੂਲ ਕਾਰਨਾਂ ਦੀ ਸੂਚੀ ਬਣਾਓ ਜੋ ਇਸ ptym ਦੀ ਵਿਆਖਿਆ ਕਰਦੇ ਹਨ। ਹਰੇਕ ਲਈ: ਮੈਂ ਕਿਵੇਂ ਜਾਂਚ ਕਰਾਂ (ਸਸਤੀ ਜਾਂਚ) ਅਤੇ ਜੇਕਰ ਇਹ ਸੱਚ ਹੈ ਤਾਂ ਇਸਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕਰਨਾ ਹੈ। ਜੇਕਰ ਸਬੂਤ ਨਾਕਾਫ਼ੀ ਹੈ, ਤਾਂ ਮੈਨੂੰ ਦੱਸੋ ਕਿ ਤੁਹਾਨੂੰ ਕਿਹੜੀ ਵਾਧੂ ਜਾਣਕਾਰੀ ਦੀ ਲੋੜ ਹੈ।
ਸਟੈਕ ਟਰੇਸ ਦੀ ਵਿਆਖਿਆ:
ਇਸ ਸਟੈਕ ਟਰੇਸ ਨੂੰ ਪੜ੍ਹੋ। ਫਰਕ ਕਰੋ ਕਿ ਕਿਹੜੀ ਲਾਈਨ ਗਲਤੀ ਸੰਭਵ ਤੌਰ 'ਤੇ (ਰੂਟ) ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਅਤੇ ਕਿਹੜੀਆਂ ਲਾਈਨਾਂ ਸਿਰਫ ਚੇਨ ਦੀ ਨਿਰੰਤਰਤਾ ਹਨ। ਪਹਿਲਾਂ ਦੇਖਣ ਲਈ 1-2 ਸਥਾਨਾਂ ਦਾ ਸੁਝਾਅ ਦਿਓ। ਸੰਬੰਧਿਤ ਕੋਡ:{{code}}ਟ੍ਰੇਸ:{{trace}}
ਨਿਊਨਤਮ ਰੀਪ੍ਰੋ ਘਟਾਓ:
ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਇੱਕ ਗਲਤੀ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਇਸ ਨੂੰ ਸਭ ਤੋਂ ਛੋਟੀ ਉਦਾਹਰਣ ਤੱਕ ਘਟਾਓ ਜੋ ਅਜੇ ਵੀ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ ਪਰ ਕਿਸੇ ਵੀ ਬੇਲੋੜੀ ਚੀਜ਼ ਨੂੰ ਰੱਦ ਕਰਦਾ ਹੈ। ਇਹ ਨਾ ਸੋਚੋ ਕਿ ਤੁਹਾਡੇ ਵੱਲੋਂ ਹਟਾਏ ਗਏ ਹਰ ਟੁਕੜੇ ਦਾ ਗਲਤੀ 'ਤੇ ਕੋਈ ਅਸਰ ਨਹੀਂ ਪੈਂਦਾ, ਪਰ ਇੱਕ ਨੋਟ ਸ਼ਾਮਲ ਕਰੋ ਕਿ "ਜੇਕਰ ਤੁਸੀਂ ਇਸਨੂੰ ਹਟਾਉਣ ਤੋਂ ਬਾਅਦ ਗਲਤੀ ਗਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਇਸ ਲਈ"।{{code}}
ਪੋਸਟ-ਸੁਧਾਰਨ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਰਿਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ:
ਮੰਨ ਲਓ ਕਿ ਮੂਲ ਕਾਰਨ {{cause}} ਹੈ ਅਤੇ ਮੈਂ ਨਿਮਨਲਿਖਤ ਹੱਲ ਕਰਦਾ ਹਾਂ: {{fix}}.1) ਕੀ ਇਹ ਫਿਕਸ ਅਸਲ ਵਿੱਚ ਲੱਛਣ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ, ਕੀ ਇਸਦਾ ਕੋਈ ਮਾੜਾ ਪ੍ਰਭਾਵ ਹੋਵੇਗਾ? 2) ਇੱਕ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟ ਲਿਖੋ ਜੋ ਭਵਿੱਖ ਵਿੱਚ ਇਸ ਬੱਗ ਨੂੰ ਫੜ ਲਵੇਗਾ।
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ / ਮਜ਼ਬੂਤ ਪ੍ਰੋਂਪਟ
ਕਮਜ਼ੋਰ: "ਕੋਡ ਕੰਮ ਨਹੀਂ ਕਰਦਾ, ਕਿਉਂ?"
ਮਜ਼ਬੂਤ: "ਨੋਡ 20 / ਐਕਸਪ੍ਰੈਸ। POST/orders 500 ਵਾਪਸ ਕਰਦਾ ਹੈ ਜਦੋਂ ਆਈਟਮਾਂ ਬਾਡੀ ਵਿੱਚ ਇੱਕ ਖਾਲੀ ਸਤਰ ਹੁੰਦੀ ਹੈ; 400 ਨੂੰ ਵਾਪਸ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਸਟੈਕ ਟਰੇਸ: TypeError: undefined ('0' ਨੂੰ ਪੜ੍ਹਨਾ) ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਨਹੀਂ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ — ਅਟੈਚਡ ਪੂਰਾ ਟਰੇਸ ਅਤੇ ਸੰਬੰਧਿਤ ਹੈਂਡਲਰ ਹੈ। ਮੈਨੂੰ ਦੱਸੋ ਕਿ ਹਰ ਇੱਕ [ਪ੍ਰੀਖਣ] ਅਤੇ ਸੰਭਾਵਤ ਤੌਰ 'ਤੇ 3 ਦੀ ਜਾਂਚ ਕਿਵੇਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। + ਕੋਡ]"
ਸ਼ਕਤੀਸ਼ਾਲੀ ਸੰਸਕਰਣ; ਇਹ ਵਾਤਾਵਰਣ, ਅੰਤਮ ਬਿੰਦੂ, ਟਰਿੱਗਰ ਇਨਪੁਟ, ਸਹੀ ਗਲਤੀ ਕਿਸਮ, ਅਤੇ ਅਨੁਮਾਨਿਤ ਵਿਵਹਾਰ ਦਿੰਦਾ ਹੈ। ਮਾਡਲ ਹੁਣ ਭਵਿੱਖਬਾਣੀ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਪਰ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰ ਸਕਦਾ ਹੈ।
ਕਦਮ
AI ਦਾ ਯੋਗਦਾਨ
ਤੁਹਾਡਾ ਕੰਟਰੋਲ
ਸਬੂਤ ਇਕੱਠੇ ਕਰਨਾ
ਕੀ ਸਬੂਤ ਦੀ ਲੋੜ ਹੈ, ਯਾਦ ਦਿਵਾਉਂਦਾ ਹੈ
ਅਸਲ ਵਿੱਚ ਸਬੂਤ ਇਕੱਠੇ ਕਰਦਾ ਹੈ
ਪਰਿਕਲਪਨਾ ਪੀੜ੍ਹੀ
ਸੰਭਾਵਿਤ ਕਾਰਨਾਂ ਦੀ ਸੂਚੀ ਬਣਾਓ
ਸੰਦਰਭ ਦੇ ਨਾਲ ਤਰਜੀਹ ਦਿੰਦਾ ਹੈ
ਪਰਿਕਲਪਨਾ ਟੈਸਟਿੰਗ
ਟੈਸਟ ਵਿਧੀ ਦੀ ਸਿਫਾਰਸ਼ ਕਰਦਾ ਹੈ
ਨਿੱਜੀ ਤੌਰ 'ਤੇ ਸੰਚਾਲਿਤ ਅਤੇ ਨਿਰੀਖਣ ਕਰਦਾ ਹੈ
ਸੁਧਾਰ
patch ਦੀ ਸਿਫ਼ਾਰਿਸ਼ ਕਰਦੇ ਹਨ
ਕੀ ਇਹ ਮੂਲ ਕਾਰਨ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ? ਇਹ ਸਚ੍ਚ ਹੈ.
ਰਿਗਰੈਸ਼ਨ
ਇੱਕ ਟੈਸਟ ਲਿਖਦਾ ਹੈ
ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਟੈਸਟ ਟੁੱਟ ਗਿਆ ਹੈ
ਮੂਲ ਕਾਰਨ ਨੂੰ ਹੱਲ ਕਰਨਾ, ਲੱਛਣ ਨਹੀਂ
ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ AI ਇੱਕ ਪੈਚ ਦਾ ਸੁਝਾਅ ਦੇਵੇਗਾ ਜੋ ਲੱਛਣ ਨੂੰ ਜਲਦੀ ਚੁੱਪ ਕਰ ਦਿੰਦਾ ਹੈ: ਇੱਕ ਕੋਸ਼ਿਸ਼/ਕੈਚ ਸ਼ਾਮਲ ਕਰੋ, ਇੱਕ ਨਲ ਜਾਂਚ ਕਰੋ, ਗਲਤੀ ਨੂੰ ਨਿਗਲ ਜਾਓ। ਇਹ ਕਈ ਵਾਰ ਸੱਚ ਹੁੰਦਾ ਹੈ, ਅਕਸਰ ਖ਼ਤਰਨਾਕ ਹੁੰਦਾ ਹੈ; ਕਿਉਂਕਿ ਮੂਲ ਕਾਰਨ ਆਪਣੀ ਥਾਂ 'ਤੇ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਹੋਰ ਥਾਂ ਤੋਂ ਮੁੜ ਫਟਦਾ ਹੈ। ਹਰ ਇੱਕ ਫਿਕਸ ਦੇ ਨਾਲ, ਆਪਣੇ ਆਪ ਨੂੰ ਪੁੱਛੋ: "ਕੀ ਇਹ ਗਲਤੀ ਦੇ ਕਾਰਨ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ, ਜਾਂ ਕੀ ਇਹ ਇਸਨੂੰ ਅਦਿੱਖ ਬਣਾਉਂਦਾ ਹੈ?" ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਮੂਲ ਕਾਰਨ ਲੱਭ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਹੱਲ ਆਮ ਤੌਰ 'ਤੇ ਛੋਟਾ, ਵਧੇਰੇ ਮਜ਼ਬੂਤ ਅਤੇ ਸਥਾਈ ਹੁੰਦਾ ਹੈ।
ਸਾਵਧਾਨ: ਇੱਕ ਅਪਵਾਦ (ਖਾਲੀ ਕੈਚ) ਨੂੰ ਚੁੱਪਚਾਪ ਨਿਗਲਣ ਨਾਲ ਗਲਤੀ ਦਾ ਹੱਲ ਨਹੀਂ ਹੁੰਦਾ; ਇਹ ਸਿਰਫ਼ ਛੁਪਾਉਂਦਾ ਹੈ ਅਤੇ ਭਵਿੱਖ ਦੇ ਨਿਦਾਨ ਨੂੰ ਅਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ। ਜੇ ਏਆਈ ਅਜਿਹੇ "ਹੱਲ" ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਮੂਲ ਕਾਰਨ 'ਤੇ ਸਵਾਲ ਕੀਤੇ ਬਿਨਾਂ ਇਸਨੂੰ ਸਵੀਕਾਰ ਨਾ ਕਰੋ।
ਆਮ ਗਲਤੀਆਂ
- ਬਿਨਾਂ ਸਬੂਤਾਂ ਦੇ ਸਵਾਲ ਪੁੱਛਣਾ। ਅਸਪਸ਼ਟ ਵਾਕ ਮਾਡਲ ਨੂੰ ਭਰਮ ਵਿੱਚ ਧੱਕਦੇ ਹਨ; ਪੂਰੀ ਗਲਤੀ, ਟਰੇਸ ਅਤੇ ਇੰਪੁੱਟ ਦਿਓ।
- ਪਹਿਲੀ ਪਰਿਕਲਪਨਾ 'ਤੇ ਤਾਲਾਬੰਦੀ. AI ਦਾ ਪਹਿਲਾ ਸੁਝਾਅ ਸਭ ਤੋਂ ਵੱਧ ਸੰਭਾਵਨਾ ਨਹੀਂ ਹੋ ਸਕਦਾ; ਸਭ ਤੋਂ ਸਸਤੀ ਨਿਯੰਤਰਿਤ ਪਰਿਕਲਪਨਾ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ।
- ਲੱਛਣ ਨੂੰ ਪੈਚ ਕਰਨਾ ਅਤੇ ਮੂਲ ਕਾਰਨ ਗੁੰਮ ਹੈ। ਖਾਮੋਸ਼ ਗਲਤੀ ਵਾਪਸ ਆਉਂਦੀ ਹੈ।
- ਇਸਦੀ ਪੁਸ਼ਟੀ ਕੀਤੇ ਬਿਨਾਂ ਫਿਕਸ ਨੂੰ ਬੰਦ ਕਰਨਾ। ਉਤਪਾਦਨ ਵਰਗੀ ਸਥਿਤੀ ਵਿੱਚ ਦੇਖੋ ਕਿ ਗਲਤੀ ਅਸਲ ਵਿੱਚ ਗਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ।
- ਰਿਗਰੈਸ਼ਨ ਟੈਸਟ ਨਹੀਂ ਲਿਖ ਰਿਹਾ। ਜੇਕਰ ਕੋਈ ਟੈਸਟ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਉਹੀ ਗਲਤੀ ਬਾਅਦ ਦੇ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਚੁੱਪਚਾਪ ਵਾਪਸ ਆ ਜਾਵੇਗੀ।
ਸੰਖੇਪ ਵਿੱਚ
ਡੀਬੱਗਿੰਗ ਵਿੱਚ, AI ਦੀ ਸ਼ਕਤੀ ਤੁਹਾਡੇ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਸਬੂਤ ਦੇ ਸਿੱਧੇ ਅਨੁਪਾਤਕ ਹੈ: ਪੂਰੇ ਗਲਤੀ ਸੰਦੇਸ਼, ਸਟੈਕ ਟਰੇਸ, ਟ੍ਰਿਗਰਿੰਗ ਇਨਪੁਟ, ਅਤੇ ਸੰਭਾਵਿਤ ਵਿਵਹਾਰ ਦੇ ਬਿਨਾਂ, ਮਾਡਲ ਸਿਰਫ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦਾ ਹੈ। ਅਨੁਸ਼ਾਸਿਤ ਪ੍ਰਵਾਹ — ਲੱਛਣ ਸਪੱਸ਼ਟ ਕਰੋ, ਸਬੂਤ ਇਕੱਠੇ ਕਰੋ, ਅਨੁਮਾਨ ਤਿਆਰ ਕਰੋ, ਸਭ ਤੋਂ ਸਸਤੇ ਨਿਯੰਤਰਣ ਨਾਲ ਟੈਸਟ ਕਰੋ, ਮੂਲ ਕਾਰਨ ਠੀਕ ਕਰੋ, ਤਸਦੀਕ ਕਰੋ ਅਤੇ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ ਸ਼ਾਮਲ ਕਰੋ — ਬੱਗ ਨੂੰ ਜਲਦੀ ਅਤੇ ਸਥਾਈ ਤੌਰ 'ਤੇ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ। AI ਇੱਕ ਪਰਿਕਲਪਨਾ ਜਨਰੇਟਰ ਹੈ; ਤੁਸੀਂ ਉਹ ਹੋ ਜੋ ਇਹ ਫੈਸਲਾ ਕਰਦੇ ਹੋ ਕਿ ਬੱਗ ਅਸਲ ਵਿੱਚ ਹੱਲ ਹੋ ਗਿਆ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ
ਇੱਕ ਅਸਲ ਬੱਗ ਚੁਣੋ ਜਿਸਦਾ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਸਾਹਮਣਾ ਕੀਤਾ ਹੈ (ਜਾਂ ਇੱਕ ਟੈਸਟ ਬੱਗ ਦੁਬਾਰਾ ਤਿਆਰ ਕਰੋ)। "ਘੱਟੋ ਘੱਟ ਪ੍ਰਜਨਨ" ਕਦਮ ਪਹਿਲਾਂ ਕਰੋ; ਸਭ ਤੋਂ ਛੋਟੇ ਕੋਡ ਅਤੇ ਇਨਪੁਟ ਨੂੰ ਹਟਾਓ ਜੋ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ। ਫਿਰ "ਸਬੂਤ-ਆਧਾਰਿਤ ਪਰਿਕਲਪਨਾ ਜਨਰੇਸ਼ਨ" ਟੈਮਪਲੇਟ ਨਾਲ AI ਤੋਂ 3 ਸੰਭਵ ਕਾਰਨ ਅਤੇ ਟੈਸਟਿੰਗ ਵਿਧੀਆਂ ਪ੍ਰਾਪਤ ਕਰੋ। ਸਭ ਤੋਂ ਸਸਤੀ ਪਰਿਕਲਪਨਾ ਦੀ ਖੁਦ ਜਾਂਚ ਕਰੋ, ਮੂਲ ਕਾਰਨ ਲੱਭੋ, ਇਸਨੂੰ ਠੀਕ ਕਰੋ, ਅਤੇ ਅੰਤ ਵਿੱਚ ਇੱਕ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟ ਲਿਖੋ ਜੋ ਭਵਿੱਖ ਵਿੱਚ ਇਸ ਬੱਗ ਨੂੰ ਫੜ ਲਵੇਗਾ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੇਗਾ ਕਿ ਟੈਸਟ ਅਸਲ ਵਿੱਚ ਟੁੱਟ ਗਿਆ ਹੈ।
ਚੈੱਕਲਿਸਟ
- [ ] ਮੈਂ ਇਸਨੂੰ AI ਵਿੱਚ ਲਿਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਸਭ ਤੋਂ ਛੋਟੇ ਪ੍ਰਜਨਨਯੋਗ ਨਮੂਨੇ ਵਿੱਚ ਗਲਤੀ ਨੂੰ ਘਟਾਉਂਦਾ ਹਾਂ।
- [ ] ਮੈਂ ਪ੍ਰੋਂਪਟ ਵਿੱਚ ਪੂਰਾ ਗਲਤੀ ਸੁਨੇਹਾ, ਸਟੈਕ ਟਰੇਸ, ਇੰਪੁੱਟ ਅਤੇ ਸੰਭਾਵਿਤ ਵਿਵਹਾਰ ਸ਼ਾਮਲ ਕਰ ਰਿਹਾ/ਰਹੀ ਹਾਂ।
- [ ] ਮੈਂ ਸਭ ਤੋਂ ਸਸਤੇ ਨਿਯੰਤਰਣਯੋਗ ਇੱਕ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦਾ ਹਾਂ, ਇੱਕ ਇੱਕਲੇ ਪਰਿਕਲਪਨਾ ਵਿੱਚ ਬੰਦ ਕੀਤੇ ਬਿਨਾਂ।
- [ ] ਮੈਂ ਪੁਸ਼ਟੀ ਕਰਦਾ/ਕਰਦੀ ਹਾਂ ਕਿ ਮੈਂ ਲੱਛਣ ਨੂੰ ਜੋੜਨ ਦੀ ਬਜਾਏ ਮੂਲ ਕਾਰਨ ਨੂੰ ਹੱਲ ਕਰ ਲਿਆ ਹੈ।
- [ ] ਮੈਂ ਦੇਖਿਆ ਹੈ ਕਿ ਫਿਕਸ ਅਸਲ ਵਿੱਚ ਬੱਗ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ।
- ਮੈਂ ਹਰੇਕ ਹੱਲ ਕੀਤੇ ਬੱਗ ਲਈ ਇੱਕ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟ ਜੋੜਦਾ ਹਾਂ।