ਲਾਭ:
- ਟੈਸਟਿੰਗ ਪਿਰਾਮਿਡ ਅਤੇ ਕਵਰ ਸੀਮਾ ਅਤੇ ਗਲਤੀ ਸਥਿਤੀਆਂ ਦੇ ਨਾਲ-ਨਾਲ ਖੁਸ਼ਹਾਲ ਦ੍ਰਿਸ਼ਾਂ ਦੇ ਅਨੁਸਾਰ ਨਕਲੀ ਬੁੱਧੀ ਨਾਲ ਯੂਨਿਟ, ਏਕੀਕਰਣ ਅਤੇ UI ਟੈਸਟ ਤਿਆਰ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
- ਖਾਲੀ/ਬੇਕਾਰ ਟੈਸਟਾਂ ਅਤੇ ਫੁੱਲੇ ਹੋਏ ਕਵਰੇਜ ਨੂੰ ਇਹ ਜਾਂਚ ਕੇ ਬਾਹਰ ਕੱਢਣ ਦੀ ਸਮਰੱਥਾ ਕਿ ਹਰੇਕ ਟੈਸਟ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਅਸਲ ਵਿੱਚ ਇੱਕ ਵਿਵਹਾਰ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ
- ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਟੈਸਟ ਬੱਗ ਨੂੰ ਫੜਦਾ ਹੈ ਅਤੇ AI ਨੂੰ ਇਹ ਦੱਸ ਕੇ ਬੱਗ ਨੂੰ ਠੀਕ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ ਕਿ ਕੋਡ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ
Writing code is half the job; ਇਹ ਸਾਬਤ ਕਰਨਾ ਕਿ ਕੋਡ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ ਦੂਜਾ ਅੱਧਾ ਹੈ. Mobile apps encounter hundreds of different devices, screen sizes, operating system versions, and user behaviors. It is impossible to test all of these manually; ਇਸ ਲਈ ਆਟੋਮੇਟਿਡ ਟੈਸਟਿੰਗ (ਕੋਡ ਟੈਸਟਿੰਗ ਕੋਡ — ਟੈਸਟਿੰਗ ਜੋ ਮਨੁੱਖੀ ਕਲਿੱਕ ਤੋਂ ਬਿਨਾਂ ਚੱਲਦੀ ਹੈ) ਮੋਬਾਈਲ ਗੁਣਵੱਤਾ ਦੀ ਰੀੜ੍ਹ ਦੀ ਹੱਡੀ ਹੈ। AI ਟੈਸਟਾਂ ਨੂੰ ਲਿਖਣ ਵਿੱਚ ਅਵਿਸ਼ਵਾਸ਼ਯੋਗ ਤੌਰ 'ਤੇ ਕੁਸ਼ਲ ਹੈ ਕਿਉਂਕਿ ਟੈਸਟ ਲਿਖਣਾ ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਦਾ ਪੈਟਰਨ ਕੰਮ ਹੈ ਜੋ ਇਸਨੂੰ ਪਸੰਦ ਕਰਦਾ ਹੈ: ਖਾਸ ਇਨਪੁਟਸ ਲਈ ਇੱਕ ਖਾਸ ਵਿਵਹਾਰ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ। ਇਸ ਯੂਨਿਟ ਵਿੱਚ, ਅਸੀਂ ਸਿੱਖਾਂਗੇ ਕਿ ਕਿਵੇਂ ਏਆਈ ਨਾਲ ਯੂਨਿਟ ਟੈਸਟਿੰਗ, ਇੰਟਰਫੇਸ ਟੈਸਟਿੰਗ ਅਤੇ ਆਟੋਮੇਸ਼ਨ ਨੂੰ ਤੇਜ਼ ਕਰਨਾ ਹੈ, ਪਰ ਮਨੁੱਖੀ ਅੱਖਾਂ ਦੁਆਰਾ ਟੈਸਟ ਦੀ ਗੁਣਵੱਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ।
Testing pyramid: what to test and how much
ਇੱਕ ਸਿਹਤਮੰਦ ਟੈਸਟਿੰਗ ਰਣਨੀਤੀ ਇੱਕ ਪਿਰਾਮਿਡ ਵਰਗੀ ਹੈ। ਅਧਾਰ ਵਿੱਚ ਵੱਡੀ ਗਿਣਤੀ ਵਿੱਚ ਯੂਨਿਟ ਟੈਸਟ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ (ਤੁਰੰਤ ਟੈਸਟਿੰਗ ਜੋ ਇਕੱਲੇ ਫੰਕਸ਼ਨ ਜਾਂ ਕਲਾਸ ਨੂੰ ਅਲੱਗ-ਥਲੱਗ ਟੈਸਟ ਕਰਦੀ ਹੈ); ਉਹ ਤੇਜ਼ ਅਤੇ ਸਸਤੇ ਹਨ। ਮੱਧ ਵਿੱਚ ਘੱਟ ਏਕੀਕਰਣ ਟੈਸਟਿੰਗ ਹੈ (ਇਹ ਟੈਸਟ ਕਰਨਾ ਕਿ ਕਈ ਹਿੱਸੇ ਇਕੱਠੇ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ)। ਸਿਖਰ 'ਤੇ ਘੱਟੋ-ਘੱਟ UI/ਐਂਡ-ਟੂ-ਐਂਡ ਟੈਸਟਿੰਗ ਹੈ (ਉਪਭੋਗਤਾ ਦੀ ਤਰ੍ਹਾਂ ਸਕ੍ਰੀਨ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਟੈਸਟਿੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ); ਉਹ ਯਥਾਰਥਵਾਦੀ ਹਨ ਪਰ ਹੌਲੀ ਅਤੇ ਨਾਜ਼ੁਕ ਹਨ। AI ਹਰ ਪਰਤ 'ਤੇ ਮਦਦ ਕਰਦਾ ਹੈ, ਪਰ ਸਭ ਤੋਂ ਵੱਧ ਮੁੱਲ ਅਧਾਰ 'ਤੇ ਹੈ: ਕਾਰੋਬਾਰੀ ਤਰਕ ਦੇ ਯੂਨਿਟ ਟੈਸਟਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਤਿਆਰ ਕਰਨਾ।
ਟੈਸਟ ਦੀ ਕਿਸਮ
ਸਕੋਪ
ਗਤੀ
AI ਕੁਸ਼ਲਤਾ
ਯੂਨਿਟ ਟੈਸਟਿੰਗ
ਸਿੰਗਲ ਫੰਕਸ਼ਨ/ਕਲਾਸ
ਬਹੁਤ ਤੇਜ਼
ਬਹੁਤ ਉੱਚਾ
ਏਕੀਕਰਣ
ਇੰਟਰਲੇਅਰ
ਮੱਧਮ
ਉੱਚ
UI / ਐਂਡ-ਟੂ-ਐਂਡ
ਸਾਰੀ ਸਕ੍ਰੀਨ ਸਟ੍ਰੀਮ
ਹੌਲੀ
ਮੱਧਮ (ਨਾਜ਼ੁਕ)
ਨੁਕਤਾ: ਜਦੋਂ AI ਨੂੰ "ਇਸ ਫੰਕਸ਼ਨ ਲਈ ਟੈਸਟ ਤਿਆਰ ਕਰਨ" ਲਈ ਕਹਿੰਦੇ ਹੋ, ਤਾਂ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਕਿਨਾਰੇ ਦੇ ਕੇਸਾਂ ਲਈ ਪੁੱਛੋ: ਖਾਲੀ ਇਨਪੁਟ, ਨਲ, ਨਕਾਰਾਤਮਕ ਸੰਖਿਆ, ਬਹੁਤ ਵੱਡਾ ਮੁੱਲ, ਨੈੱਟਵਰਕ ਗਲਤੀ। AI ਆਸਾਨੀ ਨਾਲ ਖੁਸ਼ਹਾਲ ਮਾਰਗ ਪੈਦਾ ਕਰਦਾ ਹੈ; ਅਸਲ ਗਲਤੀਆਂ ਸਰਹੱਦਾਂ ਵਿੱਚ ਛੁਪ ਜਾਂਦੀਆਂ ਹਨ ਅਤੇ ਜੇ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਨੂੰ ਉੱਥੇ ਨਹੀਂ ਚਾਹੁੰਦੇ ਤਾਂ ਬਾਹਰ ਛਾਲ ਮਾਰਦੇ ਹਨ।
AI ਨਾਲ ਟੈਸਟ ਲਿਖਣ ਦੇ ਪੜਾਅ
- ਟੈਸਟ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਵਿਹਾਰ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। +msgstr "ਇਸ ਫੰਕਸ਼ਨ ਨੂੰ ਇਸ ਇੰਪੁੱਟ ਨੂੰ ਆਉਟਪੁੱਟ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ।"
- ਫਰੇਮਵਰਕ ਦਿਓ. ਐਂਡਰਾਇਡ 'ਤੇ JUnit + MockK, iOS 'ਤੇ XCTest, Espresso (Android) ਜਾਂ UI ਲਈ XCUITest (iOS)।
- ਸੀਮਾ ਰਾਜਾਂ ਲਈ ਪੁੱਛੋ। ਖੁਸ਼ਹਾਲ ਦ੍ਰਿਸ਼ + ਗਲਤੀ + ਬ੍ਰੇਕਪੁਆਇੰਟ।
- ਨਕਲੀ ਵਸਤੂਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ। ਬਾਹਰੀ ਨਿਰਭਰਤਾਵਾਂ ਜਿਵੇਂ ਕਿ ਨੈਟਵਰਕ ਅਤੇ ਡੇਟਾਬੇਸ ਨੂੰ ਟੈਸਟਿੰਗ ਲਈ ਨਕਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ (ਅਸਲ ਸੇਵਾ ਦੀ ਬਜਾਏ ਮੌਕ - ਨਿਯੰਤਰਿਤ ਮੌਕ)।
- ਟੈਸਟ ਚਲਾਓ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ। ਕੀ ਟੈਸਟ ਪਾਸ ਹੁੰਦਾ ਹੈ, ਕੀ ਇਹ ਸੱਚਮੁੱਚ ਅਰਥਪੂਰਨ ਕਿਸੇ ਚੀਜ਼ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ?
ਪੰਜਵਾਂ ਕਦਮ ਨਾਜ਼ੁਕ ਹੈ। AI ਕਈ ਵਾਰ ਬੇਕਾਰ ਟੈਸਟ ਪੈਦਾ ਕਰਦਾ ਹੈ ਜੋ "ਹਮੇਸ਼ਾ ਪਾਸ" ਹੁੰਦੇ ਹਨ; ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਟੈਸਟ ਜੋ ਕਿਸੇ ਵੀ ਚੀਜ਼ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕਰਦਾ ਜਾਂ ਆਪਣੇ ਖੁਦ ਦੇ ਜਾਅਲੀ ਡੇਟਾ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਇੱਕ ਪਾਸ ਪ੍ਰੀਖਿਆ ਅਤੇ ਇੱਕ ਕੀਮਤੀ ਪ੍ਰੀਖਿਆ ਵੱਖ-ਵੱਖ ਚੀਜ਼ਾਂ ਹਨ।
ਸਾਵਧਾਨ: ਸਿਰਫ਼ ਇਸ ਲਈ ਕਿ AI ਪੈਦਾ ਕਰ ਸਕਦਾ ਹੈ ਇਸਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਹੈ ਕਿ ਟੈਸਟ ਸਹੀ ਹੈ। ਕਈ ਵਾਰ AI ਕੋਡ ਦੇ ਮੌਜੂਦਾ (ਸ਼ਾਇਦ ਨੁਕਸਦਾਰ) ਵਿਵਹਾਰ ਨੂੰ "ਸਹੀ" ਵਜੋਂ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਅਤੇ ਉਸ ਅਨੁਸਾਰ ਟੈਸਟ ਲਿਖਦਾ ਹੈ। ਅਜਿਹੀ ਜਾਂਚ ਬੱਗ ਨੂੰ ਫੜਨ ਦੀ ਬਜਾਏ ਠੀਕ ਕਰਦੀ ਹੈ। ਤੁਸੀਂ ਇਹ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹੋ ਕਿ ਟੈਸਟ ਕੀ ਉਮੀਦ ਕਰਦਾ ਹੈ; ਏਆਈ ਨੂੰ ਦੱਸੋ ਕਿ ਇਸਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਕੋਡ ਕੀ ਕਰਦਾ ਹੈ।
ਟੈਸਟ ਕਵਰੇਜ ਮਾਪ ਅਤੇ ਗਲਤੀ
ਟੈਸਟ ਕਵਰੇਜ (ਕੋਡ ਦਾ ਕਿੰਨਾ ਪ੍ਰਤੀਸ਼ਤ ਟੈਸਟਾਂ ਦੁਆਰਾ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ) ਇੱਕ ਉਪਯੋਗੀ ਪਰ ਗੁੰਮਰਾਹਕੁੰਨ ਮੈਟ੍ਰਿਕ ਹੈ। 90% ਕਵਰੇਜ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ 90% ਕੋਡ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ; ਪਰ ਇਹ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ ਕਿ ਉਹ ਲਾਈਨਾਂ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰ ਰਹੀਆਂ ਹਨ। ਇੱਕ ਟੈਸਟ ਜੋ ਇੱਕ ਲਾਈਨ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਨਤੀਜੇ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰਦਾ ਹੈ, ਸਕੋਪ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ ਪਰ ਸੁਰੱਖਿਆ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਟੀਚਾ ਉੱਚ ਸੰਖਿਆਵਾਂ ਨਹੀਂ ਹੈ, ਪਰ ਅਰਥਪੂਰਨ ਪ੍ਰਮਾਣਿਕਤਾ ਹੈ। ਤੁਸੀਂ AI ਨਾਲ ਤੇਜ਼ੀ ਨਾਲ ਸਕੇਲ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਹਰੇਕ ਟੈਸਟ ਅਸਲ ਵਿੱਚ ਇੱਕ ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ।
ਤਿੰਨ ਛੋਟੇ ਕੇਸ
ਕੇਸ 1 - ਬਾਰਡਰ ਸਥਿਤੀ ਫੜੀ ਗਈ। AI ਨੂੰ ਇੱਕ ਬੈਂਕਿੰਗ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਪੈਸੇ ਟ੍ਰਾਂਸਫਰ ਫੰਕਸ਼ਨ ਲਈ ਟੈਸਟਾਂ ਲਈ ਕਿਹਾ ਗਿਆ ਸੀ, ਅਤੇ ਖਾਸ ਤੌਰ 'ਤੇ "ਨਕਾਰਾਤਮਕ ਰਕਮ" ਅਤੇ "ਬਕਾਇਆ ਤੋਂ ਵੱਧ" ਦ੍ਰਿਸ਼ ਸ਼ਾਮਲ ਕੀਤੇ ਗਏ ਸਨ। ਟੈਸਟ ਨੇ ਖੁਲਾਸਾ ਕੀਤਾ ਕਿ ਟ੍ਰਾਂਸਫਰ ਨੂੰ ਨਕਾਰਾਤਮਕ ਰਕਮ ਨਾਲ ਬਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ; ਇਹ ਉਤਪਾਦਨ ਵਿੱਚ ਇੱਕ ਵੱਡੀ ਸੁਰੱਖਿਆ ਕਮਜ਼ੋਰੀ ਹੋਵੇਗੀ। ਇੱਕ ਲਾਈਨ ਕੰਟਰੋਲ ਜੋੜ ਕੇ ਬੰਦ ਕੀਤਾ ਗਿਆ। ਪਾਠ: ਸੀਮਾ ਟੈਸਟ ਸਭ ਤੋਂ ਕੀਮਤੀ ਟੈਸਟ ਹਨ।
ਕੇਸ 2 - ਜਾਅਲੀ ਟੈਸਟ। ਏਆਈ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ 40 ਯੂਨਿਟ ਟੈਸਟਾਂ ਨਾਲ ਇੱਕ ਟੀਮ ਨੂੰ ਕਵਰੇਜ ਨੂੰ 85% ਤੱਕ ਵਧਾਉਣ ਲਈ ਰਾਹਤ ਮਿਲੀ। ਨਿਰੀਖਣ ਦੌਰਾਨ, ਇਹ ਦੇਖਿਆ ਗਿਆ ਕਿ ਜ਼ਿਆਦਾਤਰ ਟੈਸਟਾਂ ਨੇ ਅਸਲ ਵਿੱਚ ਕਿਸੇ ਆਉਟਪੁੱਟ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ, ਉਹਨਾਂ ਨੇ ਸਿਰਫ਼ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕੀਤਾ ਅਤੇ assertTrue(true) ਲਿਖਿਆ। ਕਵਰੇਜ ਜ਼ਿਆਦਾ ਸੀ ਪਰ ਸੁਰੱਖਿਆ ਜ਼ੀਰੋ ਸੀ। ਟੈਸਟਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਸੀ ਅਤੇ ਅਸਲ ਪ੍ਰਮਾਣਿਕਤਾਵਾਂ ਨਾਲ ਦੁਬਾਰਾ ਲਿਖਿਆ ਗਿਆ ਸੀ। ਪਾਠ: ਕਵਰੇਜ ਨੰਬਰ ਝੂਠ ਬੋਲ ਸਕਦੇ ਹਨ।
ਕੇਸ 3 — UI ਟੈਸਟਿੰਗ ਤੇਜ਼ ਕੀਤੀ ਗਈ। ਇੱਕ ਈ-ਕਾਮਰਸ ਟੀਮ ਨੇ 20 ਮਿੰਟਾਂ ਵਿੱਚ ਏਆਈ ਦੇ ਨਾਲ ਐਡ-ਟੂ-ਕਾਰਟ ਪ੍ਰਵਾਹ ਦੀ ਇੱਕ XCUITest ਸਕ੍ਰਿਪਟ ਲਿਖੀ; ਜੇ ਹੱਥੀਂ ਲਿਖਿਆ ਹੁੰਦਾ ਤਾਂ ਅੱਧਾ ਦਿਨ ਲੱਗ ਜਾਂਦਾ। AI ਅਨੁਮਾਨਿਤ ਸਕ੍ਰੀਨ ਐਲੀਮੈਂਟ ਪਛਾਣਕਰਤਾ; ਟੀਮ ਨੇ ਉਨ੍ਹਾਂ ਨੂੰ ਅਸਲ ਕੋਡ ਨਾਲ ਮਿਲਾ ਕੇ ਫਿਕਸ ਕੀਤਾ। ਡਰਾਫਟ ਦੀ ਗਤੀ ਅਸਲ ਹੈ, ਪਰ ਪਛਾਣਕਰਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨਾ ਮਨੁੱਖੀ ਕੰਮ ਹੈ।
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ / ਮਜ਼ਬੂਤ ਪ੍ਰੋਂਪਟ
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ: "ਇਸ ਫੰਕਸ਼ਨ ਲਈ ਇੱਕ ਟੈਸਟ ਲਿਖੋ।"
ਸ਼ਕਤੀਸ਼ਾਲੀ ਪ੍ਰੋਂਪਟ: "JUnit5 + MockK ਦੇ ਨਾਲ ਇਸ ਕੋਟਲਿਨ ਫੰਕਸ਼ਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟ ਤਿਆਰ ਕਰੋ। ਫੰਕਸ਼ਨ: ਪੈਸੇ ਟ੍ਰਾਂਸਫਰ (ਰਾਕਮਾ, ਸਰੋਤ, ਟੀਚਾ)। ਟੈਸਟ ਕਰਨ ਲਈ ਵਿਵਹਾਰ (ਕੋਡ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ):- ਵੈਧ ਟ੍ਰਾਂਸਫਰ ਸਫਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ- ਨਕਾਰਾਤਮਕ ਜਾਂ ਜ਼ੀਰੋ ਰਕਮ ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ- ਸੰਤੁਲਨ ਤੋਂ ਵੱਧ ਰਕਮ ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਉਹਨਾਂ ਦੇ ਨਾਮ ਨੂੰ ਛੱਡ ਕੇ ਇੱਕ ਉਚਿਤ ਚੀਜ਼ ਨੂੰ ਰੱਦ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਨੈੱਟਵਰਕ ਈਰਰ ਨੂੰ ਛੱਡ ਕੇ ਵਰਣਨਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਬਾਹਰੀ ਸੇਵਾ ਦਾ ਮਜ਼ਾਕ ਉਡਾਉ, ਇੱਕ ਖਾਲੀ ਦਾਅਵਾ ਨਾ ਲਿਖੋ।"
ਨਕਲ ਕਰਨ ਯੋਗ ਟੈਂਪਲੇਟਸ
ਯੂਨਿਟ ਟੈਸਟ ਟੈਮਪਲੇਟ: "[ਭਾਸ਼ਾ] ਲਈ ਇਸ ਫੰਕਸ਼ਨ ਲਈ [JUnit/XCTest] ਯੂਨਿਟ ਟੈਸਟ ਤਿਆਰ ਕਰੋ। ਸੰਭਾਵਿਤ ਵਿਵਹਾਰ: [ਕੀ ਕਰਨਾ ਹੈ]। ਸ਼ਾਮਲ ਕਰੋ: ਖੁਸ਼ਹਾਲ ਦ੍ਰਿਸ਼, ਨਲ ਇੰਪੁੱਟ, ਬ੍ਰੇਕਪੁਆਇੰਟ, ਗਲਤੀ ਕੇਸ। ਹਰੇਕ ਟੈਸਟ ਨੂੰ ਸਿੰਗਲ ਵਿਵਹਾਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦਿਓ; ਅਰਥਪੂਰਨ ਦਾਅਵਾ ਵਰਤੋ; ਮਖੌਲ। [ਕੋਡ]"
UI ਟੈਸਟਿੰਗ ਟੈਮਪਲੇਟ: "[Espresso/XCUITest] ਦੇ ਨਾਲ ਹੇਠਾਂ ਦਿੱਤੇ ਪ੍ਰਵਾਹ ਦਾ ਇੱਕ UI ਟੈਸਟ ਲਿਖੋ: [ਉਪਭੋਗਤਾ ਦਾ ਪ੍ਰਵਾਹ ਕਦਮ ਦਰ ਕਦਮ]। ਪਹੁੰਚਯੋਗਤਾ ਆਈਡੀ ਵਾਲੇ ਸਕ੍ਰੀਨ ਐਲੀਮੈਂਟਸ ਚੁਣੋ, ਟੈਕਸਟ ਦੀ ਬਜਾਏ ਆਈਡੀ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਉਡੀਕ ਰਣਨੀਤੀ ਸ਼ਾਮਲ ਕਰੋ। ਅਸਲ ਕੋਡ ਨਾਲ ਐਲੀਮੈਂਟ ਆਈਡੀ ਦਾ ਮੇਲ ਕਰਨ ਲਈ ਮੈਨੂੰ ਯਾਦ ਦਿਵਾਓ।"
ਟੈਸਟ ਆਡਿਟ ਟੈਮਪਲੇਟ:"ਇਹਨਾਂ ਟੈਸਟਾਂ ਦੀ ਜਾਂਚ ਕਰੋ:1) ਕੀ ਉਹ ਅਸਲ ਵਿੱਚ ਇੱਕ ਆਉਟਪੁੱਟ/ਵਿਵਹਾਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਨ ਜਾਂ ਉਹ ਖਾਲੀ ਹਨ? 2) ਕੀ ਉਹ ਸੀਮਾ ਦੇ ਕੇਸਾਂ ਨੂੰ ਕਵਰ ਕਰਦੇ ਹਨ? 3) ਕੀ ਉਹ ਕੋਡ ਨੂੰ ਠੀਕ ਕਰਦੇ ਹਨ ਜਾਂ ਸਹੀ ਵਿਵਹਾਰ ਦੀ ਉਮੀਦ ਕਰਦੇ ਹਨ? ਕਮਜ਼ੋਰ ਟੈਸਟਾਂ ਨੂੰ ਫਲੈਗ ਕਰੋ ਅਤੇ ਮਜ਼ਬੂਤ ਕਰੋ। [ਟੈਸਟਾਂ]"
ਕਵਰੇਜ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਟੈਮਪਲੇਟ: "ਇਸ ਕਲਾਸ ਦੇ ਅਣਪਛਾਤੇ ਹਿੱਸਿਆਂ ਦੀ ਪਛਾਣ ਕਰੋ ਅਤੇ ਅਰਥਪੂਰਨ ਟੈਸਟਾਂ ਦਾ ਸੁਝਾਅ ਦਿਓ। ਅਸਲ ਜੋਖਮ ਵਾਲੇ ਮਾਰਗਾਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ, ਨਾ ਕਿ ਸਿਰਫ ਕਵਰੇਜ ਦੀ ਗਿਣਤੀ। [ਕੋਡ]"
ਆਮ ਗਲਤੀਆਂ
- ਸਿਰਫ ਖੁਸ਼ਹਾਲ ਦ੍ਰਿਸ਼ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ. ਗਲਤੀਆਂ ਸੀਮਾ ਅਵਸਥਾਵਾਂ ਵਿੱਚ ਸਟੋਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ; ਉਹਨਾਂ ਨੂੰ ਖੁੱਲ ਕੇ ਪੁੱਛੋ।
- ਇੱਕ ਖਾਲੀ/ਬੇਕਾਰ ਟੈਸਟ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ। assertTrue(true) ਕਿਸਮ ਦੇ ਟੈਸਟ ਸਕੋਪ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ ਅਤੇ ਕੋਈ ਸੁਰੱਖਿਆ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦੇ ਹਨ।
- AI ਹੋਣ ਨਾਲ ਇਹ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਕੋਡ ਕੀ ਕਰ ਰਿਹਾ ਹੈ। ਟੈਸਟਿੰਗ ਨੂੰ ਉਮੀਦ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਕਿ ਕੋਡ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ; ਨਹੀਂ ਤਾਂ ਇਹ ਬੱਗ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ।
- ਉਦੇਸ਼ ਲਈ ਸਕੋਪ ਨੰਬਰ ਨੂੰ ਗਲਤੀ ਨਾਲ. 90% ਕਵਰੇਜ ਦਾ ਮਤਲਬ 90% ਸ਼ੁੱਧਤਾ ਨਹੀਂ ਹੈ।
- UI ਟੈਸਟਿੰਗ ਵਿੱਚ ਟੈਕਸਟ ਨਾਲ ਲਿੰਕ ਕਰਨਾ। ਜਦੋਂ ਟੈਕਸਟ ਬਦਲਦਾ ਹੈ ਤਾਂ ਟੈਸਟ ਟੁੱਟ ਜਾਂਦਾ ਹੈ; ਸਥਿਰ ਪਛਾਣਕਰਤਾ (id) ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਗਲਤ ਢੰਗ ਨਾਲ ਮਖੌਲ ਸਥਾਪਤ ਕਰਨਾ। ਅਸਲ ਸੇਵਾ ਨੂੰ ਕਾਲ ਕਰਨ ਵਾਲਾ "ਯੂਨਿਟ ਟੈਸਟ" ਹੌਲੀ ਅਤੇ ਭੁਰਭੁਰਾ ਹੋਵੇਗਾ।
ਸਾਰੰਸ਼ ਵਿੱਚ
ਟੈਸਟਿੰਗ ਮੋਬਾਈਲ ਗੁਣਵੱਤਾ ਦੀ ਰੀੜ੍ਹ ਦੀ ਹੱਡੀ ਹੈ, ਅਤੇ AI ਇਸ ਖੇਤਰ ਵਿੱਚ ਬਹੁਤ ਕੁਸ਼ਲ ਹੈ, ਖਾਸ ਕਰਕੇ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ। ਟੈਸਟਿੰਗ ਪਿਰਾਮਿਡ ਦੀ ਪਾਲਣਾ ਕਰੋ: ਬਹੁਤ ਸਾਰੀਆਂ ਇਕਾਈਆਂ, ਮੱਧਮ ਏਕੀਕਰਣ, ਛੋਟਾ UI ਟੈਸਟਿੰਗ। ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਖੁਸ਼ਹਾਲ ਦ੍ਰਿਸ਼ ਲਈ AI ਨੂੰ ਪੁੱਛੋ ਅਤੇ ਨਾਲ ਹੀ ਕੇਸਾਂ ਅਤੇ ਗਲਤੀ ਮਾਰਗਾਂ ਨੂੰ ਸੀਮਤ ਕਰੋ। ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰੋ ਕਿ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹਰੇਕ ਟੈਸਟ ਅਸਲ ਵਿੱਚ ਇੱਕ ਵਿਵਹਾਰ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ; ਖਾਲੀ ਟੈਸਟ ਅਤੇ ਵਧੀ ਹੋਈ ਕਵਰੇਜ ਗੁੰਮਰਾਹਕੁੰਨ ਹਨ। ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ, AI ਨੂੰ ਦੱਸੋ ਕਿ ਕੋਡ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਇਹ ਕੀ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਟੈਸਟ ਬੱਗ ਨੂੰ ਫੜਦਾ ਹੈ, ਇਸ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰਦਾ।
ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ
ਇੱਕ ਕਾਰੋਬਾਰੀ ਤਰਕ ਫੰਕਸ਼ਨ ਲਈ "ਯੂਨਿਟ ਟੈਸਟ ਟੈਮਪਲੇਟ" ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ AI ਤੋਂ ਟੈਸਟਾਂ ਦੀ ਬੇਨਤੀ ਕਰੋ (ਜਿਵੇਂ ਕਿ ਛੂਟ ਦੀ ਗਣਨਾ ਜਾਂ ਫਾਰਮ ਪ੍ਰਮਾਣਿਕਤਾ) ਅਤੇ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸੀਮਾ ਕੇਸਾਂ (ਨਲ, ਨਕਾਰਾਤਮਕ, ਬਹੁਤ ਵੱਡੇ) ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰੋ। ਤਿਆਰ ਕੀਤੇ ਟੈਸਟਾਂ ਨੂੰ ਚਲਾਓ, ਫਿਰ "ਟੈਸਟ ਆਡਿਟ ਟੈਮਪਲੇਟ" ਨਾਲ ਉਹੀ ਟੈਸਟਾਂ ਦਾ ਆਡਿਟ ਕਰੋ। ਘੱਟੋ-ਘੱਟ ਇੱਕ ਕਮਜ਼ੋਰ ਟੈਸਟ ਲੱਭੋ, ਇਸਨੂੰ ਮਜ਼ਬੂਤ ਕਰੋ, ਅਤੇ ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਟੈਸਟ ਫੰਕਸ਼ਨ ਦੀ ਅਸਲ ਗਲਤੀ ਨੂੰ ਫੜਦੇ ਹਨ (ਇੱਕ ਛੋਟਾ ਬੱਗ ਜੋੜ ਕੇ)।
ਚੈੱਕਲਿਸਟ
- [ ] ਮੈਂ ਟੈਸਟ ਪਿਰਾਮਿਡ (ਪਹਿਲ ਇਕਾਈ) ਲਈ ਢੁਕਵੀਂ ਪਰਤ ਚੁਣੀ ਹੈ
- [ ] ਮੈਂ ਖੁਸ਼ਹਾਲ ਦ੍ਰਿਸ਼ ਤੋਂ ਇਲਾਵਾ ਸੀਮਾ ਅਤੇ ਗਲਤੀ ਦੇ ਕੇਸ ਚਾਹੁੰਦਾ ਸੀ
- [ ] ਮੈਂ ਤਸਦੀਕ ਕੀਤਾ ਹੈ ਕਿ ਹਰੇਕ ਟੈਸਟ ਵਿੱਚ ਇੱਕ ਅਰਥਪੂਰਨ ਦਾਅਵਾ ਸ਼ਾਮਲ ਹੈ
- [ ] ਮੈਂ AI ਨੂੰ ਦੱਸਿਆ ਕਿ ਕੋਡ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਇਹ ਕੀ ਕਰਦਾ ਹੈ
- [ ] ਮੈਂ ਅਸਲ ਜੋਖਮ ਮਾਰਗਾਂ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕੀਤਾ, ਨਾ ਕਿ ਕਵਰੇਜ ਦੀ ਗਿਣਤੀ 'ਤੇ
- [ ] ਮੈਂ UI ਟੈਸਟਾਂ ਵਿੱਚ ਸਥਿਰ ਪਛਾਣਕਰਤਾ ਦੀ ਵਰਤੋਂ ਕੀਤੀ, ਮੈਂ ਟੈਕਸਟ ਨਾਲ ਬੰਨ੍ਹਿਆ ਨਹੀਂ ਸੀ