లాభాలు:
- డేటా-టెస్టిడ్, ఓపెన్ వెయిట్ మరియు రియల్ యూజర్ రిజల్ట్ని వెరిఫై చేస్తుందని నొక్కి చెప్పడంతో సహా ఆర్టిఫిషియల్ ఇంటెలిజెన్స్తో బలమైన UI టెస్ట్ కోడ్ని రూపొందించగల సామర్థ్యం
- పెళుసుగా ఉండే పరీక్షలను (చెడు సెలెక్టర్, బ్లైండ్ వెయిట్) నివారించగల సామర్థ్యం మరియు పేజ్ ఆబ్జెక్ట్ మోడల్ నిర్మాణంలో పరీక్షలను సులభంగా నిర్వహించడం
- కోడ్ను విచ్ఛిన్నం చేయడం ద్వారా ఉత్పత్తి చేయబడిన ప్రతి UI పరీక్షను పరీక్షించగల సామర్థ్యం మరియు నకిలీ-ఉత్తీర్ణత పరీక్షలను గుర్తించడం మరియు పరిష్కరించడం
బ్రౌజర్లో వినియోగదారు చేసే ప్రతి క్లిక్, ప్రతి ఫారమ్ ఫిల్, ప్రతి పేజీ పరివర్తనను చేతితో మళ్లీ మళ్లీ పరీక్షించడం సాధ్యం కాదు - అందుకే UI టెస్ట్ ఆటోమేషన్ (యూజర్ ఇంటర్ఫేస్; ఈ పరీక్షలు ప్రోగ్రామాటిక్గా నిజమైన బ్రౌజర్ని నడపడం ద్వారా వినియోగదారు ప్రవర్తనను అనుకరిస్తాయి) ఉనికిలో ఉన్నాయి. సెలీనియం, ప్లేరైట్ మరియు సైప్రస్ ఈ ఉద్యోగానికి అత్యంత సాధారణ సాధనాలు. ఆర్టిఫిషియల్ ఇంటెలిజెన్స్ (AI) ఈ సాధనాల కోసం కోడ్ను వ్రాయడంలో అత్యంత నైపుణ్యం కలిగి ఉంది: మీరు ఒక పరీక్ష కేసును వివరిస్తారు, AI మీకు పని చేయగల ఆటోమేషన్ స్క్రిప్ట్ యొక్క డ్రాఫ్ట్ను అందిస్తుంది. కానీ ఇక్కడ ఈ మాడ్యూల్ యొక్క కేంద్ర హెచ్చరిక మళ్లీ అమలులోకి వస్తుంది: AI ఉత్పత్తి చేసే UI పరీక్ష కోడ్ తరచుగా పెళుసుగా ఉండే పరీక్షలు కావచ్చు, ఇవి “ఆకుపచ్చని వెలిగిస్తాయి కాని తప్పు విషయాన్ని ధృవీకరించాయి” లేదా గాలిలో ఫ్లాప్ చేస్తాయి. మీ పని ఈ కోడ్ని అమలు చేయడం కాదు, అయితే ఇది సరైన విషయాన్ని ఖచ్చితంగా ధృవీకరిస్తున్నట్లు నిర్ధారించుకోవడం.
ఈ యూనిట్లో, AIతో పటిష్టమైన, నిర్వహించదగిన మరియు నిజంగా ధృవీకరించే UI పరీక్షలను రూపొందించాలని మేము లక్ష్యంగా పెట్టుకున్నాము; మీరు పెళుసుగా ఉండే పరీక్షలను నివారించడం నేర్చుకుంటారు.
ఘన UI పరీక్ష యొక్క మూడు స్తంభాలు
1. సరైన మూలకం లొకేటర్. పేజీలోని మూలకాన్ని కనుగొనడానికి పరీక్ష ఎంపిక సాధనాన్ని ఉపయోగిస్తుంది. AI తరచుగా పెళుసుగా ఉండే సెలెక్టర్లను ఉత్పత్తి చేస్తుంది: పొడవైన XPath పాత్లు (చిరునామా పేజీ నిర్మాణంపై ఎక్కువగా ఆధారపడి ఉంటుంది), CSS క్లాస్ పేర్ల ఆధారంగా సెలెక్టర్లు (డిజైన్ మారినప్పుడు బ్రేక్). డెవలపర్ టెస్టింగ్ కోసం జోడించిన డేటా-టెస్టిడ్ వంటి స్థిరమైన గుణాలు బలమైన మార్గం. దీన్ని AIపై స్పష్టంగా విధించండి.
2. స్పష్టమైన నిరీక్షణ. UI పరీక్షలో దుర్బలత్వం యొక్క మొదటి మూలం సమయం. స్థిరమైన నిద్ర(3) (బ్లైండ్ వెయిట్) చెడు అభ్యాసం: కొన్నిసార్లు ఇది సరిపోదు, కొన్నిసార్లు సమయం వృధా అవుతుంది. "ఈ మూలకం కనిపించే వరకు వేచి ఉండండి" అని చెప్పే స్పష్టమైన నిరీక్షణను ఉపయోగించడం సరైన మార్గం. నాటక రచయిత దీన్ని స్వయంచాలకంగా చేస్తాడు; సెలీనియంలో మీరు దానిని స్పష్టంగా అభ్యర్థించాలి.
3. అర్థవంతమైన ప్రకటన. పరీక్ష వినియోగదారు నిజంగా చూసే ఫలితాన్ని ధృవీకరించాలి - "స్క్రీన్పై ఆర్డర్ నంబర్ కనిపించింది," కేవలం "పేజీ లోడ్ చేయబడింది" వంటిది. AI ద్వారా ఉత్పత్తి చేయబడిన పరీక్షలో ఒక వాదన లేకుంటే లేదా ముఖ్యమైనది కానట్లయితే, ఆ పరీక్ష నకిలీ-పాస్ (1వ యూనిట్)ని ఉత్పత్తి చేస్తుంది.
హెచ్చరిక: మీరు మొదట AI- రూపొందించిన UI పరీక్షను చూసినప్పుడు, గరిష్టంగా మూడు అంశాలను తనిఖీ చేయండి: సెలెక్టర్లు కట్టుబడి ఉన్నారా (డేటా-పరీక్ష), వేచి ఉన్నారు (గుడ్డి నిద్ర లేదు) మరియు వాస్తవ వినియోగదారు ఫలితాన్ని ధృవీకరిస్తారా? ఈ మూడు ఓకే అయితే, పరీక్ష బహుశా పటిష్టంగా ఉంటుంది.
పేజీ ఆబ్జెక్ట్ మోడల్
పరీక్షలు పెద్దవిగా పెరిగేకొద్దీ, ప్రతి పరీక్షలో సెలెక్టర్లు రాయడం అనేది నిర్వహణ పీడకలగా మారుతుంది. పేజీ ఆబ్జెక్ట్ మోడల్ (POM — ప్రతి పేజీ/స్క్రీన్ కోసం సెలెక్టర్లు మరియు చర్యలను ఒకే తరగతిలో సేకరిస్తుంది) సెలెక్టర్ను ఒకే చోట ఉంచుతుంది; ఇంటర్ఫేస్ మారినప్పుడు, మీరు దానిని ఒకే ఫైల్లో అప్డేట్ చేస్తారు. AI నేరుగా కాకుండా POM నిర్మాణంలో పరీక్షలను రూపొందించేలా చేయండి; ఇది నిర్వహణను సమూలంగా సులభతరం చేస్తుంది.
బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్
బలహీనం: "లాగిన్ పేజీ కోసం సెలీనియం పరీక్ష రాయండి."
బలమైనది: "ప్లే రైట్ (టైప్స్క్రిప్ట్)తో లాగిన్ ఫ్లో పరీక్షను వ్రాయండి. సెలెక్టర్లు డేటా-టెస్టిడ్ను మాత్రమే ఉపయోగిస్తాయి; వినియోగదారు చూసేదాన్ని నియంత్రించవద్దు, పేజీ శీర్షికను ఉపయోగించవద్దు."
శక్తివంతమైన ప్రాంప్ట్; సాధనం భాష, ఎంపిక విధానం, నిరీక్షణ వ్యూహం, నిర్మాణం (POM) మరియు వ్యక్తీకరణ నిరీక్షణను అందిస్తుంది.
డేటా మరియు పర్యావరణ స్వతంత్రతను పరీక్షించండి
ఘన UI పరీక్ష సరిగ్గా వ్రాయబడడమే కాకుండా, దాని స్వంత పరీక్ష డేటాను రూపొందించి, శుభ్రపరుస్తుంది. AI-ఉత్పత్తి పరీక్షలు తరచుగా వినియోగదారు లేదా రికార్డ్కు లింక్ చేస్తాయి, అది పర్యావరణంలో ఇప్పటికే ఉన్నట్లు భావించబడుతుంది (“అడ్మిన్ వినియోగదారుగా లాగిన్ చేయండి”). పరీక్ష మరొక వాతావరణంలో నడుస్తున్నప్పుడు లేదా మరొక పరీక్ష తర్వాత (యూనిట్ 9లో ఆర్డర్ డిపెండెన్సీ సమస్య) ఈ ఊహ విచ్ఛిన్నమవుతుంది. నిజం ఏమిటంటే, ప్రతి పరీక్ష పరీక్ష ప్రారంభంలో అవసరమైన డేటాను సృష్టిస్తుంది (లేదా దానిని API కాల్తో సిద్ధం చేస్తుంది) మరియు చివరిలో దాన్ని శుభ్రపరుస్తుంది. "ఈ పరీక్ష ఏదైనా డేటాను సెటప్ చేయడం పరీక్షలో ఆధారపడి ఉంటుంది; బయటి నుండి రెడీమేడ్ డేటాను ఊహించుకోవద్దు" అని AIకి స్పష్టంగా సూచించండి.
నిజమైన వినియోగదారు డేటాతో UI టెస్టింగ్ చేయకూడదనేది మరొక క్లిష్టమైన అంశం. పరీక్ష వాతావరణంలో ఉత్పత్తి డేటాబేస్ కాపీని ఉపయోగించినట్లయితే, ఈ రికార్డులు నిజమైన వ్యక్తుల డేటా; స్క్రీన్షాట్లు మరియు పరీక్ష రికార్డింగ్లు ఈ డేటాను బహిర్గతం చేయవచ్చు. సింథటిక్ (కల్పిత) పరీక్ష ఖాతాలను ఉపయోగించండి; ఇది రెండూ గోప్యతను రక్షిస్తుంది మరియు పరీక్షలను పునరుత్పత్తి చేస్తుంది. నిజమైన కస్టమర్ ఖాతాతో "ఆర్డర్ రద్దు" పరీక్షను నిర్వహించడం నైతిక మరియు కార్యాచరణ తప్పు.
చిట్కా: UI పరీక్షలను వీలైనంత తక్కువగా ఉంచండి; వేగవంతమైన మరియు స్థిరమైన API మరియు యూనిట్ పరీక్షలకు వాస్తవ ధృవీకరణను వదిలివేయండి. UI టెస్టింగ్ ఖరీదైనది మరియు పెళుసుగా ఉంటుంది — ఇది నిజంగా ఎండ్-టు-ఎండ్ యూజర్ ఫ్లోని (టెస్ట్ పిరమిడ్ లాజిక్) ధృవీకరించడానికి మాత్రమే ఉపయోగించండి.
వాహన పోలిక
లక్షణం
సెలీనియం
నాటక రచయిత
సైప్రస్
భాషలు
జావా, C#, పైథాన్, JS
JS/TS, పైథాన్, .NET, జావా
జావాస్క్రిప్ట్/టైప్స్క్రిప్ట్
ఆటో స్టాండ్బై
లేదు (చేతితో)
అవును (బలమైన)
అవును
బహుళ బ్రౌజర్
వెడల్పు
Chromium/Firefox/WebKit
క్రోమియం-ఆధిపత్యం
పెళుసుదనానికి ధోరణి
అధిక (మాన్యువల్ స్టాండ్బై)
తక్కువ
తక్కువ
నేర్చుకునే సౌలభ్యం
మధ్యస్థ
సులభంగా
సులభంగా
సమాంతర ఆపరేషన్
గ్రిడ్ అవసరం
అంతర్నిర్మిత
నివాసి/చెల్లింపు
AI నుండి కోడ్ను అభ్యర్థిస్తున్నప్పుడు, అది ఏ వాహనానికి చెందినదో స్పష్టంగా పేర్కొనండి; లేకపోతే, ఇది గందరగోళంగా, పని చేయని కోడ్ను ఉత్పత్తి చేయవచ్చు.
నాలుగు కాపీ చేయగల టెంప్లేట్లు
1) ఘన UI పరీక్ష ఉత్పత్తి:
మీ పాత్ర: సీనియర్ టెస్ట్ ఆటోమేషన్ ఇంజనీర్. కింది ఫ్లో కోసం [టూల్ + లాంగ్వేజ్]తో పరీక్షలు రాయండి: [ఫ్లో]. రూల్స్:- సెలెక్టర్లు డేటా-టెస్ట్ మాత్రమే; XPath/CSS-తరగతిని ఉపయోగించడం. - గుడ్డి నిద్ర లేదు; స్పష్టమైన/ఆటోమేటిక్ నిరీక్షణను ఉపయోగించండి. - పేజీ ఆబ్జెక్ట్ మోడల్ని వర్తింపజేయండి. - ప్రతి నిర్థారణ వాస్తవ వినియోగదారు ఫలితాన్ని ధృవీకరించనివ్వండి. మీరు ఏ అంగీకార ప్రమాణాలను ధృవీకరిస్తున్నారో ప్రతి పరీక్ష ప్రారంభంలో వ్యాఖ్యానించండి.
2) దుర్బలత్వ నియంత్రణ:
పెళుసుదనం కోసం క్రింది UI పరీక్షను పరిశీలించండి:- అస్థిరమైన ఎంపిక సాధనం ఉందా (పొడవైనది
3) పేజీ ఆబ్జెక్ట్గా మార్చడం:
కింది సాదా పరీక్ష కోడ్ని పేజీ ఆబ్జెక్ట్ మోడల్ నిర్మాణంలోకి మార్చండి. సెలెక్టర్లు మరియు చర్యలను పేజీ తరగతులకు తరలించండి; పరీక్ష ఫైల్ దృష్టాంతాన్ని మాత్రమే చదవనివ్వండి. [సాధనం/భాష].కోడ్: [పేస్ట్ కోడ్]
4) సూడో-ట్రాన్సిషన్ ప్రూఫ్:
ఈ UI పరీక్ష వాస్తవానికి చెల్లుబాటు అవుతుందని నిరూపించండి: ఈ పరీక్షను రెడ్గా మార్చే అప్లికేషన్ కోడ్లో నేను ఏ ఒక్క మార్పు చేయాలి? మీరు పరీక్షను విచ్ఛిన్నం చేసే మార్పును కనుగొనలేకపోతే, పరీక్ష సరిపోదు; తప్పిపోయిన నిరూపణలను జోడించండి.పరీక్ష: [పరీక్షను అతికించండి]
మూడు చిన్న కేసులు
కేస్ 1 — పెళుసుగా ఉండే సెలెక్టర్ నుండి విముక్తి. AIతో రూపొందించిన 40 పరీక్షల్లో, 70% ఇంటర్ఫేస్ అప్డేట్ తర్వాత విరిగిపోయాయి; వాటిలో ఏవీ అసలైన బగ్లు కాదు, అవన్నీ పెళుసుగా ఉండే XPath సెలెక్టర్లు. బృందం "పెళుసుదనం తనిఖీ" టెంప్లేట్తో పరీక్షలను డేటా-టెస్టిడ్ బేస్గా మార్చింది. తదుపరి మూడు ఇంటర్ఫేస్ అప్డేట్లలో, తప్పుడు విరామాల సంఖ్య సున్నాకి పడిపోయింది; నిర్వహణ సమయం వారానికి 6 గంటల నుండి 30 నిమిషాలకు తగ్గింది.
కేసు 2 — నకిలీ-పాసింగ్ UI పరీక్ష. AI "యాడ్ టు కార్ట్" పరీక్షను రూపొందించింది; పరీక్ష ఆకుపచ్చగా ఉంది. "ఫేక్-ప్రూఫ్-ఆఫ్-పాసేజ్" టెంప్లేట్ అమలు చేయబడినప్పుడు, పరీక్ష బటన్ క్లిక్ మరియు పేజీ శీర్షికను మాత్రమే తనిఖీ చేసినట్లు కనిపించింది, కార్ట్ కౌంటర్ పెరిగిందా లేదా అని ఎప్పుడూ ధృవీకరించలేదు. బండి లాజిక్ పూర్తిగా బద్దలయినా పరీక్ష పాసైంది. నిజమైన నిశ్చయత జోడించబడింది (కార్ట్ బ్యాడ్జ్ "1").
కేస్ 3 - బ్లైండ్ వెయిటింగ్ ట్రాప్. AI ద్వారా ఉత్పత్తి చేయబడిన సెలీనియం పరీక్షలో, ప్రతి దశ తర్వాత నిద్ర(2) ఉంది; 60 పరీక్షలు 14 నిమిషాలు పట్టాయి మరియు ఇప్పటికీ అప్పుడప్పుడు విరిగిపోయాయి. ఓపెన్ వెయిట్కి మారిన తర్వాత (మూలకం క్లిక్ చేయగలిగే వరకు వేచి ఉండండి) సమయం 5 నిమిషాలకు తగ్గింది మరియు పెళుసుదనం అదృశ్యమైంది. బ్లైండ్ వెయిటింగ్ నెమ్మదిగా మరియు నమ్మదగనిది.
సాధారణ తప్పులు
- పెళుసుగా ఉండే సెలెక్టర్లకు అంగీకరిస్తున్నారు. AI ద్వారా ఉత్పత్తి చేయబడిన పొడవైన XPathలను ఉపయోగించడం; మొదటి ఇంటర్ఫేస్ మార్పు వద్ద పరీక్షలు క్రాష్ అవుతాయి.
- గుడ్డి `నిద్ర` వదిలి. స్థిరమైన నిరీక్షణతో సమయాన్ని "పరిష్కరించడం"; నెమ్మదిగా మరియు అనిశ్చితంగా.
- పనికిమాలిన వాదన. పేజీ లోడ్ అయిందని ధృవీకరించండి; అసలు వినియోగదారు ఫలితాన్ని తనిఖీ చేయడం లేదు (నకిలీ-పాస్).
- POM లేకుండా పెంచండి. ప్రతి పరీక్షకు సెలెక్టర్లను పంపిణీ చేయండి; ఇంటర్ఫేస్ మారినప్పుడు డజన్ల కొద్దీ ఫైల్లను మాన్యువల్గా అప్డేట్ చేస్తోంది.
- సాధనాన్ని పేర్కొనడం లేదు. మీకు ఏ సాధనం/భాష కావాలో AIకి చెప్పడం లేదు; గందరగోళంగా, పని చేయని కోడ్ని పొందడం.
- మీరు రూపొందించిన కోడ్ మరియు పాస్ని అమలు చేసినప్పుడు విశ్వసించడం. కోడ్ను విచ్ఛిన్నం చేయడం ద్వారా పరీక్షించడం లేదు.
సారాంశంలో
UI టెస్టింగ్ ఆటోమేషన్ ప్రోగ్రామ్తో వాస్తవ బ్రౌజర్ను నడపడం ద్వారా వినియోగదారు ప్రవర్తనను ధృవీకరిస్తుంది. AI ఈ కోడ్ను త్వరగా ఉత్పత్తి చేస్తుంది, కానీ రెండు పెద్ద ఆపదలు ఉన్నాయి: పెళుసుగా ఉండే పరీక్షలు (చెడు ఎంపిక, బ్లైండ్ వెయిట్) మరియు ఫేక్-పాసింగ్ పరీక్షలు (అసంపూర్ణ/చిన్నవిషయం). ఘన UI పరీక్ష యొక్క మూడు స్తంభాలు కమిట్ సెలెక్టర్ (డేటా-టెస్టిడ్), స్పష్టమైన నిరీక్షణ మరియు వాస్తవ వినియోగదారు ఫలితాన్ని ధృవీకరిస్తుంది. పేజీ ఆబ్జెక్ట్ మోడల్లో రూపొందించబడిన పరీక్షలను కలిగి ఉండటం నిర్వహణను సమూలంగా సులభతరం చేస్తుంది. "ఏ మార్పు దీన్ని విచ్ఛిన్నం చేస్తుంది?" అనే ప్రశ్నతో రూపొందించబడిన ప్రతి పరీక్షను పరీక్షించండి
అప్లికేషన్ టాస్క్
మీ స్వంత ప్రాజెక్ట్ నుండి వినియోగదారు ప్రవాహాన్ని ఎంచుకోండి (ఉదా. లాగిన్ లేదా శోధన). "బలమైన UI టెస్ట్ జనరేషన్" టెంప్లేట్తో AI పరీక్షలు రాయండి. తర్వాత: (1) సెలెక్టర్లను తనిఖీ చేసి, పరిష్కరించండి మరియు "పెళుసుదనం తనిఖీ"తో వేచి ఉండండి, (2) ప్రతి పరీక్ష వాస్తవానికి "సూడో-పాస్ ప్రూఫ్"తో చెల్లుబాటు అవుతుందని నిరూపించండి, (3) కోడ్ను విచ్ఛిన్నం చేసి, పరీక్ష ఎరుపు రంగులోకి మారడాన్ని గమనించండి. తయారు చేయబడిన మరియు సరిదిద్దబడిన పరీక్షల సంఖ్య మరియు మీరు కనుగొన్న దుర్బలత్వాలు మరియు నకిలీ పాస్ల సంఖ్యను నివేదించండి.
చెక్లిస్ట్
- [ ] నేను AIకి టూల్, లాంగ్వేజ్, సెలెక్టర్ పాలసీ మరియు ఆర్కిటెక్చర్ (POM) స్పష్టంగా ఇచ్చాను.
- [ ] సెలెక్టర్లు డేటా-టెస్డ్ అని నేను ధృవీకరించాను.
- [ ] నేను బ్లైండ్ స్లీప్కు బదులుగా స్పష్టమైన/ఆటోమేటిక్ వెయిట్ని ఉపయోగించినట్లు నిర్ధారించుకున్నాను.
- [ ] ప్రతి నిశ్చితార్థం వాస్తవ వినియోగదారు ఫలితాన్ని ధృవీకరిస్తున్నట్లు నేను తనిఖీ చేసాను.
- [ ] నేను కోడ్ను విచ్ఛిన్నం చేయడం ద్వారా ప్రతి పరీక్షను పరీక్షించాను; ఎర్రగా మారడం చూశాను.
- [ ] నేను పేజీ ఆబ్జెక్ట్ మోడల్ నిర్మాణంలో పరీక్షలను సేకరించాను.