ਯੂਨਿਟ 5 / 12

ਡੀਬੱਗਿੰਗ ਅਤੇ ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ

ਲਾਭ:

  • ਗਲਤੀ ਸੁਨੇਹੇ, ਸਟੈਕ ਟਰੇਸ, ਅਤੇ ਸਭ ਤੋਂ ਛੋਟੀ ਪ੍ਰਜਨਨ ਉਦਾਹਰਨ ਦੇ ਨਾਲ AI ਵਿੱਚ ਇੱਕ ਬੱਗ ਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਵਰਣਨ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
  • AI ਦੇ ਨਾਲ ਇੱਕ ਵਿਵਸਥਿਤ ਡੀਬਗਿੰਗ ਪ੍ਰਵਾਹ ਨੂੰ ਚਲਾਉਣ ਦੀ ਸਮਰੱਥਾ ਇਸ ਨੂੰ ਕਦਮ ਦਰ ਕਦਮ ਹੇਠਾਂ ਅਨੁਮਾਨ ਲਗਾਉਣ ਅਤੇ ਸੰਕੁਚਿਤ ਕਰਕੇ ਮੂਲ ਕਾਰਨ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ
  • ਇਹ ਤਸਦੀਕ ਕਰਨ ਦੀ ਯੋਗਤਾ ਕਿ AI ਦੁਆਰਾ ਸੁਝਾਏ ਗਏ ਫਿਕਸ ਨੇ ਅਸਲ ਵਿੱਚ ਦੁਬਾਰਾ ਉਤਪਾਦਨ ਅਤੇ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ ਦੁਆਰਾ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕੀਤਾ ਹੈ

ਡੀਬੱਗਿੰਗ ਇਹ ਪਤਾ ਲਗਾਉਣ ਦਾ ਕੰਮ ਹੈ ਕਿ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਉਮੀਦ ਨਾਲੋਂ ਵੱਖਰਾ ਵਿਵਹਾਰ ਕਿਉਂ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਠੀਕ ਕਰਨਾ ਹੈ, ਅਤੇ ਇਹ ਜ਼ਿਆਦਾਤਰ ਇੰਜੀਨੀਅਰਾਂ ਦਾ ਬਹੁਤ ਸਾਰਾ ਸਮਾਂ ਲੈਂਦਾ ਹੈ। ਚੰਗੀ ਡੀਬੱਗਿੰਗ ਇੱਕ ਅਨੁਮਾਨ ਲਗਾਉਣ ਵਾਲੀ ਖੇਡ 'ਤੇ ਅਧਾਰਤ ਨਹੀਂ ਹੈ, ਪਰ ਯੋਜਨਾਬੱਧ ਸੰਕੁਚਿਤ ਕਰਨ 'ਤੇ ਅਧਾਰਤ ਹੈ: ਲੱਛਣ ਨੂੰ ਸਪੱਸ਼ਟ ਕਰੋ, ਅਨੁਮਾਨ ਲਗਾਓ, ਅਨੁਮਾਨ ਦੀ ਜਾਂਚ ਕਰੋ, ਮੂਲ ਕਾਰਨ ਤੱਕ ਪਹੁੰਚੋ। AI ਇਸ ਚੱਕਰ ਵਿੱਚ ਇੱਕ ਬਹੁਤ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸਾਥੀ ਹੈ; ਪਰ ਜੇ ਤੁਸੀਂ ਉਸਨੂੰ ਸਹੀ ਜਾਣਕਾਰੀ ਦਿੰਦੇ ਹੋ ਤਾਂ ਹੀ। “ਕੋਡ ਕੰਮ ਨਹੀਂ ਕਰਦਾ, ਇਸਨੂੰ ਠੀਕ ਕਰੋ” ਕਹਿਣਾ AI ਨੂੰ ਅਨੁਮਾਨ ਲਗਾਉਣ ਅਤੇ ਕੰਬਲ ਸੁਝਾਅ ਦੇਣ ਲਈ ਮਜ਼ਬੂਰ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਪੂਰਾ ਗਲਤੀ ਸੁਨੇਹਾ, ਸਟੈਕ ਟਰੇਸ, ਅਤੇ ਸਭ ਤੋਂ ਛੋਟਾ ਪ੍ਰਜਨਨ ਨਮੂਨਾ ਦਿਓ, ਅਤੇ ਇਕੱਠੇ ਤੁਸੀਂ ਮੂਲ ਕਾਰਨ ਲੱਭ ਸਕੋਗੇ।

ਇਸ ਯੂਨਿਟ ਵਿੱਚ ਅਸੀਂ ਦੇਖਾਂਗੇ ਕਿ ਕਿਵੇਂ AI ਵਿੱਚ ਇੱਕ ਬੱਗ ਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਵਰਣਨ ਕਰਨਾ ਹੈ, ਅਨੁਮਾਨਾਂ ਨੂੰ ਕਦਮ ਦਰ ਕਦਮ ਨੂੰ ਘੱਟ ਕਰਨਾ ਹੈ, ਅਤੇ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ ਦੁਆਰਾ ਪੁਸ਼ਟੀ ਕਰਨੀ ਹੈ ਕਿ ਪ੍ਰਸਤਾਵਿਤ ਫਿਕਸ ਅਸਲ ਵਿੱਚ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ। ਯਾਦ ਰੱਖੋ: ਬੱਗ ਨੂੰ "ਫਿਕਸ ਕਰਨਾ" ਅਤੇ "ਬੱਗ ਦੇ ਲੱਛਣ ਨੂੰ ਦਬਾਉਣ" ਦੋ ਵੱਖ-ਵੱਖ ਚੀਜ਼ਾਂ ਹਨ; ਮੂਲ ਕਾਰਨ ਲੱਭੇ ਬਿਨਾਂ ਕੀਤੀ ਗਈ ਸੁਧਾਰ ਗਲਤੀ ਨੂੰ ਕਿਸੇ ਹੋਰ ਥਾਂ 'ਤੇ ਲੈ ਜਾਂਦਾ ਹੈ।

ਧਾਰਨਾਵਾਂ: ਸਟੈਕ ਟਰੇਸ: ਇੱਕ ਡੰਪ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਗਲਤੀ ਦੇ ਸਮੇਂ ਕਿਹੜੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਿਸ ਕ੍ਰਮ ਵਿੱਚ ਬੁਲਾਇਆ ਗਿਆ ਸੀ। ਨਿਊਨਤਮ ਰੀਪ੍ਰੋ: ਸਭ ਤੋਂ ਸਰਲ, ਸਭ ਤੋਂ ਛੋਟਾ ਕੋਡ/ਇਨਪੁਟ ਜੋ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ। ਮੂਲ ਕਾਰਨ: ਸਮੱਸਿਆ ਦਾ ਅਸਲ ਸਰੋਤ, ਲੱਛਣ ਨਹੀਂ। ਰਿਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ: ਟੈਸਟਿੰਗ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਉਹੀ ਗਲਤੀ ਦੁਹਰਾਈ ਨਹੀਂ ਜਾਂਦੀ।

AI ਨੂੰ ਬੱਗ ਦਾ ਵਰਣਨ ਕਰਨਾ

AI ਦੁਆਰਾ ਮੂਲ ਕਾਰਨ ਲੱਭਣ ਦੀ ਸੰਭਾਵਨਾ ਤੁਹਾਡੇ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਜਾਣਕਾਰੀ ਦੀ ਗੁਣਵੱਤਾ ਦੇ ਸਿੱਧੇ ਅਨੁਪਾਤਕ ਹੈ। ਇੱਕ ਚੰਗੀ ਤਰੁੱਟੀ ਵਰਣਨ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ: ਤੁਸੀਂ ਕੀ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਤੁਸੀਂ ਕੀ ਉਮੀਦ ਕਰ ਰਹੇ ਸੀ, ਕੀ ਹੋਇਆ, ਸਹੀ ਗਲਤੀ ਟੈਕਸਟ ਅਤੇ ਸਟੈਕ ਟਰੇਸ, ਕੋਡ ਸ਼ਾਮਲ, ਵਾਤਾਵਰਣ (ਭਾਸ਼ਾ/ਵਰਜਨ/OS), ਅਤੇ ਸਭ ਤੋਂ ਛੋਟਾ ਨਮੂਨਾ ਜਿਸ ਨੇ ਗਲਤੀ ਪੈਦਾ ਕੀਤੀ।

  1. ਲੱਛਣ ਨੂੰ ਸਪੱਸ਼ਟ ਕਰੋ. ਫਾਰਮੈਟ ਵਿੱਚ "ਉਮੀਦ X, ਵਾਸਤਵਿਕ Y"।
  2. ਪੂਰੀ ਗਲਤੀ ਟੈਕਸਟ ਅਤੇ ਸਟੈਕ ਟਰੇਸ ਨੂੰ ਪੇਸਟ ਕਰੋ। ਇਸਨੂੰ ਛੋਟਾ ਨਾ ਕਰੋ, ਇਸਨੂੰ ਸੈਂਸਰ ਕਰੋ, ਪਰ ਢਾਂਚੇ ਨੂੰ ਨਾ ਤੋੜੋ।
  3. ਸਭ ਤੋਂ ਛੋਟਾ ਪ੍ਰਜਨਨ ਦਿਓ. ਘੱਟੋ-ਘੱਟ ਇਨਪੁਟ ਅਤੇ ਕੋਡ ਜੋ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ।
  4. ਵਾਤਾਵਰਣ ਨਿਰਧਾਰਤ ਕਰੋ. ਭਾਸ਼ਾ ਸੰਸਕਰਣ, ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ, ਰਨਟਾਈਮ ਵਾਤਾਵਰਣ।

ਪ੍ਰਭਾਵੀ ਗਲਤੀ ਵਰਣਨ ਪ੍ਰੋਂਪਟ: "ਮੈਂ ਇੱਕ ਬੱਗ ਨੂੰ ਡੀਬੱਗ ਕਰ ਰਿਹਾ ਹਾਂ। ਜਾਣਕਾਰੀ:- ਮੈਂ ਕੀ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹਾਂ: [X] - ਸੰਭਾਵਿਤ ਵਿਵਹਾਰ: [Y] - ਅਸਲ ਵਿਵਹਾਰ: [Z] - ਪੂਰਾ ਗਲਤੀ ਸੁਨੇਹਾ ਅਤੇ ਸਟੈਕ ਟਰੇਸ: [ਪੇਸਟ] - ਵਾਤਾਵਰਣ: [language/version, library/version] - ਪਹਿਲਾਂ ਕੋਡ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ। ਸੰਭਾਵਨਾ ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਸੰਭਾਵਤ ਮੂਲ ਕਾਰਨ ਅਤੇ ਮੈਨੂੰ ਦੱਸੋ ਕਿ ਹਰੇਕ ਲਈ ਕਿਹੜੀ ਜਾਂਚ ਪੜਤਾਲ ਕਰਨੀ ਹੈ।"

ਹਾਈਪੋਥੀਸਿਸ ਦੁਆਰਾ ਸੰਕੁਚਿਤ ਪ੍ਰਵਾਹ

ਸਿਸਟਮੈਟਿਕ ਡੀਬੱਗਿੰਗ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਸੰਭਾਵਨਾਵਾਂ ਨੂੰ ਖਤਮ ਕਰਨ ਦੀ ਕਲਾ ਹੈ। ਪਰਿਕਲਪਨਾ ਬਣਾਉਣ ਲਈ AI ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ ਹਰੇਕ ਪਰਿਕਲਪਨਾ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਪ੍ਰਯੋਗ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰੋ; ਫਿਰ ਪ੍ਰਯੋਗ ਚਲਾਓ ਅਤੇ ਨਤੀਜਾ ਵਾਪਸ ਕਰੋ। ਇਹ ਚੱਕਰ ਬੇਤਰਤੀਬ ਤਬਦੀਲੀਆਂ ਕਰਨ ਅਤੇ ਰੋਕਣ ਦੀ ਆਦਤ ਨਾਲੋਂ ਬਹੁਤ ਤੇਜ਼ ਹੈ, ਜਿਸ ਨੂੰ "ਸ਼ਾਟਗਨ ਡੀਬਗਿੰਗ" ਕਿਹਾ ਜਾਂਦਾ ਹੈ।

ਬਾਈਨਰੀ ਖੋਜ (ਬਾਈਸੈਕਸ਼ਨ) ਸਹਾਇਕ ਪ੍ਰੋਂਪਟ: "ਇਹ ਤਰੁੱਟੀ ਕੱਲ੍ਹ ਨਹੀਂ ਸੀ, ਅੱਜ ਵੀ ਹੈ। ਮੈਂ ਇਹ ਪਤਾ ਲਗਾਉਣਾ ਚਾਹੁੰਦਾ ਹਾਂ ਕਿ ਪਿਛਲੇ 20 ਵਿੱਚੋਂ ਕਿਹੜੀਆਂ ਤਬਦੀਲੀਆਂ ਨੇ ਬਾਇਸੈਕਟ ਨਾਲ ਗਲਤੀ ਕੀਤੀ ਹੈ। ਮੈਨੂੰ ਇੱਕ ਕਦਮ-ਦਰ-ਕਦਮ ਯੋਜਨਾ ਦਿਓ: ਨਤੀਜੇ ਦੇ ਆਧਾਰ 'ਤੇ ਮੈਨੂੰ ਕਿਹੜੇ ਬਿੰਦੂ ਦੀ ਜਾਂਚ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਮੈਨੂੰ ਕਿਹੜੇ ਅੱਧੇ 'ਤੇ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮੈਨੂੰ ਇਹ ਵੀ ਦੱਸੋ ਕਿ ਹਰ ਪੜਾਅ 'ਤੇ ਕੀ ਜਾਂਚ ਕਰਨੀ ਹੈ।"

ਲੌਗ ਇਨਸਰਸ਼ਨ ਰਣਨੀਤੀ ਪ੍ਰੋਂਪਟ: "ਮੈਨੂੰ ਗਲਤੀ ਨਹੀਂ ਮਿਲ ਸਕਦੀ ਕਿਉਂਕਿ ਮੈਂ ਇਸ ਫੰਕਸ਼ਨ ਵਿੱਚ ਵਿਚਕਾਰਲੇ ਮੁੱਲਾਂ ਨੂੰ ਨਹੀਂ ਦੇਖ ਸਕਦਾ। ਮੈਨੂੰ ਦੱਸੋ ਕਿ ਮੈਨੂੰ ਕਿਹੜੇ ਬਿੰਦੂਆਂ 'ਤੇ ਲੌਗ ਲਾਈਨਾਂ ਜੋੜਨ ਦੀ ਲੋੜ ਹੈ ਜੋ ਕਿ ਕਿਹੜੇ ਵੇਰੀਏਬਲ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰਦੇ ਹਨ। ਹਰੇਕ ਲੌਗ ਲਈ 'ਮੈਂ ਇਸ ਲੌਗ ਤੋਂ ਕੀ ਸਿੱਖਾਂਗਾ' ਵਿਆਖਿਆ ਸ਼ਾਮਲ ਕਰੋ। ਉਹਨਾਂ ਚੇਤਾਵਨੀਆਂ ਨੂੰ ਵੀ ਨਿਰਧਾਰਿਤ ਕਰੋ ਜੋ ਮੈਨੂੰ ਗੁਪਤ ਡੇਟਾ ਨੂੰ ਲੌਗ ਕਰਨ ਤੋਂ ਰੋਕੇਗੀ।"

ਸੁਝਾਅ: ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਤਰੁੱਟੀ ਨੂੰ ਹੱਲ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹੋ, ਤਾਂ ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ ਸਮੱਸਿਆ ਉਸ ਜਗ੍ਹਾ ਹੁੰਦੀ ਹੈ ਜਿਸਦਾ ਤੁਸੀਂ ਗਲਤ ਅੰਦਾਜ਼ਾ ਲਗਾਇਆ ਹੈ। AI ਨੂੰ ਪੁੱਛੋ "ਮੇਰੀ ਕਿਹੜੀ ਧਾਰਨਾ ਗਲਤ ਹੋ ਸਕਦੀ ਹੈ?" ਪੁੱਛਣ ਨਾਲ ਤੁਹਾਡਾ ਅੰਨ੍ਹਾਪਣ ਟੁੱਟ ਜਾਵੇਗਾ। ਸਭ ਤੋਂ ਮੁਸ਼ਕਿਲ ਗਲਤੀਆਂ ਉਸ ਥਾਂ 'ਤੇ ਛੁਪਦੀਆਂ ਹਨ ਜਿੱਥੇ ਤੁਸੀਂ ਕਹਿੰਦੇ ਹੋ "ਮੈਨੂੰ ਯਕੀਨ ਹੈ ਕਿ ਇਹ ਸਹੀ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ"।

ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ / ਮਜ਼ਬੂਤ ​​ਪ੍ਰੋਂਪਟ

ਕਮਜ਼ੋਰ:"ਮੇਰਾ ਕੋਡ ਇੱਕ ਗਲਤੀ ਦਿੰਦਾ ਹੈ, ਇਸਨੂੰ ਠੀਕ ਕਰੋ: [ਕੋਡ ਦੀਆਂ 200 ਲਾਈਨਾਂ]"(ਨਤੀਜਾ: AI ਨਹੀਂ ਜਾਣਦਾ ਕਿ ਇਹ ਕਿਹੜੀ ਗਲਤੀ ਹੈ, ਕੀ ਉਮੀਦ ਕੀਤੀ ਜਾਂਦੀ ਹੈ; ਇਹ ਅਨੁਮਾਨ ਦੇ ਅਧਾਰ ਤੇ ਆਮ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ, ਉਹਨਾਂ ਵਿੱਚੋਂ ਜ਼ਿਆਦਾਤਰ ਬੇਕਾਰ ਹਨ।) STRONG:"ਮੈਨੂੰ NullPointerException ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ। ਉਮੀਦ ਹੈ: ਉਪਭੋਗਤਾ ਸੂਚੀ ਵਾਪਸ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। [ਪੇਸਟ]। ਵਾਤਾਵਰਨ: ਜਾਵਾ 17. ਘੱਟੋ-ਘੱਟ ਦੁਹਰਾਓ: ਇਹ ਉਦੋਂ ਵਾਪਰਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਸੂਚੀ ਖਾਲੀ ਹੁੰਦੀ ਹੈ, ਪਰ ਜਦੋਂ ਇਹ ਭਰੀ ਹੁੰਦੀ ਹੈ ਤਾਂ ਸੰਬੰਧਿਤ 15 ਲਾਈਨਾਂ: [ਕੋਡ] ਦਾ ਮੂਲ ਕਾਰਨ ਦੱਸੋ ਅਤੇ ਫਿਰ ਇੱਕ ਹੱਲ ਦਾ ਸੁਝਾਅ ਦਿਓ।"

ਸ਼ਕਤੀਸ਼ਾਲੀ ਪ੍ਰੋਂਪਟ ਸੰਦਰਭ ਵਿੱਚ ਗਲਤੀ ਰੱਖਦਾ ਹੈ: ਜਿਸ ਸਥਿਤੀ ਵਿੱਚ ਇਹ ਵਾਪਰਦਾ ਹੈ (ਖਾਲੀ ਸੂਚੀ), ਜਿਸ ਸਥਿਤੀ ਵਿੱਚ ਇਹ ਨਹੀਂ ਹੁੰਦਾ (ਪੂਰੀ ਸੂਚੀ)। ਇਹ ਸਿੰਗਲ ਸੁਰਾਗ ("ਖਾਲੀ ਹੋਣ 'ਤੇ ਵਾਪਰਦਾ ਹੈ") ਲਗਭਗ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਮੂਲ ਕਾਰਨ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਕਿਉਂਕਿ ਇਹ ਜਾਣਕਾਰੀ ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ ਵਿੱਚ ਉਪਲਬਧ ਨਹੀਂ ਹੈ, AI ਇੱਕ ਅੰਨ੍ਹਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦਾ ਹੈ।

ਫਿਕਸ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ

ਇੱਕ ਫਿਕਸ ਸਿਰਫ ਇੱਕ ਅਸਲੀ ਫਿਕਸ ਹੈ ਜੇਕਰ ਇਹ ਤਿੰਨ ਚੀਜ਼ਾਂ ਕਰਦਾ ਹੈ:

ਕੰਟਰੋਲ

ਸਵਾਲ

ਕਿਵੇਂ ਤਸਦੀਕ ਕਰਨਾ ਹੈ

ਕੀ ਗਲਤੀ ਖਤਮ ਹੋ ਗਈ ਹੈ?

ਕੀ ਉਹੀ ਦਾਖਲਾ ਹੁਣ ਕੰਮ ਕਰਦਾ ਹੈ?

ਘੱਟੋ-ਘੱਟ ਰੀਪ੍ਰੋ ਨੂੰ ਦੁਬਾਰਾ ਚਲਾਓ

ਕੋਈ ਨਵੀਂ ਗਲਤੀ ਨਹੀਂ?

ਕੀ ਕੁਝ ਹੋਰ ਟੁੱਟ ਗਿਆ ਹੈ?

ਪੂਰਾ ਟੈਸਟ ਸੂਟ ਚਲਾਓ

ਕੀ ਇਹ ਦੁਹਰਾਇਆ ਨਹੀਂ ਜਾਵੇਗਾ?

ਕੀ ਉਹੀ ਗਲਤੀ ਦੁਬਾਰਾ ਹੋਵੇਗੀ?

ਇਸ ਦ੍ਰਿਸ਼ ਲਈ ਰਿਗਰੈਸ਼ਨ ਟੈਸਟ ਸ਼ਾਮਲ ਕਰੋ

ਮੂਲ ਕਾਰਨ ਲੱਭੇ ਬਿਨਾਂ ਕੀਤੇ ਸੁਧਾਰ ਅਕਸਰ ਲੱਛਣ ਨੂੰ ਦਬਾ ਦਿੰਦੇ ਹਨ। ਉਦਾਹਰਨ ਲਈ, "skip if null" ਨਾਲ ਇੱਕ ਨਲ ਗਲਤੀ ਨੂੰ ਗਲੋਸ ਕਰਨਾ ਅਸਲ ਕਾਰਨ ਬਣਾਉਂਦਾ ਹੈ, "ਡਾਟਾ ਨਲ ਕਿਉਂ ਆ ਰਿਹਾ ਹੈ?" ਅਦਿੱਖ, ਅਤੇ ਗਲਤੀ ਕਿਤੇ ਹੋਰ ਵਾਪਰਦੀ ਹੈ।

ਮਿੰਨੀ ਕੇਸ

ਕੇਸ 1 - ਲੱਛਣ ਦਮਨ ਜਾਲ। ਇੱਕ ਟੀਮ ਇੱਕ ਅਜ਼ਮਾਇਸ਼-ਕੈਚ ਨਾਲ ਕਦੇ-ਕਦਾਈਂ ਇੱਕ ਖਾਲੀ ਗਲਤੀ ਨੂੰ ਚੁੱਪ ਕਰਾਉਂਦੀ ਹੈ; ਗਲਤੀ ਗਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ ਪਰ 2 ਹਫਤਿਆਂ ਬਾਅਦ ਡਾਟਾ ਗਾਇਬ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਅਸਲ ਕਾਰਨ ਇਹ ਹੈ ਕਿ ਸਮਾਂ ਸਮਾਪਤ ਹੋਣ 'ਤੇ ਸੇਵਾ ਨਲ ਵਾਪਸ ਆਉਂਦੀ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ AI ਨੂੰ ਪੁੱਛਦੇ ਹੋ ਕਿ "ਇਹ ਖਾਲੀ ਕਿਉਂ ਹੋ ਰਿਹਾ ਹੈ?", ਮੂਲ ਕਾਰਨ ਉੱਭਰਦਾ ਹੈ; ਅਸਲੀ ਫਿਕਸ 1 ਘੰਟਾ ਲੈਂਦਾ ਹੈ ਪਰ ਸਥਾਈ ਹੈ।

ਕੇਸ 2 - ਨਿਊਨਤਮ ਰੀਪ੍ਰੋ ਪਾਵਰ। ਇੱਕ ਡਿਵੈਲਪਰ ਇੱਕ ਬੱਗ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ ਜੋ ਕਹਿੰਦਾ ਹੈ "ਇਹ ਹਰ ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਕ੍ਰੈਸ਼ ਹੁੰਦਾ ਹੈ।" ਇਹ AI ਦੇ ਸੁਝਾਅ ਦੇ ਨਾਲ ਸਭ ਤੋਂ ਛੋਟੇ ਇੰਪੁੱਟ ਲਈ ਗਲਤੀ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ: ਸਮੱਸਿਆ ਸਿਰਫ ਤੁਰਕੀ ਅੱਖਰ (ਏਨਕੋਡਿੰਗ ਗਲਤੀ) ਵਾਲੇ ਫਾਈਲਨਾਮਾਂ ਨਾਲ ਹੁੰਦੀ ਹੈ। ਜਦੋਂ ਅਨਿਸ਼ਚਿਤਤਾ ਦੀਆਂ 300 ਲਾਈਨਾਂ ਨੂੰ ਨਿਸ਼ਚਿਤ ਰੀਪ੍ਰੋ ਦੀਆਂ 5 ਲਾਈਨਾਂ ਤੱਕ ਘਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਹੱਲ ਸਪੱਸ਼ਟ ਹੋ ਜਾਂਦਾ ਹੈ।

ਕੇਸ 3 - ਐਂਟੀ-ਰਿਗਰੈਸ਼ਨ ਟੈਸਟ। AI ਇੱਕ ਮਿਤੀ ਗਣਨਾ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ। ਇੰਜਨੀਅਰ ਇਸ ਤੋਂ ਸੰਤੁਸ਼ਟ ਨਹੀਂ; ਗਲਤ ਦ੍ਰਿਸ਼ ਲਈ ਇੱਕ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟ ਜੋੜਦਾ ਹੈ (ਮਹੀਨੇ ਦਾ ਅੰਤ, ਜਨਵਰੀ 31 + 1 ਮਹੀਨਾ)। ਜਦੋਂ 4 ਮਹੀਨਿਆਂ ਬਾਅਦ ਕੋਈ ਹੋਰ ਤਬਦੀਲੀ ਉਸੇ ਖੇਤਰ ਨੂੰ ਛੂੰਹਦੀ ਹੈ, ਤਾਂ ਟੈਸਟ ਲਾਲ ਹੋ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਸ ਦੇ ਉਤਪਾਦਨ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਬੱਗ ਫੜਿਆ ਜਾਂਦਾ ਹੈ।

ਆਮ ਗਲਤੀਆਂ

  • ਇਸਦਾ ਅਰਥ ਹੈ "ਇਹ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ, ਇਸਨੂੰ ਠੀਕ ਕਰੋ"। ਗਲਤੀ ਟੈਕਸਟ, ਉਮੀਦ ਅਤੇ ਰੀਪ੍ਰੋ ਤੋਂ ਬਿਨਾਂ, AI ਅਨੁਮਾਨ ਲਗਾਉਂਦਾ ਹੈ।
  • ਸਟੈਕ ਟਰੇਸ ਨਹੀਂ ਦੇ ਰਿਹਾ। ਸਟੈਕ ਟਰੇਸ ਅਕਸਰ ਸਿੱਧੇ ਮੂਲ ਕਾਰਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
  • ਬੇਤਰਤੀਬੇ ਤਬਦੀਲੀਆਂ ਕਰਦੇ ਰਹੋ। ਪਰਿਕਲਪਨਾ ਸਥਾਪਿਤ ਕੀਤੇ ਬਿਨਾਂ ਪ੍ਰਯੋਗ ਸਮੇਂ ਦੀ ਬਰਬਾਦੀ.
  • ਲੱਛਣ ਨੂੰ ਦਬਾਉਣ ਅਤੇ ਮੂਲ ਕਾਰਨ ਨੂੰ ਗੁਆਉਣਾ. ਗਲਤੀ ਕਿਤੇ ਹੋਰ ਪੁਨਰ ਜਨਮ ਲੈਂਦੀ ਹੈ।
  • ਰਿਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ ਨਾਲ ਫਿਕਸ ਨੂੰ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕਰਨਾ। ਉਹੀ ਗਲਤੀ ਭਵਿੱਖ ਵਿੱਚ ਚੁੱਪਚਾਪ ਵਾਪਸ ਆਉਂਦੀ ਹੈ।

ਸਾਰੰਸ਼ ਵਿੱਚ

ਪ੍ਰਭਾਵੀ ਡੀਬੱਗਿੰਗ ਯੋਜਨਾਬੱਧ ਸੰਕੁਚਿਤ ਹੈ, ਅੰਦਾਜ਼ਾ ਨਹੀਂ। AI ਨੂੰ ਪੂਰੀ ਗਲਤੀ ਟੈਕਸਟ, ਸਟੈਕ ਟਰੇਸ, ਨਿਊਨਤਮ ਪ੍ਰਜਨਨ ਅਤੇ ਵਾਤਾਵਰਣ ਦੀ ਜਾਣਕਾਰੀ ਦੇਣ ਨਾਲ ਮੂਲ ਕਾਰਨ ਲੱਭਣ ਦੀ ਸੰਭਾਵਨਾ ਵਧ ਜਾਂਦੀ ਹੈ। ਪਰਿਕਲਪਨਾ ਬਣਾਉਣ ਲਈ AI ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ ਹਰੇਕ ਪਰਿਕਲਪਨਾ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਪ੍ਰਯੋਗ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰੋ; ਤੁਸੀਂ ਪ੍ਰਯੋਗ ਚਲਾਉਂਦੇ ਹੋ। ਇੱਕ ਫਿਕਸ "ਹੋ ਗਿਆ" ਤੇ ਹੀ ਵਿਚਾਰ ਕਰੋ ਜਦੋਂ ਤੁਸੀਂ ਦੇਖਦੇ ਹੋ ਕਿ ਬੱਗ ਖਤਮ ਹੋ ਗਿਆ ਹੈ, ਕੋਈ ਨਵਾਂ ਬੱਗ ਪੇਸ਼ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਅਤੇ ਇਹ ਰਿਗਰੈਸ਼ਨ ਟੈਸਟਿੰਗ ਦੁਆਰਾ ਸੁਰੱਖਿਅਤ ਹੈ।

ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ

ਇੱਕ ਅਸਲੀ ਜਾਂ ਨਕਲੀ ਗਲਤੀ 'ਤੇ ਵਿਚਾਰ ਕਰੋ। ਪਹਿਲਾਂ ਗਲਤੀ ਨੂੰ ਸਭ ਤੋਂ ਛੋਟੇ ਪ੍ਰਜਨਨ ਤੱਕ ਘਟਾਓ (ਜਿਸ ਵਿੱਚ ਇਹ ਹੁੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਇਹ ਨਹੀਂ ਹੁੰਦਾ)। ਪ੍ਰਭਾਵੀ ਬੱਗ ਰੈਸਿਪੀ ਪ੍ਰੋਂਪਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, AI ਨੂੰ 3 ਮੂਲ ਕਾਰਨ ਦੀਆਂ ਧਾਰਨਾਵਾਂ ਅਤੇ ਹਰੇਕ ਲਈ ਇੱਕ ਪੁਸ਼ਟੀਕਰਨ ਪੜਾਅ ਲਈ ਪੁੱਛੋ। ਇੱਕ-ਇੱਕ ਕਰਕੇ ਅਨੁਮਾਨਾਂ ਦੀ ਜਾਂਚ ਕਰਕੇ ਮੂਲ ਕਾਰਨ ਲੱਭੋ, ਇਸਨੂੰ ਠੀਕ ਕਰੋ, ਫਿਰ ਇਸ ਦ੍ਰਿਸ਼ ਲਈ ਇੱਕ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟ ਲਿਖੋ ਅਤੇ ਚਲਾਓ ਇਹ ਦਿਖਾਉਣ ਲਈ ਕਿ ਬੱਗ ਖਤਮ ਹੋ ਗਿਆ ਹੈ ਅਤੇ ਟੈਸਟ ਸੁਰੱਖਿਆ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।

ਚੈੱਕਲਿਸਟ

  • [ ] ਮੈਂ ਲੱਛਣ ਨੂੰ "ਉਮੀਦ ਬਨਾਮ ਅਹਿਸਾਸ" ਵਜੋਂ ਸਪੱਸ਼ਟ ਕੀਤਾ।
  • [ ] ਮੈਂ AI ਨੂੰ ਪੂਰਾ ਗਲਤੀ ਟੈਕਸਟ ਅਤੇ ਸਟੈਕ ਟਰੇਸ ਦਿੱਤਾ ਹੈ।
  • [ ] ਮੈਂ ਗਲਤੀ ਨੂੰ ਸਭ ਤੋਂ ਛੋਟੇ ਪ੍ਰਜਨਨ ਤੱਕ ਘਟਾ ਦਿੱਤਾ ਹੈ।
  • ਇੱਕ ਇੱਕ ਕਰਕੇ ਪਰਿਕਲਪਨਾ ਦੀ ਪਰਖ ਕਰਕੇ, ਮੈਂ ਮੂਲ ਕਾਰਨ ਲੱਭ ਲਿਆ।
  • [] ਲੱਛਣ ਨੂੰ ਦਬਾਉਣ ਦੀ ਬਜਾਏ, ਮੈਂ ਮੂਲ ਕਾਰਨ ਨੂੰ ਹੱਲ ਕੀਤਾ।
  • [ ] ਮੈਂ ਉਸੇ ਗਲਤੀ ਲਈ ਇੱਕ ਰੀਗਰੈਸ਼ਨ ਟੈਸਟ ਜੋੜਿਆ ਅਤੇ ਚਲਾਇਆ।