ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਸਿਰਫ ਟੈਸਟ ਨਹੀਂ ਚਲਾਉਂਦੇ—ਉਹ ਆਦਤਾਂ, ਰਿਵਿਊ, ਓਨਬੋਰਡਿੰਗ ਅਤੇ ਡਿਲਿਵਰੀ ਦੀ ਰਫ਼ਤਾਰ ਨੂੰ ਵੀ ਆਕਾਰ ਦਿੰਦੇ ਹਨ। ਜਾਨੋ ਕਿ ਸਹੀ ਚੋਣ ਕਿਵੇਂ ਇੱਕ ਸਿਹਤਮੰਦ ਸੰਸਕ੍ਰਿਤੀ ਬਣਾਉਂਦੀ ਹੈ।

“ਇੰਜੀਨੀਅਰਿੰਗ ਸੰਸਕ੍ਰਿਤੀ” ਸੁਣਨ ਵਿੱਚ ਅਬਸਟਰੈਕਟ ਲੱਗਦੀ ਹੈ, ਪਰ ਇਹ ਬਹੁਤ ਹੀ ਪ੍ਰਾਇਕਟਿਕ ਤਰੀਕੇ ਨਾਲ ਸਾਹਮਣੇ ਆਉਂਦੀ ਹੈ: ਰੁਜ਼ਾਨਾ ਜਦੋਂ ਲੋਕ ਵਿਆਸਤ ਹੁੰਦੇ ਹਨ ਤਾਂ ਉਹ ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ ਕੀ ਕਰਦੇ ਹਨ, ਦਬਾਅ ਹੇਠਾਂ ਉਹ ਕਿਹੜੀਆਂ ਤਰਜੀحات ਲੈਂਦੇ ਹਨ, ਅਤੇ ਕੀ ਚੀਜ਼ਾਂ “ਆਮ” ਜਾਂ “ਖਤਰਨਾਕ” ਮੰਨੀ ਜਾਂਦੀਆਂ ਹਨ। ਇਹ ਉਹ ਰੋਜ਼ਾਨਾ ਆਦਤਾਂ ਹਨ—ਕੋਡ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਛੋਟਾ ਟੈਸਟ ਲਿਖਣਾ, ਲੋਕਲ ਚੈੱਕ ਚਲਾਉਣਾ, ਰਿਵਿਊ ਮੰਗਣਾ, ਅਨੁਮਾਨ ਦਸਤਾਵੇਜ਼ ਕਰਨਾ—ਜੋ ਸਮੇਂ ਦੇ ਨਾਲ ਗੁਣਵੱਤਾ ਨੂੰ ਤਿਆਰ ਕਰਦੀਆਂ ਹਨ।
ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਸੰਸਕ੍ਰਿਤੀ ਬਾਰੇ ਮੀਟਿੰਗਾਂ ਵਿੱਚ ਗੱਲ ਨਹੀਂ ਕਰਦੀਆਂ। ਸੰਸਕ੍ਰਿਤੀ ਇਹਨਾਂ ਵਿੱਚ ਦਰਸਦੀ ਹੈ:
ਇਹ ਪੈਟਰਨ ਰੋਜ਼ਾਨਾ ਤਜਰਬੇ ਨਾਲ ਮਜ਼ਬੂਤ ਹੁੰਦੇ ਹਨ। ਜੇ ਗੁਣਵੱਤਾ ਚੈੱਕ ਸਾਰੇ ਲਈ ਧੀਮੇ, ਉਝਲੇ ਜਾਂ ਦਰਦਨਾਕ ਹਨ, ਤਾਂ ਲੋਕ ਉਹਨਾਂ ਤੋਂ ਪਰਹੇਜ਼ ਕਰਨਾ ਸਿੱਖ ਲੈਂਦੇ ਹਨ। ਜੇ ਉਹ ਤੇਜ਼ ਅਤੇ ਜਾਣਕਾਰੀਆਂ ਭਰੇ ਹਨ, ਤਾਂ ਲੋਕ ਅਹਿਸਾਸਾਤਮਕ ਤੌਰ 'ਤੇ ਉਨ੍ਹਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ।
ਜਦੋਂ ਅਸੀਂ “ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ” ਕਹਿੰਦੇ ਹਾਂ, ਅਸੀਂ ਸਿਰਫ਼ ਅਸਰਸ਼ਨ APIs ਦੀ ਗੱਲ ਨਹੀਂ ਕਰ ਰਹੇ। ਇੱਕ ਫਰੇਮਵਰਕ ਆਮ ਤੌਰ 'ਤੇ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ:
ਇਹ ਸਾਰਾ ਬੰਡਲ ਡਿਵੈਲਪਰ ਅਨੁਭਵ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ: ਟੈਸਟ ਲਿਖਣਾ ਕੋਡਿੰਗ ਦਾ ਸੁਭਾਵਿਕ ਹਿੱਸਾ ਹੈ ਜਾਂ ਇੱਕ ਵਾਧੂ ਕੰਮ ਜੋ ਮੁਲਤਵੀ ਹੋ ਜਾਂਦਾ ਹੈ।
ਵੱਖ-ਵੱਖ ਫਰੇਮਵਰਕ ਚੰਗੇ ਨਤੀਜੇ ਦੇ ਸਕਦੇ ਹਨ। ਜ਼ਿਆਦਾ ਜ਼ਰੂਰੀ ਸਵਾਲ ਇਹ ਹੈ: ਇਹ ਫਰੇਮਵਰਕ ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ ਕਿਹੜੇ ਵਿਹਵਾਰ ਨੂੰ ਪ੍ਰੋਤਸਾਹਿਤ ਕਰਦਾ ਹੈ? ਕੀ ਇਹ ਰੱਖ-ਰਖਾਅ ਯੋਗ ਟੈਸਟ ਲਿਖਣਾ ਅਸਾਨ ਬਣਾਉਂਦਾ ਹੈ? ਕੀ ਇਹ ਸਪਸ਼ਟ ਫੇਲ੍ਹ ਸੁਨੇਹਿਆਂ ਨੂੰ ਇਨਾਮ ਦਿੰਦਾ ਹੈ? ਕੀ ਇਹ ਤੁਹਾਡੇ CI ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਸੁਚੱਜੇ ਤਰੀਕੇ ਨਾਲ ਇਕੱਠਾ ਹੁੰਦਾ ਹੈ?
ਇਹ ਵੇਰਵੇ ਇਹ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਨ ਕਿ ਤੁਹਾਡੀ ਟੀਮ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ—ਅਤੇ ਅਮਲ ਵਿੱਚ ਗੁਣਵੱਤਾ ਦਾ ਕੀ ਮਤਲਬ ਹੈ।
ਮਕਸਦ ਇਹ ਹੈ ਕਿ ਟੀਮਾਂ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕਾਂ ਨੂੰ ਐਸਾ ਚੁਣਨ ਅਤੇ ਵਰਤਨ ਜੋ ਚੰਗੀਆਂ ਆਦਤਾਂ ਨੂੰ ਮਜ਼ਬੂਤ ਕਰੇ: ਤੇਜ਼ ਫੀਡਬੈਕ, ਸਪਸ਼ਟ ਉਮੀਦਾਂ, ਅਤੇ ਰਿਲੀਜ਼ਾਂ ਵਿੱਚ ਭਰੋਸਾ।
ਇੱਕ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਤਟਪੂਰਕ ਨਹੀਂ ਹੁੰਦਾ। ਇਸ ਦੀ “ਹੈਪੀ ਪਾਥ” ਚੁਪਚਾਪ ਇਹ ਫੈਸਲਾ ਕਰਦੀ ਹੈ ਕਿ ਪਹਿਲਾਂ ਕੀ ਟੈਸਟ ਕਰਨਾ ਸਹਿਜ ਮਹਿਸੂਸ ਹੋਵੇਗਾ—ਅਤੇ ਕੀ ਵਿਕਲਪਤ ਮਹਿਸੂਸ ਹੋਵੇਗਾ।
ਜਦੋਂ ਕੋਈ ਫਰੇਮਵਰਕ ਛੋਟੇ, ਅਲੱਗ-ਥਲੱਗ ਟੈਸਟ ਸ਼ੁਰੂ ਕਰਨ ਨੂੰ ਬੇਹੱਦ ਆਸਾਨ ਬਣਾ ਦਿੰਦਾ ਹੈ (ਤੇਜ਼ ਰਨਰ, ਘੱਟ ਬੂਇਲਰਪਲੇਟ, ਸਾਦਾ ਪੈਰਾਮੀਟਰਾਈਜੇਸ਼ਨ), ਟੀਮਾਂ ਆਮ ਤੌਰ 'ਤੇ ਯੂਨਿਟ ਟੈਸਟਾਂ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਫੀਡਬੈਕ ਤੁਰੰਤ ਹੁੰਦਾ ਹੈ। ਦੂਜੇ ਪਾਸੇ, ਜੇ ਆਸਾਨ ਸੈਟਅੱਪ ਬ੍ਰਾਉਜ਼ਰ ਰਨਰ ਜਾਂ ਪੂਰੇ ਐਪ ਹਾਰਨੈੱਸ ਦੇ ਰਾਹੀਂ ਹੈ, ਲੋਕ ਅਕਸਰ E2E ਚੈੱਕਾਂ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹਨ—ਭਾਵੇਂ ਉਹ ਧੀਮੇ ਅਤੇ ਨਿਰਧਾਰਿਤ ਕਰਨ ਵਿੱਚ ਮੁਸ਼ਕਲ ਹੋਣ।
ਸਮੇਂ ਦੇ ਨਾਲ, ਇਹ ਡਿਫ਼ਾਲਟ ਸੰਸਕ੍ਰਿਤੀ ਬਣ ਜਾਂਦਾ ਹੈ: “ਅਸੀਂ ਕਲਿੱਕ ਕਰਕੇ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਾਂ” ਬਨਾਮ “ਅਸੀਂ ਲਾਜ਼ਮੀ ਤਰੱਕੀ ਦੀ ਜਾਂਚ ਕਰਕੇ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਾਂ।”
ਫਰੇਮਵਰਕ ਰਾਏਆਂ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ:
ਇਹ ਚੋਣਾਂ ਅਬਸਟਰੈਕਟ ਨਹੀਂ—ਉਹ ਰੋਜ਼ਾਨਾ ਆਦਤਾਂ ਨੂੰ ਆਕਾਰ ਦਿੰਦੀਆਂ ਹਨ ਜਿਵੇਂ ਕਿ ਟੈਸਟਾਂ ਦਾ ਨਾਮਕਰਨ, ਮੌਡੀਊਲਾਂ ਦੀ ਬਣਤਰ, ਅਤੇ ਡਿਵੈਲਪਰ ਕਿੰਨੀ ਵਾਰ ਟੈਸਟ ਕੋਡ ਰੀਫੈਕਟਰ ਕਰਦਾ ਹੈ।
ਜੇ ਟੈਸਟ ਲਿਖਨਾ ਇੱਕ ਛੋਟੀ ਫੰਕਸ਼ਨ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਜਿਹਾ ਮਹਿਸੂਸ ਹੋਵੇ, ਤਾਂ ਉਹ ਆਮ ਵਿਕਾਸ ਦੌਰਾਨ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਜੇ ਇਸ ਲਈ ਕਨਫਿਗ, ਗਲੋਬਲ, ਜਾਂ ਧੀਮੀ ਸਟਾਰਟਅੱਪ ਨਾਲ ਜੂਝਣਾ ਪੈਂਦਾ ਹੈ, ਤਾਂ ਟੈਸਟ कुछ ਬਾਅਦ ਦਾ ਕੰਮ ਬਣ ਜਾਂਦੇ ਹਨ। ਟੂਲਿੰਗ friction ਫਿਰ ਮਾਮੂਲੀ ਝਲਕੇ ਬਣਾਉਂਦੀ ਹੈ:
ਇਹ ਸ਼ੌਰਟਕਟ ਘਟਦੇ-ਘਟਦਿਆਂ ਇਕੱਠੇ ਹੋ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਫਰੇਮਵਰਕ ਦੇ ਡਿਫ਼ਾਲਟ ਟੀਮ ਦੀ ਮਨਜ਼ੂਰੀ ਯੋਗ ਗੁਣਵੱਤਾ ਬਣ ਜਾਂਦੇ ਹਨ।
ਇੱਕ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਸਿਰਫ ਚੈੱਕ ਚਲਾਉਂਦਾ ਨਹੀਂ—ਇਹ ਲੋਕਾਂ ਨੂੰ ਟਰੇਨ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਫੀਡਬੈਕ ਤੇਜ਼ ਅਤੇ ਸਮਝਣਯੋਗ ਹੁੰਦਾ ਹੈ, ਡਿਵੈਲਪਰ ਅਕਸਰ ਵੱਧ ਕਮਿਟ ਕਰਦੇ ਹਨ, ਛੋਟੇ ਕਦਮਾਂ ਵਿੱਚ ਰੀਫੈਕਟਰ ਕਰਦੇ ਹਨ, ਅਤੇ ਟੈਸਟ ਨੂੰ ਵੱਖਰਾ ਕੰਮ ਨਹੀਂ ਪਰ ਕੰਮ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਮੰਨਦੇ ਹਨ।
ਜੇਕਰ ਇੱਕ ਬਦਲਾਵ ਦੀ ਪੁਸ਼ਟੀ ਸਕਿੰਟਾਂ ਵਿੱਚ ਹੋ ਸਕਦੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਜ਼ਿਆਦਾ ਸੰਭਾਲ ਕੇ:
ਫਰੇਮਵਰਕ ਫੀਚਰਾਂ ਇਸ ਵਿਹਵਾਰ ਨੂੰ ਸਿੱਧਾ ਪ੍ਰਭਾਵਿਤ ਕਰਦੇ ਹਨ। ਵਾਚ ਮੋਡ ਤਿੱਖੇ ਲੂਪਾਂ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦਾ ਹੈ (“ਸੇਵ → ਨਤੀਜੇ ਵੇਖੋ”), ਜੋ ਪਰਯੋਗ ਨੂੰ ਆਮ ਬਣਾਉਂਦਾ ਹੈ। ਨਿਸ਼ਾਨਾਬੰਦੀ ਟੈਸਟ ਚੋਣ (ਸਿਰਫ ਪ੍ਰਭਾਵਿਤ ਟੈਸਟ ਚਲਾਉਣਾ, ਟੈਸਟ ਫਾਇਲ ਪੈਟਰਨ, ਜਾਂ ਆਖਰੀ ਫ਼ੇਲ ਹੋਏ ਟੈਸਟ) ਅਨੁਮਾਨ ਜਾਂਚਣ ਦੀ ਲਾਗਤ ਘਟਾਉਂਦਾ ਹੈ। ਪੈਰਲੈਲ ਰਨ ਉਡੀਕ ਸਮਾਂ ਘਟਾਉਂਦੇ ਹਨ ਅਤੇ ਬਦਲੇ ਵਿੱਚ “ਕਈ ਬਦਲਾਵਾਂ ਇਕੱਠੇ ਟੈਸਟ ਕਰਨ” ਦਾ ਦਬਾਅ ਹਟਾਉਂਦੇ ਹਨ।
ਜਦੋਂ ਪੂਰਾ ਸੂਟ 20–60 ਮਿੰਟ ਲੈਂਦਾ ਹੈ, ਟੀਮ ਅਣੁਮਾਨਿਤ ਤਰੀਕਿਆਂ ਨਾਲ ਅਡਾਪਟ ਕਰਦੀ ਹੈ: ਘੱਟ ਚਲਾਣ, ਘੱਟ ਕਮਿਟ, ਅਤੇ “ਮੈਂ ਕੁਝ ਹੋਰ ਕਰ ਲੈਂਦਾ ਹਾਂ ਫਿਰ ਟੈਸਟ ਕਰਾਂਗਾ” ਦਾ ਸੋਚ। ਇਹ ਵੱਡੇ ਬੈਚਾਂ, ਮੁਸ਼ਕਲ ਰਿਵਿਊ PRs, ਅਤੇ ਜ਼ਿਆਦਾ ਸਮਾਂ ਖੋਜਣ ਵਿੱਚ ਭਰ ਦਿੰਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਬਦਲਾਅ ਨੇ ਫੇਲ ਕੀਤਾ।
ਸਮੇਂ ਦੇ ਨਾਲ, ਧੀਮੀ ਫੀਡਬੈਕ ਰੀਫੈਕਟਰਿੰਗ ਨੂੰ ਹੌਂਸਲਾ ਨਹੀਂ ਦਿੰਦਾ। ਲੋਕ ਉਹ ਕੋਡ ਨਾ ਛੇੜਦੇ ਜੋ ਉਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਹੀਂ ਸਮਝਦੇ ਕਿਉਂਕਿ ਵੈਲਿਡੇਸ਼ਨ ਦੀ ਲਾਗਤ ਬਹੁਤ ਵੱਡੀ ਹੈ।
ਟੀਮਾਂ ਤੇਜ਼ੀ ਨੂੰ ਇੱਕ ਲੋੜ ਦੇ ਤੌਰ 'ਤੇ ਰੱਖ ਸਕਦੀਆਂ ਹਨ, ਨਾ ਕਿ ਕੇਵਲ ਚੰਗੀ ਗੱਲ। ਇੱਕ ਸਧਾਰਨ ਨੀਤੀ ਮਦਦ ਕਰਦੀ ਹੈ:
ਜਦੋਂ ਤੁਸੀਂ ਬਜਟ ਤੈਅ ਕਰ ਲੈਂਦੇ ਹੋ, ਤੁਸੀਂ ਫਰੇਮਵਰਕ ਸੈਟਿੰਗਾਂ (ਪੈਰਲੈਲਾਈਜ਼ੇਸ਼ਨ, ਸ਼ਾਰਡਿੰਗ, ਚੁਣਿੰਦੇ ਰਨ) ਚੁਣ ਸਕਦੇ ਹੋ ਜੋ ਰਿਧਮ—ਅਤੇ ਸੰਸਕ੍ਰਿਤੀ—ਨੂੰ ਸਿਹਤਮੰਦ ਰੱਖਦੇ ਹਨ।
ਜਦੋਂ ਇੱਕ ਟੈਸਟ ਫੇਲ ਹੁੰਦਾ ਹੈ, ਟੀਮ ਤੁਰੰਤ ਦੋ ਸਵਾਲ ਪੁੱਛਦੀ ਹੈ: “ਕੀ ਟੁੱਟਿਆ?” ਅਤੇ “ਕੀ ਮੈਂ ਇਸ ਸਿਗਨਲ ਤੇ ਭਰੋਸਾ ਕਰ ਸਕਦਾ/ਸੱਕਦੀ ਹਾਂ?” ਤੁਹਾਡਾ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਇਹ ਨਿਰਣੇ ਤੇਜ਼ੀ ਨਾਲ ਪ੍ਰਭਾਵ ਪਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਜਵਾਬ ਸਕਿੰਟਾਂ ਵਿੱਚ ਮਿਲਦੇ ਹਨ ਜਾਂ ਲੰਮੇ ਸ਼ੋਰ ਭਰੇ ਲੌਗ ਵਿੱਚ ਖੋ ਜਾਦੇ ਹਨ।
ਸਪਸ਼ਟ ਫੇਲ੍ਹ ਆਉਟਪੁੱਟ ਖਾਮੋਸ਼ ਪ੍ਰੋਡਕਟਿਵਿਟੀ ਬਹੁਗੁਣਾ ਵਧਾਉਂਦਾ ਹੈ। ਇਕ ਡਿਫ਼ ਜੋ ਠੀਕ ਉਹੀ ਤਬਦੀਲੀ ਰੋਸ਼ਨ ਕਰਦਾ ਹੈ, ਇੱਕ ਸਟੈਕ ਟ੍ਰੇਸ ਜੋ ਤੁਹਾਡੇ ਕੋਡ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ (ਫਰੇਮਵਰਕ ਇੰਟਰਨਲ ਨਹੀਂ), ਅਤੇ ਇੱਕ ਸੁਨੇਹਾ ਜੋ ਅਸਲ ਇਨਪੁੱਟ ਦਿਖਾਊਂਦਾ ਹੈ—ਇਹ ਸਭ ਫੇਲ੍ਹ ਨੂੰ ਇੱਕ ਤੇਜ਼ ਫਿਕਸ ਵਿੱਚ ਬਦਲ ਦਿੰਦੇ ਹਨ।
ਉਲਟ, ਅਜਿਹੇ ਕ੍ਰਿਪਟਿਕ ਅਸਰਸ਼ਨ, ਘੱਟ ਸੰਦਰਭ, ਜਾਂ ਲੌਗ ਜੋ ਜ਼ਰੂਰੀ ਲਾਈਨ ਨੂੰ ਤਹਿਤ ਛੱਡਦੇ ਹਨ ਡੀਬੱਗਿੰਗ ਸਮਾਂ ਵਧਾਉਂਦੇ ਹਨ ਅਤੇ ਨਵੇਂ ਸਾਥੀਆਂ ਲਈ ਸਿੱਖਣ ਨੂੰ ਧੀਰ ਕਰ ਦਿੰਦੇ ਹਨ। ਸਮੇਂ ਦੇ ਨਾਲ, ਲੋਕ ਟੈਸਟ ਫੇਲੀਆਂ ਨੂੰ “ਕਿਸੇ ਹੋਰ ਦੀ ਸਮੱਸਿਆ” ਸਮਝਣਾ ਸ਼ੁਰੂ ਕਰ ਦਿੰਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹਨਾਂ ਨੂੰ ਸਮਝਣਾ ਮਹਿੰਗਾ ਪੈਂਦਾ ਹੈ।
ਜੋ ਫੇਲ੍ਹ ਇਹ ਦੱਸਦੇ ਹਨ कि ਕਿਉਂ ਕੁਝ ਗਲਤ ਹੈ, ਇੱਕ ਸ਼ਾਂਤ ਮਾਹੌਲ ਬਣਾਉਂਦੇ ਹਨ। “ਉਮੀਦ ਕੀਤੀ 200, ਮਿਲਿਆ 500” ਸ਼ੁਰੂਆਤ ਹੈ; “/checkout ਤੋਂ ਵਰਧਮਾਨ ਕਾਰਟ ਨਾਲ ਉਮੀਦ 200; 500 ਮਿਲਿਆ (NullReference in PaymentMapper)” ਕਾਰਵਾਈਯੋਗ ਹੈ।
ਜਦੋਂ ਸੁਨੇਹੇ ਵਿੱਚ ਇਰਾਦਾ ਅਤੇ ਮਹੱਤਵਪੂਰਨ ਸਥਿਤੀ (ਯੂਜ਼ਰ ਪ੍ਰਕਾਰ, ਫੀਚਰ ਫਲੈਗ, ਵਾਤਾਵਰਨ ਅਨੁਮਾਨ) ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ, ਸਾਥੀ ਜੋੜ ਕੇ ਫਿਕਸ ਕਰ ਸਕਦੇ ਹਨ ਨਾ ਕਿ ਕਿਸੇ ਦੀ ਗਲਤੀ 'ਤੇ ਤਰਕ ਕਰਨ।
ਇੱਕ ਵਪਾਰਕ ਨਿਯਮ: ਜੇ ਕੋਈ ਫੇਲ੍ਹ ਸੁਨੇਹਾ ਉਸ ਵਿਅਕਤੀ ਦੁਆਰਾ ਸਮਝਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਜਿਸਨੇ ਟੈਸਟ ਨਹੀਂ ਲਿਖਿਆ, ਤਾਂ ਇਹ ਵਿਚੋਲਈ ਰੁਕਾਵਟਾਂ, ਰਖਿਆਰੂਪ, ਅਤੇ ਹੌਲੀ ਰਿਵਿਊ ਪੈਦਾ ਕਰੇਗਾ।
ਫਰੇਮਵਰਕ ਆਮ ਤੌਰ 'ਤੇ ਪੈਟਰਨ ਉਤਸ਼ਾਹਿਤ ਕਰਦੇ ਹਨ—ਇਸਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਟੈਂਡਰਡ ਬਣਾਓ:
checkout_returns_200_for_valid_card) ਬਨਾਮ ਅਸਪਸ਼ਟ (ਜਿਵੇਂ testCheckout)।ਕੋਈ ਵੀ ਚੀਜ਼ ਭਰੋਸੇ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਕਿਸੇ ਹੋਰ ਨਾਲ ਜ਼ਿਆਦਾ ਨੁਕਸਾਨ ਪਹੁੰਚਾਉਂਦੀ ਨਹੀਂ ਜਿੰਨੀ ਕਿ “ਕਦੇ-ਕਦੇ” ਫੇਲ ਹੋਣ ਵਾਲੇ ਟੈਸਟ। ਫਲੇਕਨੈਸੀ ਟੀਮ ਨੂੰ ਲਾਲ ਬਿਲਡ ਨੂੰ ਅਣਦੇਖਾ ਕਰਨ, ਨੌਕਰੀ ਰੀ-ਰਨ ਕਰਨ, ਅਤੇ ਸ਼ੰਕ ਨਾਲ ਸ਼ਿਪ ਕਰਨ ਦੀ ਆਦਤ ਪਾ ਦਿੰਦਾ ਹੈ। ਜਦੋਂ ਇਹ ਆਦਤ ਬਣ ਜਾਂਦੀ ਹੈ, ਅਸਲੀ ਫੇਲ੍ਹ ਵੀ ਵਿਕਲਪਕ ਸਮਝੇ ਜਾਂਦੇ ਹਨ।
ਫਲੇਕੀ ਟੈਸਟ ਨੂੰ ਸੱਭਿਆਚਾਰਕ ਕਰਜ਼ ਸਮਝੋ: ਉਨ੍ਹਾਂ ਨੂੰ ਜਲਦੀ ਕਰਾਂਟਾਈਨ ਕਰੋ, ਖੁੱਲ੍ਹੇ ਤੌਰ 'ਤੇ ਟਰੈਕ ਕਰੋ, ਅਤੇ “ਠੀਕ ਕਰੋ ਜਾਂ ਹਟਾਓ” ਨੂੰ ਸਾਂਝਾ ਉਮੀਦ ਬਣਾਓ—ਕਿਉਂਕਿ ਭਰੋਸੇਯੋਗ ਸਿਗਨਲ ਭਰੋਸੇਯੋਗ ਸਹਿਯੋਗ ਦੀ ਬਨਿਆਦ ਹਨ।
ਨਵਾਂ ਇੰਜੀਨੀਅਰ ਤੁਹਾਡੀ ਟੀਮ ਦੀਆਂ ਮੁੱਲਾਂ ਨੂੰ ਪਹਿਲੀ ਗreeਨ ਬਿਲਡ ਤੋਂ ਤੇਜ਼ੀ ਨਾਲ ਸਿੱਖਦਾ ਹੈ, ਕਿਸੇ ਸਲਾਈਡ ਡੈੱਕ ਤੋਂ ਨਹੀਂ। ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਚੁਪਚਾਪ “ਅਸੀਂ ਇੱਥੇ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਾਂ” ਸਿਖਾਉਂਦਾ ਹੈ: ਟੈਸਟ ਕਿੱਥੇ ਰਹਿੰਦੇ ਹਨ, ਉਹਨਾਂ ਦਾ ਨਾਮ ਕਿਵੇਂ ਹੁੰਦਾ ਹੈ, ਫੇਲ੍ਹ ਕਿਵੇਂ ਪੜ੍ਹਨ, ਅਤੇ ਇੱਕ ਸਧਾਰਨ ਅਸਰਸ਼ਨ ਲਿਖਣ ਲਈ ਕਿੰਨੀ ਰਸਮੀਤਾ ਲੋੜੀਦੀ ਹੈ।
ਸਾਫ ਡਿਫ਼ਾਲਟ ਵਾਲੇ ਫਰੇਮਵਰਕ ਓਨਬੋਰਡਿੰਗ ਨੂੰ ਸਧਾਰਨ ਬਣਾਉਂਦੇ ਹਨ ਕਿਉਂਕਿ ਨਵੇਂ ਆਏ ਵਿਅਕਤੀਆਂ ਨੂੰ ਨਮੂਨੇ ਬਣਾਉਣ ਦੀ ਲੋੜ ਨਹੀਂ। ਜਦੋਂ ਰਿਵਾਜ ਅਸਪਸ਼ਟ ਹੁੰਦੇ ਹਨ—ਜਾਂ ਟੀਮ ਫਰੇਮਵਰਕ ਨੂੰ ਖੰਡਨ ਕਰ ਰਹੀ ਹੁੰਦੀ ਹੈ—ਨਵੇਂ ਹਾਇਰ ਪਹਿਲੇ ਹਫ਼ਤੇ ਵਿੱਚ “ਇਸ ਨੂੰ ਕਿੱਥੇ ਰੱਖਾਂ?” ਪੁੱਛਦੇ ਰਹਿੰਦੇ ਹਨ, ਇਸ ਦੀ ਥਾਂ ਉਤਪਾਦ ਸਿੱਖਣ।
ਛੋਟੇ ਮਾਪਰੇ ਪੈਟਰਨ ਜਿਹੜੇ ਸ਼ੁਰੂ ਵਿੱਚ ਮਿਆਰੀ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ:
ਓਨਬੋਰਡਿੰਗ ਨੂੰ ਕਾਂਕਰੀਟ ਬਣਾਓ ਇੱਕ ਸਟਾਰਟਰ ਟੈmplੇਟ ਰਿਪੋ (ਜਾਂ ਮੋਨੋਰੇਪੋ ਵਿੱਚ ਇੱਕ ਫੋਲਡਰ) ਦੇ ਨਾਲ ਜੋ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ:
test, test:watch, test:ci।ਨਵੇਂ ਜੁੜਨ ਵਾਲੇ ਲਈ ਪਹਿਲਾ-ਟੈਸਟ ਚੈਕਲਿਸਟ:
ਉੱਚ-ਗੁਣਵੱਤਾ ਵਾਲੇ ਫਰੇਮਵਰਕ ਡੌਕਸ ਅਤੇ ਕਮਿਊਨিটি ਉਦਾਹਰਣ ਟ੍ਰਾਇਬਲ ਨੌਲਿਜ਼ ਨੂੰ ਘਟਾਉਂਦੇ ਹਨ। ਉਹਨਾਂ ਫਰੇਮਵਰਕਾਂ ਨੂੰ ਪਸੰਦ ਕਰੋ ਜਿਨ੍ਹਾਂ ਕੋਲ ਸਪਸ਼ਟ ਫੇਲ੍ਹ ਸੁਨੇਹੇ, ਰੱਖ-ਰਖਾਅ ਵਾਲੇ ਗਾਈਡ, ਅਤੇ ਇੱਕ ਮਜ਼ਬੂਤ ਇਕੋਸਿਸਟਮ ਹੈ—ਫਿਰ ਸਾਰੇ-ਵਧੀਆ "ਕਿਵੇਂ-ਕਰੋ" ਪੰਨੇ ਨੂੰ ਆਪਣੀ ਅੰਦਰੂਨੀ ਡੌਕਸ (/engineering/testing-standards) ਤੋਂ ਸੱਧਾ ਜੋੜ ਦਿਓ ਤਾਂ ਨਵੇਂ ਆਏ ਨੂੰ ਖੋਜਣਾ ਨਾ ਪਵੇ।
ਕੋਡ ਰਿਵਿਊ ਸਿਰਫ਼ ਸਟਾਈਲ ਅਤੇ ਸਹੀਪਣ ਬਾਰੇ ਨਹੀਂ—ਇਹ ਓਥੇ ਹੈ ਜਿੱਥੇ ਟੀਮ ਨਿਰਧਾਰਤ ਕਰਦੀ ਹੈ ਕਿ “ਚੰਗਾ” ਕੀ ਮਤਲਬ ਹੈ। ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਚੁਪਚਾਪ ਉਸ ਗੱਲਬਾਤ ਨੂੰ ਆਕਾਰ ਦਿੰਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਟੈਸਟ ਜੋੜਨਾ, ਚਲਾਉਣਾ, ਅਤੇ ਸਮਝਣਾ ਕਿੰਨਾ ਆਸਾਨ ਹੈ।
ਜਦੋਂ ਰਿਵਿਊਅਰ ਇੱਕ ਟੈਸਟ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਪੜ੍ਹ ਕੇ ਉਸ 'ਤੇ ਭਰੋਸਾ ਕਰ ਸਕਦੇ ਹਨ, ਤਾਂ ਰਿਵਿਊ ਟਿੱਪਣੀਆਂ debating ਤੋਂ ਬਦਲ ਕੇ ਸਬੂਤ-ਅਧਾਰਿਤ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। ਚੰਗੇ ਟੈਸਟ ਸਾਂਝੀ ਭਾਸ਼ਾ ਬਣ ਜਾਂਦੇ ਹਨ: ਉਹ ਐਡਜ ਕੇਸ ਦਸਤਾਵੇਜ਼ ਕਰਦੇ ਹਨ, ਮਨਸੂਖ ਨੂੰ ਸਪਸ਼ਟ ਕਰਦੇ ਹਨ, ਅਤੇ ਜੋਖਮ ਨੂੰ ਵਿਖਾਉਂਦੇ ਹਨ।
ਸਮੇਂ ਦੇ ਨਾਲ, ਟੀਮ ਟੈਸਟਾਂ ਨੂੰ ਬਦਲਾਅ ਦਾ ਹਿੱਸਾ ਮੰਨਣ ਲੱਗਦੀ ਹੈ—ਨਾਕਿ ਇਕ ਵਿਕਲਪਿਕ ਜੁੜਤਾਰ। ਇੱਕ ਪੁਲ-ਰਿਕਵੇਸਟ ਬਿਨਾਂ ਟੈਸਟਾਂ ਦੇ ਹੋਣਾ ਹੋਰ ਵੱਧ ਵਾਰ ਬੈਚ-ਬੈਚ ਸਵਾਲ ਖੜੇ ਕਰਦਾ ਹੈ ਅਤੇ ਮਨਜ਼ੂਰੀ ਪ੍ਰਕਿਰਿਆ ਲੰਬੀ ਕਰਦਾ ਹੈ।
ਜੇ ਫਰੇਮਵਰਕ ਸੈਟਅੱਪ ਨੂੰ ਦਰਦਨਾਕ ਬਣਾ ਦਿੰਦਾ—ਧੀਮੀ ਰਨ, ਉਲਝਣ ਭਰੇ ਮੌਕ, ਨਾਜ਼ੁਕ ਫਿਕਸਚਰ—ਤਾਂ ਰਿਵਿਊਅਰ ਟੈਸਟ ਮੰਗਣ ਵਿੱਚ ਹਿਚਕਿਚਾਉਂਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹ ਜਾਣਦੇ ਹਨ ਇਹ PR ਨੂੰ ਰੁਕਾਵੇਗਾ। ਜੇ ਇਹ ਤੇਜ਼ ਅਤੇ ਸੌਖਾ ਹੈ, ਤਾਂ “ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਟੈਸਟ ਜੋੜੋ” ਇੱਕ ਆਮ, ਘੱਟ ਰੁਕਾਵਟ ਵਾਲੀ ਟਿੱਪਣੀ ਬਣ ਜਾਂਦੀ ਹੈ।
ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਡਿਵੈਲਪਰ ਅਨੁਭਵ ਸੰਸਕ੍ਰਿਤੀਕ ਹੁੰਦਾ ਹੈ: ਜੋ ਚੀਜ਼ ਸਹੀ ਕਰਨ ਲਈ ਆਸਾਨ ਹੋਵੇ, ਟੀਮ ਉਹਦੇ ਉਮੀਦ ਵਜੋਂ ਵੱਧ ਲਗਾਤਾਰ ਮੰਗਦੀ ਹੈ।
ਸਾਦਾ ਨਿਯਮ ਰਿਵਿਊਜ਼ ਨੂੰ ਕੇਂਦ੍ਰਿਤ ਰੱਖਦੇ ਹਨ:
ਸਿਹਤਮੰਦ ਟੀਮਾਂ ਟੈਸਟਾਂ ਨੂੰ ਉਤਪਾਦ ਕੋਡ ਵਾਂਗ ਹੀ ਮੰਨਦੇ ਹਨ: ਹਰ ਕੋਈ ਉਹ ਲਿਖਦਾ, ਹਰ ਕੋਈ ਉਹ ਠੀਕ ਕਰਦਾ, ਅਤੇ ਫੇਲ੍ਹਟ ਟੈਸਟ ਮਰਜ ਨੂੰ ਰੋਕਦੇ ਹਨ ਚਾਹੇ ਕੌਣ ਵੀ “ਮਾਲਕ” ਹੋਵੇ। ਇਹ ਸਾਂਝੀ ਜਵਾਬਦੇਹੀ ਹੈ ਜੋ ਟੈਸਟ ਆਟੋਮੇਸ਼ਨ ਨੂੰ ਰੋਜ਼ਾਨਾ ਆਦਤ ਬਣਾਉਂਦੀ ਹੈ, ਨਾ ਕਿ ਕੇਵਲ QA ਦੀ ਚੈਕਪੌਇੰਟ।
ਜਦੋਂ ਇੱਕ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਤੁਹਾਡੇ CI ਪਾਈਪਲਾਈਨ ਨਾਲ ਜੁੜ ਜਾਂਦਾ ਹੈ, ਟੈਸਟ "ਮੇਰਾ ਲੋਕਲ ਰਾਏ" ਨਹੀਂ ਰਹਿੰਦੇ—ਉਹ ਟੀਮ ਦਾ ਸਾਂਝਾ ਸਮਝੌਤਾ ਬਣ ਜਾਂਦੇ ਹਨ। ਹਰ ਪੁਲ-ਰਿਕਵੇਸਟ ਤੇ ਉਹੀ ਚੈੱਕ ਇੱਕੋ ਮਾਹੌਲ ਵਿੱਚ ਚਲਦੇ ਹਨ, ਅਤੇ ਨਤੀਜਾ ਕੌਮਾਂ ਤੱਕ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਜਵਾਬਦੇਹੀ ਨੂੰ ਬਦਲ ਦਿੰਦੀ ਹੈ: ਫੇਲ੍ਹ ਸਥਾਨਕ ਪ੍ਰੇਸ਼ਾਨੀਆਂ ਨਹੀਂ—ਉਹ ਰੋਕ ਹਨ ਜਿਨ੍ਹਾਂ 'ਤੇ ਟੀਮ ਸਾਰੀਆਂ ਮਹਿਸੂਸ ਕਰਦੀ ਹੈ।
ਜ਼ਿਆਦਾਤਰ ਟੀਮ CI ਗੇਟਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ ਤਾਂ ਕਿ "ਕੀ ਹੋਇਆ" ਦਾ ਮਤਲਬ ਤੈਅ ਕੀਤਾ ਜਾ ਸਕੇ।
ਇੱਕ ਫਰੇਮਵਰਕ ਜੋ CI ਨਾਲ ਸਾਫ਼ ਤਰੀਕੇ ਨਾਲ ਇਕੱਠਾ ਹੁੰਦਾ ਹੈ, ਜ਼ਰੂਰੀ ਚੈੱਕ ਬਥਾਂ ਕਰਨ ਨੂੰ ਆਸਾਨ ਬਣਾਂਦਾ ਹੈ (ਉਦਾਹਰਨ ਵਜੋਂ: ਯੂਨਿਟ ਟੈਸਟ, ਲਿੰਟਿੰਗ, ਅਤੇ ਇੱਕ ਨਿਯੂਨਤਮ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਸੂਟ)। ਕੁੱਲ ਲਾਈਨ-ਗੇਟ ਸ਼ਾਮਲ ਕਰੋ—ਜਿਵੇਂ ਕੋਵਰੇਜ ਜਾਂ ਸਟੈਟਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਦਰਜਾ—ਤਾਂ ਤੁਸੀਂ ਵਰਕਫਲੋ ਵਿੱਚ ਮੱਲਾਂ ਐਨਕੋਡ ਕਰ ਰਹੇ ਹੋ: “ਅਸੀਂ ਉਹ ਕੋਡ ਮਰਜ ਨਹੀਂ ਕਰਦੇ ਜੋ ਭਰੋਸਾ ਘਟਾਉਂਦਾ ਹੈ।”
ਕਵਰੇਜ ਨਾਲ ਸਾਵਧਾਨ ਰਹੋ, ਇਹ ਇੱਕ ਰੁਝਾਨ ਜਾਂ ਗਾਰਡਰੇਲ ਵਜੋਂ ਵਰਤੋ, ਸਕੋਰਬੋਰਡ ਵਜੋਂ ਨਹੀਂ।
ਫਲੇਕੀ ਟੈਸਟ ਸਿਰਫ ਮਿੰਟਾਂ ਨੂੰ ਖਰਚ ਨਹੀਂ ਕਰਦੇ; ਉਹ ਪੂਰੇ ਪਾਈਪਲਾਈਨ 'ਤੇ ਭਰੋਸਾ ਘਟਾਉਂਦੇ ਹਨ। ਜਦੋਂ ਲੋਕ ਸਿੱਖ ਲੈਂਦੇ ਹਨ ਕਿ ਲਾਲ ਬਿਲਡ "ਅਕਸਰ ਖ਼ੁਦ ਹੀ ਠੀਕ ਹੋ ਜਾਂਦੇ ਹਨ", ਤਾਂ ਉਹ ਫਿੰਗਰ-ਕ੍ਰਾਸਡ ਹੋ ਕੇ ਮਰਜ ਕਰਨ, ਰਿਲੀਜ਼ਾਂ ਨੂੰ ਰੋਕਣ ਜਾਂ ਗੇਟ ਓਵਰਰਾਈਡ ਕਰਨ ਲੱਗਦੇ ਹਨ। ਸੰਘਰਸ਼ ਦੌਰਾਨ, ਫਲੇਕੀ ਸੂਟ ਸੂਚਨਾ ਗੜਬੜ ਕਰ ਦਿੰਦੇ ਹਨ: ਟੀਮ ਤੇਜ਼ੀ ਨਾਲ ਨਹੀਂ ਦੱਸ ਸਕਦੀ ਕਿ ਕੋਈ ਬਦਲਾਵ ਸਹੀ ਤੌਰ ਤੇ ਅੱਗੇ ਵਧਣ ਯੋਗ ਹੈ ਜਾਂ ਰੋਲਬੈਕ ਦੀ ਲੋੜ ਹੈ।
ਜੇ ਤੁਹਾਡਾ ਫਰੇਮਵਰਕ ਫਲੇਕਨੈਸੀ ਦੀ ਨਿਰਣਾਇਕਤਾ ਨੂੰ ਮੁਸ਼ਕਲ ਦਿਵਾਂਦਾ ਹੈ (ਖराब ਰਿਪੋਰਟਿੰਗ, ਕੰਮ-ਨਕਲ-ਰਿੱਟ੍ਰਾਈਜ਼, ਅਸਪਸ਼ਟ ਲੋਗ), ਤਾਂ ਇਹ ਚੁਪਚਾਪ ਜੋਖਮ ਨੂੰ ਆਮ ਕਰ ਦਿੰਦਾ ਹੈ।
ਇੱਕ ਪ੍ਰਾਇਕਟਿਕ ਪੈਟਰਨ ਇਹ ਹੈ ਕਿ pipeline ਨੀਅਤ ਵਾਰ ਵੰਡੋ:
ਇਸ ਨਾਲ ਫੀਡਬੈਕ ਤਿੱਖਾ ਰਹਿੰਦਾ ਹੈ ਬਿਨਾਂ ਗਹਿਰਾਈ ਨੂੰ ਵਡਾਉਣ ਦੇ। ਸਭ ਤੋਂ ਵਧੀਆ ਫਰੇਮਵਰਕ-ਤੋਂ-CI ਇੰਟੇਗਰੇਸ਼ਨ ਉਹ ਹੈ ਜੋ “ਸਹੀ ਕੰਮ” ਕਰਨ ਨੂੰ ਸਭ ਤੋਂ ਆਸਾਨ ਬਣਾਦੇ।
"ਟੈਸਟ ਪਾਈਰਮਿਡ" ਸਿਰਫ਼ ਇੱਕ ਤਰੀਕਾ ਹੈ ਤੇਜ਼, ਕੇਂਦਰਿਤ ਟੈਸਟਾਂ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਨ ਦਾ ਅਤੇ ਥੋੜੇ ਅਜ਼ੀਮਤੀ, ਧੀਮੇ ਟੈਸਟਾਂ ਦੇ ਨਾਲ। ਫਰੇਮਵਰਕ ਚੁਪਚਾਪ ਉਸ ਸਲੂਟ ਨੂੰ ਧਕੇਲਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹ ਕੁਝ ਟੈਸਟ ਕਿਸਮਾਂ ਨੂੰ ਆਸਾਨ ਅਤੇ ਕੁਝ ਨੂੰ ਔਖਾ ਬਣਾਉਂਦੇ ਹਨ।
ਯੂਨਿਟ ਟੈਸਟ ਇੱਕ ਛੋਟੇ ਕੋਡ ਹਿੱਸੇ (ਜਿਵੇਂ ਇਕ ਫੰਕਸ਼ਨ) ਨੂੰ ਅਲੱਗ ਤੌਰ ਤੇ ਜਾਂਚਦਾ ਹੈ। ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਸਭ ਤੋਂ ਤੇਜ਼ ਹੁੰਦੇ ਹਨ ਅਤੇ ਅਕਸਰ ਚਲਾਉਣ ਲਈ ਆਸਾਨ।
ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਟੈਸਟ ਕਈ ਹਿੱਸਿਆਂ ਨੂੰ ਇਕੱਠੇ ਕੰਮ ਕਰਦੇ ਵੇਖਦੇ ਹਨ (ਜਿਵੇਂ ਤੁਹਾਡੀ API + ਡਾਟਾਬੇਸ, ਜਾਂ ਇੱਕ ਸਰਵਿਸ + ਕਿਊ)। ਇਹ ਯੂਨਿਟ ਟੈਸਟਾਂ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਧੀਮੇ ਹੁੰਦੇ ਹਨ ਪਰ "ਵਾਇਰਿੰਗ" ਸਮੱਸਿਆਵਾਂ ਫੜ ਲੈਂਦੇ ਹਨ।
End-to-end (E2E) ਟੈਸਟ ਸਿਸਟਮ ਰਾਹੀਂ ਅਸਲੀ ਯੂਜ਼ਰ ਫਲੋਜ਼ ਨੂੰ ਨਕਲ ਕਰਦੇ ਹਨ (ਅਕਸਰ ਬ੍ਰਾਉਜ਼ਰ ਰਾਹੀਂ)। ਇਹ ਉੱਚ ਭਰੋਸਾ ਦਿੰਦੇ ਹਨ ਪਰ ਸਭ ਤੋਂ ਧੀਮੇ ਅਤੇ ਨਾਜ਼ੁਕ ਹੁੰਦੇ ਹਨ।
ਜੇ ਤੁਹਾਡਾ ਚੁਨਾ ਹੋਇਆ ਫਰੇਮਵਰਕ E2E ਟੈਸਟਾਂ ਨੂੰ ਮਨਪਸੰਦ ਬਣਾਂਦਾ ਹੈ—ਸ਼ਾਨਦਾਰ ਬ੍ਰਾਉਜ਼ਰ ਟੂਲਿੰਗ, ਆਟੋ-ਵੇਟਸ, ਵਿਜ਼ੂਅਲ ਰਨਰ, ਸਧਾਰਨ ਸੈਟਅੱਪ—ਤਾਂ ਤੁਸੀਂ ਬਹੁਤ ਸਾਰੀਆਂ E2E ਟੈਸਟਾਂ ਲਿਖਣ ਵੱਲ ਜਾ ਸਕਦੇ ਹੋ ਜਿਹੜੀਆਂ ਅਸਲ ਵਿੱਚ ਹੇਠਾਂ ਤੇਜ਼ੀ ਨਾਲ ਜਾਂਚ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹੁੰਦੀਆਂ। ਨਤੀਜਾ ਇੱਕ ਧੀਮਾ ਸੂਟ ਹੈ ਜਿਸਨੂੰ ਟੀਮ ਚਲਾਉਣ ਤੋਂ ਪਰਹੇਜ਼ ਕਰਦੀ ਹੈ, ਤੇ ਇੱਕ “ਟੈਸਟ ਫਲੇਕੀ ਹੈ” ਸੰਸਕ੍ਰਿਤੀ ਬਣ ਜਾਂਦੀ ਹੈ।
ਦੂਜੇ ਪਾਸੇ, ਇੱਕ ਯੂਨਿਟ-ਟੈਸਟ ਫਰੇਮਵਰਕ ਜਿਸ ਵਿੱਚ ਭਾਰੀ ਮੌਕਿੰਗ ਯੂਟਿਲਿਟੀਜ਼ ਹਨ, ਟੀਮ ਨੂੰ "ਸਭ ਕੁਝ ਮੌਕ ਕਰੋ" ਵੱਲ ਧਕੇਲ ਸਕਦਾ ਹੈ, ਜਿੱਥੇ ਟੈਸਟ ਗ੍ਰੀਨ ਹੁੰਦੇ ਹਨ ਪਰ ਅਸਲ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਟੁੱਟ ਸਕਦੀ ਹੈ।
ਜ਼ਿਆਦातर ਟੀਮਾਂ ਲਈ ਪ੍ਰਾਇਕਟਿਕ ਸ਼ੁਰੂਆਤੀ ਨਿਯਮ:
ਜੋਖਮ ਦੇ ਆਧਾਰ 'ਤੇ ਅਨੁਕੂਲ ਕਰੋ, ਪਰ E2E ਨੂੰ ਇਕ "ਚੁਣਿੰਦਾ ਸੈੱਟ" ਸਮਝੋ ਨ ਕਿ ਡਿਫਾਲਟ।
ਟੈਸਟ ਆਟੋਮੇਸ਼ਨ ਦੀ ਰੱਖ-ਰਖਾਅਯੋਗਤਾ ਤਿੰਨ ਚੀਜ਼ਾਂ ਬਾਰੇ ਹੈ: ਪੜ੍ਹਨੀਯੋਗਤਾ (ਕੋਈ ਭੀ ਸਮਝ ਸਕੇ ਕਿ ਟੈਸਟ ਕੀ ਸਾਬਿਤ ਕਰ ਰਿਹਾ ਹੈ), ਸਥਿਰਤਾ (ਟੈਸਟ ਅਸਲ ਕਾਰਨਾਂ ਕਰਕੇ ਫੇਲ ਹੋਵੇ, ਬੇਤਰਤੀਬੀ ਕਾਰਨਾਂ ਕਰਕੇ ਨਹੀਂ), ਅਤੇ ਬਦਲਣ ਦੀ ਸੌਖੀ (ਛੋਟੇ ਉਤਪਾਦੀ ਬਦਲਾਅ ਸੂਟ ਨੂੰ ਅੱਧਾ ਨਹੀਂ ਦੇਣੇ ਚਾਹੀਦੇ)।
ਜਦੋਂ ਕੋਈ ਫਰੇਮਵਰਕ ਇਹ ਗੁਣ ਆਸਾਨ ਕਰਦਾ ਹੈ, ਟੀਮਾਂ ਐਸੀਆਂ ਆਦਤਾਂ ਬਣਾਉਂਦੀਆਂ ਹਨ ਜੋ ਕੋਡ ਗੁਣਵੱਤਾ ਦੀ ਰੱਖਿਆ ਕਰਦੀਆਂ ਹਨ ਬਿਨਾਂ ਦਿਵਸ-ਕੁੱਟ ਹੁੰਦੇ।
ਚੰਗੇ ਫਰੇਮਵਰਕ ਟੀਮਾਂ ਨੂੰ ਖੁਦ ਰੀਯੂਜ਼ ਕਰਨ ਵੱਲ ਧਕਾਉਂਦੇ ਹਨ ਬਿਨਾਂ ਮਨਸੂਖਤਾ ਲੁਕਾਉਂਦੇ ਹੋਏ। ਕੁਝ ਪੈਟਰਨ ਜੋ ਮੁੜ-ਵਰਤੋਂ ਘਟਾਉਂਦੇ ਹਨ:
ਸੰਸਕ੍ਰਿਤਿਕ ਪ੍ਰਭਾਵ ਸੁਖਾ ਅਤੇ ਤਾਕਤਵਰ ਹੈ: ਟੈਸਟ ਦਸਤਾਵੇਜ਼ ਵਾਂਗ ਪੜ੍ਹਦੇ ਹਨ, ਅਤੇ ਨਵੀਂ ਤਬਦੀਲੀ ਸੁਰੱਖਿਅਤ ਮਹਿਸੂਸ ਹੁੰਦੀ ਹੈ ਕਿਉਂਕਿ ਇੱਕ ਫਿਕਸਚਰ ਜਾਂ ਫੈਕਟਰੀ ਨੂੰ ਅਪਡੇਟ ਕਰਨਾ ਕਈ ਟੈਸਟਾਂ ਨੂੰ ਸਮੇਂ ਨਾਲ ਨਿਰੰਤਰ ਅਪਡੇਟ ਕਰ ਦਿੰਦਾ ਹੈ।
ਕੁੱਝ ਅਮਲ ਟੀਮ ਨੂੰ ਆਹਿਸਤਗੀ ਨਾਲ ਤੰਗ ਕਰ ਦਿੰਦੇ ਹਨ:
ਸਥਿਰ ਇੰਜੀਨੀਅਰਿੰਗ ਟੈਸਟ ਰੀਫੈਕਟਰਾਂ ਨੂੰ ਉਤਪਾਦ ਰੀਫੈਕਟਰਾਂ ਵਾਂਗ ਹੀ ਗੰਭੀਰਤਾ ਨਾਲ ਮੰਨਦੀ ਹੈ: ਯੋਜਿਤ, ਸਮੀਖਿਆ ਅਤੇ ਲਗਾਤਾਰ—"ਬਾਅਦ ਵਿੱਚ ਸਾਫ਼ ਕਰਾਂਗੇ" ਨਹੀਂ। ਇਹ ਉਮੀਦ ਤੈਅ ਕਰੋ ਕਿ ਰੱਖ-ਰਖਾਅਯੋਗ ਟੈਸਟ ਬਿਹਤਰ ਬਣਾਉਣਾ ਫੀਚਰ ਦੀ ਡਿਲਿਵਰੀ ਦਾ ਹਿੱਸਾ ਹੈ, ਅਤੇ ਤੁਹਾਡਾ CI ਸੂਟ ਇੱਕ ਭਰੋਸੇਯੋਗ ਸਿਗਨਲ ਬਣ ਜਾਵੇਗਾ ਨਾ ਕਿ ਪਿਛੋਕੜ ਸ਼ੋਰ।
ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਸਿਰਫ਼ ਚੈੱਕ ਨਹੀਂ ਚਲਾਉਂਦੇ—ਉਹ ਕੁਝ ਸਿਗਨਲਾਂ ਨੂੰ ਦੇਖਣਾ ਆਸਾਨ ਬਣਾਉਂਦੇ ਹਨ ਅਤੇ ਕੁਝ ਹੋਰਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਨਾ ਸੌਖਾ। ਜਿਵੇਂ ਹੀ ਇਹ ਸਿਗਨਲ ਪੁਲ-ਰਿਕਵੇਸਟ, CI ਸੰਖੇਪ, ਅਤੇ ਟੀਮ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਦਿੱਖਦੇ ਹਨ, ਉਹ ਆਹਿਸਤੈ ਉਹ ਪ੍ਰਭਾਰ ਬਣ ਜਾਂਦੇ ਹਨ। ਇਹ ਮਦਦਗਾਰ ਹੁੰਦਾ ਹੈ ਜੇ ਮੈਟ੍ਰਿਕਸ ਅਸਲ ਗੁਣਵੱਤਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ, ਅਤੇ ਨੁਕਸਾਨਦਾਇਕ ਜਦੋਂ ਉਹ ਗਲਤ ਵਿਹਵਾਰ ਨੂੰ ਇਨਾਮ ਦਿੰਦੇ ਹਨ।
ਇੱਕ ਨੰਬਰ ਫੈਸਲੇ ਸੌਖੇ ਬਣਾਉਂਦਾ ਹੈ ("ਟੈਸਟ ਗ੍ਰੀਨ ਹਨ"), ਪਰ ਇਹ ਖਰਾਬ ਪ੍ਰੇਰਨਾ ਵੀ ਜਨਮ ਦੇ ਸਕਦਾ ਹੈ ("ਧੀਮੇ ਸੂਟ ਸਕਿਪ ਕਰਕੇ ਤੇਜ਼ੀ ਨਾਲ ਸ਼ਿਪ ਕਰੋ" ਜਾਂ "ਫਰਮਾ-ਨੁਕਸਾਨ ਯੂਨਿਟ ਟੈਸਟਾਂ ਨਾਲ ਕੋਵਰੇਜ ਵਧਾਓ ਜੋ ਕੁਝ ਵੀ ਨਹੀਂ ਜਾਂਚਦੇ")। ਵਧੀਆ ਮੈਟ੍ਰਿਕਸ ਸਿਹਤ ਨੂੰ ਵਰਣਨ ਕਰਦੇ ਹਨ; ਬੁਰੇ ਮੈਟ੍ਰਿਕਸ ਟਾਰਗੇਟ ਬਣ ਜਾਂਦੇ ਹਨ।
ਹਲਕੀ-ਫੁਲਕੀ ਸੈੱਟ ਆਮ ਤੌਰ 'ਤੇ ਬਹੁਤ ਵਧੀਆ ਹੁੰਦੀ ਹੈ:
ਕੋਵਰੇਜ ਦਿਖਾ ਸਕਦਾ ਹੈ ਕਿੱਥੇ ਇੱਕੋ ਵੀ ਟੈਸਟ ਨਹੀਂ ਹਨ, ਜੋ ਕੀ ਕੀਮਤੀ ਹੈ। ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿ ਟੈਸਟ ਮੈਨਿੰਗਫੁਲ ਹਨ ਜਾਂ ਮਹੱਤਵਪੂਰਨ ਵਿਹਾਰ ਸੁਰੱਖਿਅਤ ਹਨ। ਇੱਕ ਉੱਚ ਪ੍ਰਤੀਸ਼ਤ ਵੀ ਐਜ ਕੇਸ, ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਸੀਮਾਵਾਂ, ਅਤੇ ਅਸਲੀ ਯੂਜ਼ਰ ਫਲੋਜ਼ ਨੂੰ ਛੱਡ ਸਕਦੀ ਹੈ।
ਕੋਵਰੇਜ ਨੂੰ ਬਲਾਈਂਡ ਸਪਾਟ ਵਾਂਗ ਦੇਖੋ, ਫਿਰ ਸਮੀਖਿਆ ਕਰੋ ਕਿ ਟੈਸਟ ਨਤੀਜਿਆਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਨ—ਨ ਕਿ ਕਿਸੇ ਇੰਪਲਿਮੈਂਟੇਸ਼ਨ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ।
ਡੈਸ਼ਬੋਰਡ ਨੂੰ ਛੋਟਾ ਅਤੇ ਦਿਖਣਯੋਗ ਰੱਖੋ (CI ਸੰਖੇਪ + ਇੱਕ ਹਫਤਾਵਾਰ ਰੁਝਾਨ)। ਸਪਸ਼ਟ ਮਾਲਕੀ ਨਿਰਧਾਰਤ ਕਰੋ: ਘੁੰਮਣ ਵਾਲਾ "ਟੈਸਟ ਸਿਹਤ" ਸਟੀਵਰਡ ਜਾਂ ਖੇਤਰ/ਟੀਮ ਵੱਲੋਂ ਮਾਲਕੀ। ਮਕਸਦ ਤੇਜ਼ ਫੈਸਲੇ ਲੈਣਾ ਹੈ: ਫਲੇਕਨੈਸੀ ਠੀਕ ਕਰੋ, ਸੂਟ ਤੇਜ਼ ਕਰੋ, ਅਤੇ ਟੁੱਟੇ ਟੈਸਟਾਂ ਨੂੰ ਆਮ ਬਣਨ ਨਾਲ ਰੋਕੋ।
ਇੱਕ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਸਿਰਫ ਇੱਕ ਤਕਨੀਕੀ ਚੋਣ ਨਹੀਂ—ਇਹ ਇੱਕ ਉਮੀਦਾਂ ਦਾ ਨਿਰਧਾਰਕ ਹੈ ਕਿ ਲੋਕ ਕਿਵੇਂ ਲਿਖਦੇ, ਰਿਵਿਊ ਕਰਦੇ, ਅਤੇ ਕੋਡ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹਨ। “ਸਾਰਥਕ” ਫਰੇਮਵਰਕ ਉਹ ਹੈ ਜੋ ਤੁਹਾਡੀ ਟੀਮ ਵਾਸਤੇ ਲਗਾਤਾਰ, ਹਕੀਕਤੀ ਡੇਡਲਾਈਨਾਂ ਹੇਠਾਂ, ਘੱਟ friction ਨਾਲ ਵਰਤੀ ਜਾ ਸਕੇ।
ਫੀਚਰ ਲਿਸਟ ਤੋਂ ਅੱਗੇ ਦੇਖੋ ਅਤੇ ਫਿੱਟ 'ਤੇ ਧਿਆਨ ਦਿਓ:
ਇਹ ਕਾਰਕ ਅਕਸਰ ਨਿਰਧਾਰਕ ਹੁੰਦੇ ਹਨ ਕਿ ਚੋਣ ਲੰਬੇ ਸਮੇਂ ਲਈ ਕਾਇਮ ਰਹੇਗੀ:
ਇੱਕ ਪ੍ਰਤੀਨਿਧੀ ਸਰਵਿਸ ਜਾਂ ਮੌਡੀਊਲ ਚੁਣੋ ਅਤੇ 2–3 ਵਿਕਲਪਾਂ ਦੀ ਤੁਲਨਾ ਇੱਕ ਹਫ਼ਤਾ ਜਾਂ ਦੋ ਲਈ ਕਰੋ। ਮਾਪੋ:
ਚੈੱਕਲਿਸਟ: ਤੇਜ਼ ਲੋਕਲ ਰਨ, ਸਪਸ਼ਟ ਫੇਲ੍ਹ ਆਉਟਪੁੱਟ, ਸਥਿਰ CI ਇੰਟੇਗਰੇਸ਼ਨ, ਵਧੀਆ ਮੌਕਿੰਗ/ਫਿਕਸਚਰ, ਪੈਰਲੈਲਾਈਜ਼ੇਸ਼ਨ ਸਹਾਇਤਾ, ਸਰਗਰਮ ਰੱਖ-ਰਖਾਅ, ਅਤੇ ਟੀਮ ਦੀ ਚਾਹ।
ਮਾਈਗਰੇਸ਼ਨ ਰੂਪਰੇਖਾ: ਨਵੇਂ ਕੋਡ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ, ਪੁਰਾਣੇ ਟੈਸਟ CI ਵਿੱਚ ਚਲਾਉਂਦੇ ਰੱਖੋ, ਸ਼ੇਅਰਡ ਹੈਲਪਰ/ਅਡਾਪਟਰ ਜੋੜੋ, ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਬਦਲਦੀਆਂ ਖੇਤਰਾਂ ਨੂੰ ਪਹਿਲਾਂ ਮਾਈਗਰੇਟ ਕਰੋ, ਅਤੇ ਇੱਕ ਤਾਰੀਖ ਤੈਅ ਕਰੋ ਜਦ ਪੁਰਾਣਾ ਫਰੇਮਵਰਕ read-only ਹੋ ਜਾਵੇ।
ਨਵੇਂ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਨੂੰ ਗ੍ਰਹਿਣ ਕਰਨਾ ਇੱਕ ਟੂਲ-ਸਵੈਪ ਤੋਂ ਵੱਧ ਹੈ—ਇਹ ਸਾਂਝੇ ਉਮੀਦਾਂ ਤੈਅ ਕਰਨ ਬਾਰੇ ਹੈ। ਮਕਸਦ ਇਹ ਹੈ ਕਿ “ਸਹੀ ਕੰਮ” ਸੌਖਾ, ਡਿਫ਼ਾਲਟ ਕੰਮ ਬਣ ਜਾਵੇ।
ਇੱਕ ਹਲਕੀ-ਫੁਲਕੀ ਸਟੈਂਡਰਡ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ ਜੋ ਇੱਕ ਪੰਨੇ 'ਤੇ ਫਿੱਟ ਹੋਵੇ: ਨਾਮਕਰਨ ਨਿਯਮ, ਟੈਸਟਾਂ ਦੀ ਬਣਤਰ, ਕਦੋਂ ਮੌਕ ਕਰਨਾ, ਅਤੇ ਤੁਹਾਡੀ ਟੀਮ ਲਈ "ਚੰਗੀ ਕੋਵਰੇਜ" ਕੀ ਮਤਲਬ ਹੈ।
ਟੈmplੇਟ ਜੋ ਕਿਸੇ ਨੂੰ ਸਿਫ਼ਤ ਤੋਂ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਾਉਂਦੇ ਜੋੜੋ: ਨਮੂਨਾ ਟੈਸਟ ਫਾਇਲ, ਕਾਮਨ ਫਿਕਸਚਰਾਂ ਲਈ ਹੈਲਪਰ, ਅਤੇ CI ਜੌਬ ਸਨਿੱਪੇਟ। ਫਿਰ ਛੋਟੇ ਟਰੇਨਿੰਗ ਸੈਸ਼ਨ (30–45 ਮਿੰਟ) ਚਲਾਓ ਜੋ ਤੁਹਾਡੀ ਟੀਮ ਇਸ ਨੂੰ ਕਿਵੇਂ ਵਰਤੇਗੀ ਤੇ ਕੇਂਦਰਿਤ ਹੋਣ, ਨਾ ਕਿ ਹਰ ਫੀਚਰ 'ਤੇ।
ਧੀਰੇ-ਧੀਰੇ ਅਪਣਾਓ:
ਮਿਕਸ-ਫਰੇਮਵਰਕ ਠੀਕ ਹਨ ਜੇ ਤੁਸੀਂ ਹੱਦਾਂ ਸਪਸ਼ਟ ਰੱਖੋ। CI ਵਿੱਚ ਰਨਰ ਅਲੱਗ ਰੱਖੋ, ਨਤੀਜੇ ਇਕੱਠੇ ਰਿਪੋਰਟ ਕਰੋ, ਅਤੇ ਦੱਸੋ ਕਿ ਕਿਹੜੇ ਖੇਤਰ "ਲੇਗੇਸੀ" ਹਨ। ਵੱਡੇ-ਬੈਂਗ ਰੀਰਾਈਟਜ਼ ਤੋਂ ਬਚੋ; ਬਦਲਾਅ ਲੈ ਕੇ ਜਦੋਂ ਉਹ ਭਰੋਸਾ/ਸਥਿਰਤਾ ਲਿਆਉਂਦੇ ਹਨ (ਫਲੇਕੀ ਸੂਟ, ਧੀਮੇ ਸੂਟ, ਮੁੱਖ ਰਾਹ)।
ਜੇ ਤੁਹਾਨੂੰ ਦੋਹਾਂ ਨੂੰ ਕੁਝ ਸਮੇਂ ਲਈ ਰੱਖਣਾ ਪਵੇ, ਤਾਂ ਇੱਕ ਸਾਂਝਾ ਨਿਯਮ ਤੈਅ ਕਰੋ: ਹਾਰੋਂ ਆਉਂਦੇ ਫੇਲ੍ਹ ਮਰਜ ਨੂੰ ਰੋਕਦੇ ਹਨ ਭਾਵੇਂ ਉਹ ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਤੋਂ ਆਉਂਦੇ ਹੋਣ।
ਇੱਕ ਸਧਾਰਨ ਪਲੇਬੁੱਕ ਪੰਨਾ ਪ੍ਰਕਾਸ਼ਤ ਕਰੋ (ਉਦਾਹਰਨ ਲਈ, /docs/testing-playbook) ਜਿਸ ਵਿੱਚ:
ਇੱਕ ਸਪਸ਼ਟ ਪ੍ਰੋਜੈਕਟ ਸਟ੍ਰੱਕਚਰ ਬਹਿਸ ਘਟਾਉਂਦਾ ਹੈ:
/tests
/unit
/integration
/fixtures
/src
...
ਫਰੇਮਵਰਕ ਰਿਵਾਜਾਂ ਨੂੰ ਸਾਫ ਨਾਰੀਟਾਂ, ਆਸਾਨ ਟੈmplੇਟ, ਲਗਾਤਾਰ CI ਜ਼ੋਰ, ਅਤੇ ਇੱਕ ਮਾਈਗਰੇਸ਼ਨ ਰਸਤਾ ਜੋ ਪ੍ਰਗਤੀ ਨੂੰ ਪੂਰਨਤਾ ਦੇ ਉਪਰ ਅਹਿਮੀਅਤ ਦਿੰਦਾ ਹੈ ਜੋੜ ਕੇ ਹੀ ਸੰਸਕ੍ਰਿਤੀ ਮਜ਼ਬੂਤ ਹੁੰਦੀ ਹੈ।
ਜੇ ਤੁਸੀਂ ਆਦਤਾਂ ਨੂੰ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ, ਸਭ ਤੋਂ ਤੇਜ਼ ਫਾਇਦਾ ਅਕਸਰ ਸੈਟਅੱਪ friction ਘਟਾਉਣਾ ਹੁੰਦਾ ਹੈ। Koder.ai ਵਰਤਣ ਵਾਲੀਆਂ ਟੀਮਾਂ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਛੋਟਾ “golden path” ਪ੍ਰੋਜੈਕਟ ਸਟਰੱਕਚਰ ਅਤੇ ਟੈਸਟ ਕਮਾਂਡਾਂ (ਜਿਵੇਂ test, test:watch, test:ci) ਚੈਟ ਵਿੱਚ ਤਿਆਰ ਕਰਕੇ ਸ਼ੁਰੂ ਕਰਦੀਆਂ ਹਨ, ਫਿਰ ਫਰੇਮਵਰਕ ਰਿਵਾਜਾਂ ਨੂੰ ਟੀਮ ਦੇ playbook ਨਾਲ ਮਿਲਾਉਂਦੀਆਂ ਹਨ।
Koder.ai ਚੈਟ-ਚਲਿਤ ਵਰਕਫਲੋ ਤੋਂ ਪੂਰੇ ਵੈੱਬ/ਸਰਵਰ/ਮੋਬਾਈਲ ਐਪ ਬਣਾਉਣ ਅਤੇ ਸਰੋਤ ਕੋਡ ਰਿਪੋ ਤੋਂ ਐਕਸਪੋਰਟ ਕਰਨ ਦੇ ਯੋਗ ਹੈ—ਇਹ ਇੱਕ ਪ੍ਰਯੋਗਾਤਮਕ ਪਾਈਲਟ ਲਈ ਪ੍ਰਾਇਕਟਿਕ ਤਰੀਕਾ ਹੈ (CI ਵਾਇਰਿੰਗ ਸਮੇਤ) ਜਿਸ ਤੋਂ ਪਹਿਲਾਂ ਤੁਸੀਂ ਪੂਰੀ ਟੀਮ ਨੂੰ ਮਾਈਗਰੇਟ ਕਰਨ ਲਈ ਕਹੋ। ਟੂਲ ਦੀ ਚੋਣ ਅਹੰਕਾਰ ਧਾਰਕ ਹੈ, ਪਰ “ਸਹੀ ਕੰਮ” ਕਰਨ ਦੀ ਲਾਗਤ ਘਟਾਉਣਾ ਹੀ ਮਿਆਰ ਨੂੰ ਸੰਸਕ੍ਰਿਤੀ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।