ਯੂਨਿਟ 5 / 12

ਟੈਸਟ ਉਤਪਾਦਨ ਅਤੇ ਗੁਣਵੱਤਾ ਭਰੋਸਾ

ਲਾਭ:

  • ਏਆਈ ਦੇ ਨਾਲ ਯੂਨਿਟ ਟੈਸਟਿੰਗ, ਕਿਨਾਰੇ ਦੇ ਕੇਸ, ਅਤੇ ਕਵਰੇਜ ਗੈਪ ਵਿਸ਼ਲੇਸ਼ਣ ਪੈਦਾ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
  • ਨਿਰਧਾਰਨ ਦੇ ਅਧਾਰ 'ਤੇ ਟੈਸਟ ਦੀਆਂ ਉਮੀਦਾਂ ਨੂੰ ਛਾਪਣ ਦੀ ਯੋਗਤਾ, ਕੋਡ ਦੇ ਮੌਜੂਦਾ ਵਿਵਹਾਰ ਦੇ ਨਹੀਂ
  • ਇਹ ਜਾਂਚ ਕਰਨ ਦੀ ਯੋਗਤਾ ਕਿ ਕੀ ਇੱਕ ਟੈਸਟ ਅਸਲ ਵਿੱਚ ਟੀਕੇ ਲਗਾਉਣ ਦੀਆਂ ਗਲਤੀਆਂ ਦੁਆਰਾ ਰੱਖਿਆ ਕਰਦਾ ਹੈ

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

ਇਸ ਯੂਨਿਟ ਵਿੱਚ, ਤੁਸੀਂ ਯੂਨਿਟ ਟੈਸਟਿੰਗ (ਟੈਸਟਿੰਗ ਜੋ ਇਕੱਲੇ ਫੰਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ, ਆਈਸੋਲੇਸ਼ਨ ਵਿੱਚ), ਐਜ ਕੇਸ ਟੈਸਟ ਅਤੇ AI ਨਾਲ ਟੈਸਟ ਡੇਟਾ ਤਿਆਰ ਕਰਨਾ ਸਿੱਖੋਗੇ; ਟੈਸਟ ਕਵਰੇਜ ਵਿੱਚ ਅੰਤਰ ਨੂੰ ਬੰਦ ਕਰਨਾ; ਅਤੇ ਕਿਉਂ ਅੰਨ੍ਹੇਵਾਹ ਏਆਈ ਟੈਸਟਾਂ 'ਤੇ ਭਰੋਸਾ ਕਰਨਾ ਖ਼ਤਰਨਾਕ ਹੈ।

ਟੈਸਟਿੰਗ ਦੇ ਦੋ ਪਾਸੇ: ਫਿਕਸਿੰਗ ਵਿਵਹਾਰ ਬਨਾਮ ਤਸਦੀਕ

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

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

ਸਾਵਧਾਨ: ਜੇਕਰ AI ਟੈਸਟ ਪਾਸ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਸਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਹੈ ਕਿ ਕੋਡ "ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ"; ਇਸਦਾ ਸਿਰਫ਼ ਮਤਲਬ ਹੈ "ਇਹ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ AI ਉਮੀਦ ਕਰਦਾ ਹੈ"। ਤੁਸੀਂ ਨਿਰਧਾਰਨ ਨੂੰ ਦੇਖ ਕੇ ਫੈਸਲਾ ਕਰੋ ਕਿ ਉਮੀਦ ਸਹੀ ਹੈ ਜਾਂ ਨਹੀਂ।

ਕਦਮ-ਦਰ-ਕਦਮ: AI ਨਾਲ ਮਜ਼ਬੂਤ ਟੈਸਟ ਲਿਖਣਾ

  1. ਨਿਰਧਾਰਨ ਦਿਓ, ਸਿਰਫ਼ ਕੋਡ ਹੀ ਨਹੀਂ। ਜੇ ਤੁਸੀਂ "ਇਹ ਫੰਕਸ਼ਨ ਇਹ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" ਜਾਣਕਾਰੀ ਜੋੜਦੇ ਹੋ, ਤਾਂ AI ਸਹੀ ਉਮੀਦ ਲਿਖ ਸਕਦਾ ਹੈ; ਇਹ ਮੌਜੂਦਾ ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰੇਗਾ ਜੇਕਰ ਤੁਸੀਂ ਸਿਰਫ਼ ਕੋਡ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹੋ।
  2. ਕਿਨਾਰੇ ਦੇ ਕੇਸਾਂ ਲਈ ਪੁੱਛੋ. ਖਾਲੀ, ਖਾਲੀ, ਜ਼ੀਰੋ, ਨਕਾਰਾਤਮਕ, ਬਹੁਤ ਵੱਡਾ, ਮਾੜਾ ਫਾਰਮੈਟ, ਸਮਰੂਪਤਾ — ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਖੁਸ਼ਹਾਲ ਮਾਰਗ ਦਾ ਦਾਅਵਾ ਕਰੋ।
  3. ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਅਤੇ ਸ਼ੈਲੀ ਦਿਓ। "ਪਾਈਟੈਸਟ ਦੀ ਵਰਤੋਂ ਕਰੋ", "ਅਰੇਂਜ-ਐਕਟ-ਐਸਸਰਟ ਪੈਟਰਨ", "ਹਰੇਕ ਟੈਸਟ ਨੂੰ ਇੱਕ ਚੀਜ਼ ਦੀ ਜਾਂਚ ਕਰਨ ਦਿਓ" ਆਦਿ।
  4. ਉਮੀਦਾਂ (ਦਾਅਵੇ) ਦੀ ਜਾਂਚ ਕਰੋ। ਉਸ ਨਿਰਧਾਰਨ ਨਾਲ ਤੁਲਨਾ ਕਰੋ ਜੋ ਹਰੇਕ ਦਾਅਵਾ ਸਹੀ ਮੁੱਲ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ।
  5. ਦਾਇਰੇ ਵਿੱਚ ਅੰਤਰ ਬੰਦ ਕਰੋ। ਮੌਜੂਦਾ ਟੈਸਟ ਦਿਓ ਅਤੇ ਪੁੱਛੋ ਕਿ "ਕਿਹੜੀਆਂ ਸ਼ਾਖਾਵਾਂ ਅਤੇ ਕੇਸਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਗਈ?" ਤੁਹਾਨੂੰ ਪੁੱਛਣ ਲਈ; ਫਿਰ ਪੈਦਾ ਕੀਤੇ ਵਾਧੂ ਟੈਸਟਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।

ਤਿੰਨ ਮਿੰਨੀ ਕੇਸ

ਕੇਸ 1 - 52% ਤੋਂ 85% ਤੱਕ ਕਵਰੇਜ। ਇੱਕ ਸੇਵਾ ਮੋਡੀਊਲ ਦਾ ਟੈਸਟ ਕਵਰੇਜ 52% ਸੀ। ਟੀਮ ਨੇ ਮੌਜੂਦਾ ਟੈਸਟਾਂ ਨੂੰ AI ਨੂੰ ਖੁਆਇਆ, ਇਸ ਨੇ ਗੈਰ-ਟੈਸਟ ਕੀਤੀਆਂ ਸ਼ਾਖਾਵਾਂ ਦੀ ਸੂਚੀ ਤਿਆਰ ਕੀਤੀ ਅਤੇ ਉਹਨਾਂ ਲਈ ਟੈਸਟ ਤਿਆਰ ਕੀਤੇ। ਮਨੁੱਖੀ ਸਮੀਖਿਆ ਦੇ ਨਾਲ, ਕਵਰੇਜ 85% ਤੱਕ ਵਧ ਗਈ; ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ, AI ਨੇ ਇੱਕ ਬੱਗ ਬ੍ਰਾਂਚ ਵਿੱਚ ਇੱਕ ਅਸਲ ਬੱਗ (ਇੱਕ ਮਾਰਗ ਜੋ ਗਲਤ ਗਲਤੀ ਕੋਡ ਨੂੰ ਵਾਪਸ ਕਰਦਾ ਹੈ) ਦਾ ਪਰਦਾਫਾਸ਼ ਕੀਤਾ ਜਿਸਦੀ ਪਹਿਲਾਂ ਕਦੇ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਗਈ ਸੀ।

ਕੇਸ 2 - ਝੂਠੀ ਉਮੀਦ ਫਿਕਸੇਸ਼ਨ ਟਰੈਪ। ਇੱਕ ਮਨੀ ਰਾਊਂਡਿੰਗ ਫੰਕਸ਼ਨ ਅਸਲ ਵਿੱਚ ਗਲਤ ਸੀ; 2.675 ਤੋਂ 2.67 ਨੂੰ ਗੋਲ ਕਰਨ ਦੀ ਬਜਾਏ, ਇਹ 2.68 ਦੀ ਬਜਾਏ 2.67 ਨੂੰ ਰਾਊਂਡਿੰਗ ਕਰ ਰਿਹਾ ਸੀ. AI ਨੇ ਕੋਡ ਨੂੰ ਦੇਖਿਆ ਅਤੇ ਅਸਰਟ round_money(2.675) == 2.67 ਲਿਖਿਆ — ਗਲਤੀ ਨੂੰ "ਸੱਚ" ਦੇ ਰੂਪ ਵਿੱਚ ਫ੍ਰੀਜ਼ ਕਰਨਾ। ਜਦੋਂ ਡਿਵੈਲਪਰ ਨੇ ਨਿਰਧਾਰਨ ਨੂੰ ਪੜ੍ਹਿਆ, ਤਾਂ ਉਸਨੇ ਉਮੀਦ ਨੂੰ ਠੀਕ ਕੀਤਾ ਅਤੇ ਅਸਲ ਬੱਗ ਨੂੰ ਫੜ ਲਿਆ। ਕੋਡ ਦੀ ਨਹੀਂ, ਨਿਯਮ ਦੀ ਜਾਂਚ ਕਰਨ ਨਾਲ ਫਰਕ ਪਿਆ।

ਕੇਸ 3 - ਐਜ ਸਟੇਟ ਵਿਸਫੋਟ। ਇੱਕ ਮਿਤੀ ਸੀਮਾ ਫੰਕਸ਼ਨ ਲਈ AI ਨੂੰ ਸਿਰਫ "ਐਜ ਕੇਸਾਂ" ਲਈ ਪੁੱਛਣ ਵੇਲੇ; ਇਸਨੇ 8 ਕੇਸ ਪੈਦਾ ਕੀਤੇ ਜਿਵੇਂ ਕਿ ਸਟਾਰਟ=ਐਂਡ, ਰਿਵਰਸ ਅੰਤਰਾਲ, ਲੀਪ ਸਾਲ 29 ਫਰਵਰੀ, ਵੱਖ-ਵੱਖ ਸਮਾਂ ਖੇਤਰ ਅਤੇ ਨਲ ਅੰਤਰਾਲ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਦੋ (ਰਿਵਰਸ ਸਪੇਸਿੰਗ ਅਤੇ ਲੀਪ ਸਾਲ) ਅਸਲ ਵਿੱਚ ਗਲਤੀ ਦਾ ਕਾਰਨ ਬਣ ਰਹੇ ਸਨ। ਇਹਨਾਂ ਮਾਮਲਿਆਂ ਨੂੰ ਹੱਥੀਂ ਵਿਚਾਰਨਾ ਅਕਸਰ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ; AI ਇੱਥੇ ਇੱਕ "ਐਜ-ਕੇਸ ਬ੍ਰੇਨਸਟਾਰਮਿੰਗ" ਸਾਥੀ ਬਣ ਗਿਆ।

ਚਾਰ ਕਾਪੀ ਕਰਨ ਯੋਗ ਨਮੂਨੇ

ਨਿਰਧਾਰਨ-ਅਧਾਰਿਤ ਟੈਸਟ ਪੀੜ੍ਹੀ:

ਭੂਮਿਕਾ: ਇੱਕ ਡਿਵੈਲਪਰ ਜੋ ਟੈਸਟ ਲਿਖਦਾ ਹੈ। ਫਰੇਮਵਰਕ: {{pytest/JUnit/Jest...}}. ਫੰਕਸ਼ਨ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ (ਵਿਸ਼ੇਸ਼ਤਾ): {{rule}}ਹੇਠ ਦਿੱਤੇ ਫੰਕਸ਼ਨ ਲਈ ਟੈਸਟ ਲਿਖੋ। ਨਿਰਧਾਰਨ ਦੇ ਅਨੁਸਾਰ ਉਮੀਦਾਂ ਲਿਖੋ, ਕੋਡ ਦੀ ਮੌਜੂਦਾ ਆਉਟਪੁੱਟ ਨਹੀਂ। ਹੈਪੀ ਪਾਥ + ਘੱਟੋ-ਘੱਟ 4 ਕਿਨਾਰੇ ਵਾਲੇ ਕੇਸ ਸ਼ਾਮਲ ਕਰੋ। ਹਰੇਕ ਟੈਸਟ ਨੂੰ ਇੱਕ ਚੀਜ਼ ਦੀ ਜਾਂਚ ਕਰਨ ਦਿਓ, ਵਰਣਨਯੋਗ ਨਾਮ ਦੀ ਵਰਤੋਂ ਕਰੋ। {{ਫੰਕਸ਼ਨ}}

ਐਜ ਕੇਸ ਬ੍ਰੇਨਸਟਾਰਮਿੰਗ:

ਕਿਨਾਰੇ/ਅਸਫ਼ਲਤਾ ਦੇ ਕੇਸਾਂ ਦੀ ਸੂਚੀ ਬਣਾਓ ਜੋ ਇਸ ਫੰਕਸ਼ਨ (ਨਲ, ਨਲ, ਬ੍ਰੇਕਪੁਆਇੰਟ, ਖਰਾਬ ਫਾਰਮੈਟ, ਸਮਰੂਪਤਾ, ਬਾਹਰੀ ਗਲਤੀ) ਲਈ ਟੈਸਟ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। ਹਰੇਕ ਕੇਸ ਲਈ: ਇਨਪੁਟ, ਅਨੁਮਾਨਿਤ ਵਿਵਹਾਰ। ਅਜੇ ਕੋਡ ਨਾ ਲਿਖੋ, ਸਿਰਫ਼ ਸੂਚੀ ਬਣਾਓ।{{function}}

ਕਵਰੇਜ ਗੈਪ ਵਿਸ਼ਲੇਸ਼ਣ:

ਹੇਠਾਂ ਫੰਕਸ਼ਨ ਅਤੇ ਉਪਲਬਧ ਟੈਸਟ ਹਨ। ਕਿਹੜੀਆਂ ਸ਼ਾਖਾਵਾਂ, ਸਥਿਤੀਆਂ ਅਤੇ ਕੇਸਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ? ਕਮੀਆਂ ਦੀ ਸੂਚੀ ਬਣਾਓ ਅਤੇ ਸਿਰਫ ਕਮੀਆਂ ਲਈ ਨਵੇਂ ਟੈਸਟ ਲਿਖੋ। ਮੌਜੂਦਾ ਨੂੰ ਨਾ ਦੁਹਰਾਓ। ਫੰਕਸ਼ਨ:{{function}}ਟੈਸਟ:{{existing_tests}}

ਟੈਸਟ ਡੇਟਾ / ਮੌਕ ਆਬਜੈਕਟ ਜਨਰੇਸ਼ਨ:

{{function/service}} ਟੈਸਟਾਂ ਲਈ ਯਥਾਰਥਵਾਦੀ ਟੈਸਟ ਡੇਟਾ ਤਿਆਰ ਕਰੋ: ਵੈਧ ਨਮੂਨੇ, ਬਾਰਡਰ ਦੇ ਨਮੂਨੇ ਅਤੇ ਅਵੈਧ ਨਮੂਨੇ ਵੱਖਰੇ ਤੌਰ 'ਤੇ। ਬਾਹਰੀ ਨਿਰਭਰਤਾ {{X}} ਲਈ ਇੱਕ ਸਧਾਰਨ ਮਖੌਲੀ ਵਿਵਹਾਰ ਦਾ ਸੁਝਾਅ ਦਿਓ। ਸਹੀ ਗੁਪਤ ਡੇਟਾ/PII ਦੀ ਵਰਤੋਂ ਕਰਨਾ; ਜਾਅਲੀ ਡਾਟਾ ਤਿਆਰ ਕਰੋ.

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

ਕਮਜ਼ੋਰ: "ਇਸ ਫੰਕਸ਼ਨ ਲਈ ਇੱਕ ਟੈਸਟ ਲਿਖੋ।"
ਮਜ਼ਬੂਤ: "ਪਾਈਟੈਸਟ ਦੇ ਨਾਲ। ਫੰਕਸ਼ਨ apply_discount(ਕੁੱਲ, ਪ੍ਰਤੀਸ਼ਤ) — ਨਿਯਮ: ਛੋਟ 0%–30% ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ, ਸੀਮਾ ਤੋਂ ਬਾਹਰ ValueError ਸੁੱਟੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ, ਨਤੀਜਾ 2 ਦਸ਼ਮਲਵ ਤੱਕ ਗੋਲ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਨਿਯਮ (ਕੋਡ ਦੁਆਰਾ ਨਹੀਂ) ਦੁਆਰਾ ਉਮੀਦਾਂ ਲਿਖੋ। ਹੈਪੀ ਪਾਥ + ਇਹ ਕਿਨਾਰੇ ਦੇ ਕੁੱਲ ਕੇਸ, %3, 0% = 0%, ਨਕਾਰਾਤਮਕ ਕੇਸ: %3, 0% = . [ਕੋਡ]"

ਉਹ ਮਜ਼ਬੂਤ ਰੀਲੀਜ਼ ਨਿਯਮ ਦਿੰਦਾ ਹੈ ਅਤੇ ਕਹਿੰਦਾ ਹੈ "ਨਿਯਮ ਅਨੁਸਾਰ ਉਮੀਦ ਲਿਖੋ, ਕੋਡ ਨਹੀਂ"; ਇਹ ਇੱਕ ਵਾਕ ਏਆਈ ਫਿਕਸਿੰਗ ਦੁਰਵਿਹਾਰ ਦੇ ਜਾਲ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ।

ਟੈਸਟ ਦੀ ਕਿਸਮ

AI ਯੋਗਦਾਨ

ਮਨੁੱਖੀ ਕੰਟਰੋਲ

ਹੈਪੀ ਰੋਡ ਯੂਨਿਟ ਟੈਸਟਿੰਗ

ਤੇਜ਼ ਪਿੰਜਰ

ਕੀ ਉਮੀਦ ਸਹੀ ਹੈ?

ਕਿਨਾਰੇ ਦੇ ਮਾਮਲੇ

ਵਿਆਪਕ ਬ੍ਰੇਨਸਟਾਰਮਿੰਗ

ਅਪ੍ਰਸੰਗਿਕ ਨੂੰ ਖਤਮ ਕਰੋ

ਸਕੋਪ ਗੈਪ ਭਰਨਾ

ਛੱਡੀਆਂ ਸ਼ਾਖਾਵਾਂ ਲੱਭਦਾ ਹੈ

ਮਹੱਤਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ

ਟੈਸਟ ਡੇਟਾ/ਮੌਕ

ਯਥਾਰਥਵਾਦੀ ਨਮੂਨਾ ਪੈਦਾ ਕਰਦਾ ਹੈ

ਕੋਈ PII ਨਹੀਂ, ਯਥਾਰਥਵਾਦ ਕੰਟਰੋਲ

ਟੈਸਟ ਗੁਣਵੱਤਾ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦੇ ਹਨ, ਇਸਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੰਦੇ

ਉੱਚ ਟੈਸਟ ਕਵਰੇਜ ਵਿਸ਼ਵਾਸ ਦਿੰਦੀ ਹੈ, ਪਰ ਇਹ ਗੁੰਮਰਾਹਕੁੰਨ ਵੀ ਹੋ ਸਕਦਾ ਹੈ: 100 ਪ੍ਰਤੀਸ਼ਤ ਕਵਰੇਜ ਦਾ ਮਤਲਬ ਹੈ "ਹਰ ਲਾਈਨ ਚਲਾਈ ਗਈ ਸੀ," ਨਹੀਂ "ਹਰ ਲਾਈਨ ਸਹੀ ਹੈ।" ਏਆਈ ਨਾਲ ਕਵਰੇਜ ਵਧਾਉਣਾ ਆਸਾਨ ਹੈ; ਅਸਲ ਮੁੱਲ ਅਰਥਪੂਰਨ ਉਮੀਦਾਂ ਨੂੰ ਲਿਖਣ ਵਿੱਚ ਹੈ. ਇੱਕ ਟੈਸਟ ਦਾ ਮੁੱਲ ਕੋਡ ਦੇ ਟੁੱਟਣ 'ਤੇ ਤੁਹਾਨੂੰ ਤੋੜਨ ਅਤੇ ਚੇਤਾਵਨੀ ਦੇਣ ਦੀ ਸਮਰੱਥਾ ਹੈ। ਇਸ ਲਈ AI-ਉਤਪੰਨ ਟੈਸਟ ਇਸ ਸਵਾਲ 'ਤੇ ਆਧਾਰਿਤ ਹਨ ਕਿ "ਕੀ ਕੋਡ ਸੱਚਮੁੱਚ ਟੁੱਟਦਾ ਹੈ ਜਦੋਂ ਇਹ ਬਦਲਦਾ ਹੈ?" ਸਵਾਲ ਦੇ ਨਾਲ ਇਸ ਦੀ ਜਾਂਚ ਕਰੋ; ਜਾਣਬੁੱਝ ਕੇ ਇੱਕ ਲਾਈਨ ਨੂੰ ਤੋੜਨਾ ਅਤੇ ਟੈਸਟ ਬਰੇਕ (ਮਿਊਟੇਸ਼ਨ ਆਈਡੀਆ) ਨੂੰ ਦੇਖਣਾ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਹੈ ਕਿ ਟੈਸਟ ਨੇ ਕੰਮ ਕੀਤਾ।

ਸੰਕੇਤ: ਇਹ ਦੇਖਣ ਲਈ ਕਿ ਕੀ AI ਦੁਆਰਾ ਲਿਖਿਆ ਟੈਸਟ ਕੰਮ ਕਰਦਾ ਹੈ, ਕੋਡ ਵਿੱਚ ਇੱਕ ਛੋਟਾ ਬੱਗ ਬਣਾਓ (ਜਿਵੇਂ ਕਿ a + ਤੋਂ a - ਬਦਲੋ) ਅਤੇ ਦੇਖੋ ਕਿ ਕੀ ਟੈਸਟ ਟੁੱਟਦਾ ਹੈ। ਜੇਕਰ ਇਹ ਨਹੀਂ ਟੁੱਟਦਾ, ਤਾਂ ਉਹ ਟੈਸਟ ਤੁਹਾਡੀ ਰੱਖਿਆ ਨਹੀਂ ਕਰਦਾ।

ਆਮ ਗਲਤੀਆਂ

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

ਸੰਖੇਪ ਵਿੱਚ

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

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

ਇੱਕ ਫੰਕਸ਼ਨ ਚੁਣੋ ਅਤੇ ਪਹਿਲਾਂ AI ਨੂੰ ਸਿਰਫ਼ ਇਸਦਾ ਕੋਡ ਦੇ ਕੇ ਇੱਕ ਟੈਸਟ ਪ੍ਰਿੰਟ ਕਰੋ; ਉਮੀਦਾਂ ਨੂੰ ਨੋਟ ਕਰੋ। ਫਿਰ ਉਸੇ ਫੰਕਸ਼ਨ ਲਈ ਨਿਰਧਾਰਨ (ਲੋੜੀਂਦਾ ਵਿਵਹਾਰ) ਦਿੰਦੇ ਹੋਏ, ਦੁਬਾਰਾ ਟੈਸਟ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰੋ। ਦੋ ਟੈਸਟ ਸੈੱਟਾਂ ਦੀਆਂ ਉਮੀਦਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ: ਕੀ ਕੋਈ ਵੱਖਰਾ ਹੈ, ਜੋ ਇੱਕ ਅਸਲ ਬੱਗ ਨੂੰ ਪ੍ਰਗਟ ਕਰਦਾ ਹੈ? ਅੰਤ ਵਿੱਚ, ਕੋਡ ਵਿੱਚ ਜਾਣਬੁੱਝ ਕੇ ਬੱਗ ਜੋੜ ਕੇ ਅਤੇ ਟੈਸਟ ਬ੍ਰੇਕ ਨੂੰ ਦੇਖ ਕੇ ਇਹ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤਿਆਰ ਕੀਤੇ ਟੈਸਟਾਂ ਵਿੱਚੋਂ ਇੱਕ ਨੇ ਕੰਮ ਕੀਤਾ ਹੈ।

ਚੈੱਕਲਿਸਟ

  • [ ] ਮੈਂ ਵੱਖਰਾ ਕਰਦਾ ਹਾਂ ਕਿ ਕੀ ਟੈਸਟ ਵਿਵਹਾਰ ਨੂੰ ਠੀਕ ਕਰਨ ਜਾਂ ਤਸਦੀਕ ਕਰਨ ਲਈ ਹੈ।
  • [ ] ਜਦੋਂ ਮੈਂ ਇੱਕ ਟੈਸਟ ਲਈ ਬੇਨਤੀ ਕਰਦਾ ਹਾਂ, ਮੈਂ ਨਿਯਮ (ਵਿਸ਼ੇਸ਼ਤਾ) ਦਿੰਦਾ ਹਾਂ ਜੋ ਕਿ ਸਥਾਨ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਕੋਡ ਨਹੀਂ।
  • [ ] ਮੈਂ ਹਰੇਕ ਤਿਆਰ ਕੀਤੇ ਦਾਅਵੇ ਦੀ ਨਿਰਧਾਰਨ ਨਾਲ ਤੁਲਨਾ ਕਰਦਾ ਹਾਂ।
  • [ ] ਮੈਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਕਿਨਾਰੇ ਅਤੇ ਅਸਫਲਤਾ ਦੇ ਮਾਮਲਿਆਂ ਦੀ ਬੇਨਤੀ ਕਰਦਾ ਹਾਂ।
  • [ ] ਮੈਂ ਪ੍ਰਤੀਸ਼ਤ ਕਵਰੇਜ ਨੂੰ ਇੱਕ ਸਾਧਨ ਵਜੋਂ ਵੇਖਦਾ ਹਾਂ, ਇੱਕ ਟੀਚਾ ਨਹੀਂ।
  • [ ] ਮੈਂ ਜਾਂਚ ਕਰਦਾ ਹਾਂ ਕਿ ਕੀ ਇੱਕ ਟੈਸਟ ਅਸਲ ਵਿੱਚ ਟੀਕੇ ਲਗਾਉਣ ਦੀਆਂ ਗਲਤੀਆਂ ਦੁਆਰਾ ਰੱਖਿਆ ਕਰਦਾ ਹੈ।