સોફ્ટવેર ટેસ્ટિંગ હંમેશા સમય સામેની દોડ રહી છે. રિલીઝ વિન્ડોઝ નાની થતી જાય છે. કોડબેઝ વધતા જાય છે. ટીમો પાસેથી અપેક્ષા રાખવામાં આવે છે કે તેઓ વસ્તુઓ બગાડ્યા વગર ઝડપથી શિપ કરે. તાજેતરમાં, AI એ આ દબાણ હેઠળ રાહત આપવાનું વચન આપીને પ્રવેશ કર્યો છે. તે સેકન્ડોમાં ટેસ્ટ કેસ જનરેટ કરી શકે છે, અનોમલીઝ (anomalies) માટે હજારો લાઇનના કોડને સ્કેન કરી શકે છે, અને જ્યારે તમારી ટીમ સૂતી હોય ત્યારે રિપીટિટિવ સ્યુટ્સ (repetitive suites) ચલાવી શકે છે. ઝડપ વાસ્તવિક છે. પરંતુ દિશા વિનાની ઝડપ એ માત્ર અકસ્માતનો ઝડપી માર્ગ છે.

વાસ્તવિકતા એ છે કે ટેસ્ટિંગમાં AI એક એક્સિલરેટર (accelerator) તરીકે શ્રેષ્ઠ રીતે કામ કરે છે, ઓટોપાયલટ (autopilot) તરીકે નહીં. તેનો યોગ્ય ઉપયોગ કરવાથી, તે કંટાળાજનક કામ (grunt work) ઘટાડે છે અને શરૂઆતમાં જ બગ્સ (bugs) શોધી કાઢે છે. બેદરકારીથી ઉપયોગ કરવાથી, તે અંધ બિંદુઓ (blind spots) બનાવે છે અને તમને સુરક્ષાનો ખોટો અહેસાસ કરાવે છે. AI ક્યાં મદદ કરે છે અને ક્યાં નિષ્ફળ જાય છે તે સમજવું એ સ્ટેબલ સોફ્ટવેર શિપ કરવા અને સમયસર પહોંચતા બ્રોકન કોડને શિપ કરવા વચ્ચેનો તફાવત છે.

જ્યાં AI પોતાનું સ્થાન મેળવે છે

AI જે કામ સારી રીતે સંભાળી શકે છે તેનાથી શરૂઆત કરો. રિપીટિટિવ રિગ્રેશન ટેસ્ટિંગ (Repetitive regression testing) એ સ્પષ્ટ વિજય છે. ડઝનબંધ બ્રાઉઝર અને ડિવાઇસ કોમ્બિનેશનમાં સમાન લોગિન ફ્લો, ફોર્મ વેલિડેશન અને ચેકઆઉટ સ્ટેપ્સ ચલાવવા એ મનુષ્યો માટે કંટાળાજનક છે અને મશીનો માટે સામાન્ય છે. AI-ડ્રિવન ટેસ્ટ રનર્સ આ સ્યુટ્સ રાતોરાત ચલાવી શકે છે અને વિઝ્યુઅલ રિગ્રેશન અથવા પરફોર્મન્સમાં ઘટાડો શોધી શકે છે જે કદાચ થાકેલા એન્જિનિયરથી રહી જાય.

ટેસ્ટ ડેટા જનરેશન એ બીજું મજબૂત પાસું છે. જ્યારે તમારે વાસ્તવિક પરંતુ ફેક નામો, સરનામાં, ટ્રાન્ઝેક્શન હિસ્ટ્રી અને ટાઈમ ઝોન સાથે દસ હજાર રેકોર્ડ્સની જરૂર હોય, ત્યારે AI તેને તરત જ બનાવી શકે છે. જ્યારે તમે ડેટાબેઝનું લોડ-ટેસ્ટિંગ કરી રહ્યા હોવ અથવા તમારું એનાલિટિક્સ ડેશબોર્ડ હાઈ-કાર્ડિનાલિટી ડેટાને કેવી રીતે હેન્ડલ કરે છે તે તપાસી રહ્યા હોવ ત્યારે આ મહત્વનું છે. તે જથ્થો મેન્યુઅલી બનાવવો એ માત્ર ધીમો જ નથી; તે અવાસ્તવિક પણ છે.

AI બોઈલરપ્લેટ (boilerplate) ટેસ્ટ સ્ક્રિપ્ટ્સ લખવાની પ્રક્રિયાને પણ ઝડપી બનાવે છે. જો તમારે નવા API એન્ડપોઈન્ટ માટે સ્ટાન્ડર્ડ યુનિટ ટેસ્ટ અથવા પેજ લોડ થાય છે તે ચકાસવા માટે બેઝિક સ્ક્રિપ્ટની જરૂર હોય, તો AI આસિસ્ટન્ટ તેનું માળખું (scaffold) તૈયાર કરી શકે છે. તમને શૂન્યથી ટાઈપ કર્યા વગર સ્ટ્રક્ચર, ડમી ઇનપુટ્સ અને એસરશન પ્લેસહોલ્ડર્સ મળી જાય છે. તે એક સારો પ્રારંભિક બિંદુ છે.

આ ફાયદાઓ સ્પષ્ટ છે. બગ્સ વહેલા પકડાય છે કારણ કે વ્યાપક ટેસ્ટ ચલાવવાનો ખર્ચ ઘટે છે. રિપીટિટિવ કાર્યો માનવ કલાકોનો બગાડ કરવાનું બંધ કરે છે. ટીમ વધુ જટિલ સમસ્યાઓ પર ધ્યાન કેન્દ્રિત કરી શકે છે.

જે અંધ બિંદુઓ (Blind Spots) વિશે કોઈ વાત કરતું નથી

સમસ્યા ત્યારે શરૂ થાય છે જ્યારે ટીમો વ્યાપક કવરેજ (broad coverage) ને ઊંડું કવરેજ (deep coverage) સમજવાની ભૂલ કરે છે. AI પેટર્ન શોધે છે. તે જે ડેટા પર તાલીમ આપવામાં આવી છે તેના આધારે સામાન્ય બગ કેવો દેખાય છે તેનું અનુમાન લગાવે છે. તેનો અર્થ એ છે કે તે સામાન્ય બાબતોમાં ઉત્કૃષ્ટ છે અને અસામાન્ય બાબતોમાં વારંવાર નિષ્ફળ જાય છે.

એજ કેસીસ (Edge cases) પર વિચાર કરો. સ્ટાન્ડર્ડ યુઝર જર્ની પર તાલીમ પામેલ મોડેલ કદાચ તે બગને ચૂકી જાય જે ત્યારે જ ટ્રિગર થાય છે જ્યારે યુઝર ત્રણ મોડલ ડાયલોગ્સ ખોલે છે, બ્રાઉઝરનું બેક બટન દબાવે છે, અને અસિંક્રોનસ સેવ દરમિયાન રિફ્રેશ કરે છે. આ કાલ્પનિક નથી. પ્રોડક્શન ઇન્સિડન્ટ્સ ઘણીવાર એવા સિક્વન્સમાંથી ઉદભવે છે જેનું કોઈ તાલીમ ડેટાસેટ પૂરતું પ્રતિનિધિત્વ કરતું નથી કારણ કે તેઓ આંકડાકીય રીતે દુર્લભ છે. AI બેલ કર્વના કેન્દ્ર પાછળ દોડે છે. તમારા સૌથી ખરાબ બગ્સ તેના છેડાઓ (tails) માં રહેલા હોય છે.

અહીં માનવ અંતર્જ્ઞાન (Human intuition) મહત્વનું છે. અનુભવી ટેસ્ટર નવી ફીચર જુએ છે અને બિઝનેસ રિસ્ક વિશે વિચારે છે. તેઓ પૂછે છે કે નિરાશ યુઝર ફોર્મનો દુરુપયોગ કેવી રીતે કરી શકે છે, અથવા જ્યારે હોલિડે ટ્રાફિક સ્પાક દરમિયાન પેમેન્ટ ગેટવે ટાઈમ આઉટ થાય ત્યારે શું થાય છે. આ સંદર્ભિત વિચારસરણી (contextual thinking) છે. AI બિઝનેસ દબાણ અનુભવતું નથી. તે જાણતું નથી કે તમારું ઇન્વેન્ટરી સિસ્ટમ વર્ષો પહેલાના લેગસી ઇન્ટિગ્રેશનને કારણે નાજુક છે. તે જે સાચું લાગે છે તે લખે છે, જે તમારા ચોક્કસ ડોમેન માટે સાચું છે તે નહીં.

હેલ્યુસિનેશન (hallucination) અને બ્રિટલ ઓટોમેશન (brittle automation) નો પણ મુદ્દો છે. AI-જનરેટેડ ટેસ્ટ સ્ક્રિપ્ટ્સ જોવામાં યોગ્ય લાગે છે પરંતુ તેમાં ખોટા સિલેક્ટર્સ, ખોટા એસરશન્સ અથવા DOM સ્ટ્રક્ચર વિશેની ધારણાઓ હોઈ શકે છે જે આગામી સ્પ્રિન્ટમાં બદલાઈ જાય છે. જો તમે તેને વાંચ્યા વિના આ સ્ક્રિપ્ટ્સ ચલાવો છો, તો તમને ખોટા પોઝિટિવ્સ (false positives) મળે છે જે સમય બગાડે છે અથવા ખોટા નેગેટિવ્સ (false negatives) મળે છે જે બગ્સને પસાર થવા દે છે. જો ટેસ્ટ ખરેખર સાચા વર્તનને વેલિડેટ નથી કરી રહ્યો તો ટેસ્ટ ડેશબોર્ડ પર લીલું ચેકમાર્ક અર્થહીન છે.

શું