ክፍሎች
1. በሶፍትዌር ሙከራ እና QA ውስጥ ወደ አርቲፊሻል ኢንተለጀንስ መግቢያ፡ ሚናዎች፣ ወሰኖች፣ የውሸት ስጋት እና ማረጋገጫ 2. የሙከራ ሁኔታ እና የጉዳይ ማመንጨት፡ ከመጠየቅ ወደ አጠቃላይ ቁጥጥር 3. የአሳሽ ሙከራ እና የፍተሻ ሀሳብ ማመንጨት፡ ከ AI ጋር የፈጠራ የሳንካ አደን 4. የዩአይ ሙከራ አውቶሜሽን፡ ሴሊኒየምን፣ ተውኔት ተውኔት እና ሳይፕረስ ኮድን ከ AI ጋር ማመንጨት 5. የኤፒአይ ሙከራ አውቶማቲክ፡ ውል፣ እቅድ እና ከመጨረሻ እስከ መጨረሻ ማረጋገጫ ከ AI ጋር 6. የክፍል ሙከራ ማመንጨት እና መሞከሪያነት፡ ጠንካራ ሙከራ ከ AI ጋር 7. የስህተት ሪፖርት መጻፍ እና ቅድሚያ መስጠት፡ ግልጽ፣ ሊባዙ የሚችሉ መዝገቦች ከ AI ጋር 8. የሙከራ ሽፋን ትንተና እና በአደጋ ላይ የተመሰረተ ሙከራ፡ ከ AI ጋር በትክክል ማነጣጠር 9. የድጋሚ ሙከራ፣ የሙከራ ጥገና እና ደካማ ሙከራዎችን መዋጋት 10. የውሸት እምነት ስጋት፣ የፈተና ጥራት እና ሚውቴሽን ሙከራ፡ ሙከራዎች 11. ከጫፍ እስከ ጫፍ የስራ ፍሰት፣ CI/CD ውህደት፣ ስነምግባር እና ደህንነት፡ AIን በኃላፊነት መጠቀም
ክፍል 6 / 11

የክፍል ሙከራ ማመንጨት እና መሞከሪያነት፡ ጠንካራ ሙከራ ከ AI ጋር

ትርፍ፡

  • ሰው ሰራሽ የማሰብ ችሎታ የተሳሳተ ባህሪን እንደ 'ትክክል' እንዳይቀበል የመከልከል ችሎታ በክፍል ሙከራዎች ውስጥ የሚጠበቀውን ዋጋ ከመቀበል ደንብ ውጭ በማስላት
  • AAA እና FIRST መርሆዎችን በመተግበር እና የውጭ ጥገኛዎችን በማሾፍ ፈጣን ፣ ገለልተኛ እና ተደጋጋሚ ሙከራዎችን የማተም ችሎታ።
  • ሚውቴሽን (የኮድ መስበር) ሙከራዎችን የመሞከር ችሎታ እና ለመፈተሽ አስቸጋሪ ኮድ እንደ የንድፍ ሽታ የመለየት ችሎታ

ትልቁ እና ፈጣኑ የፍተሻ ፒራሚድ ንብርብር የአሃድ ሙከራ ነው - ሙከራ አንድ ተግባር ወይም ትንሽ ቁራጭ ከሌላው ነገር ተነጥሎ የሚያረጋግጥ ነው። በሺዎች የሚቆጠሩ የዩኒት ሙከራዎች በሰከንዶች ውስጥ ይሮጣሉ እና ኮዱ አሁንም በገንቢው ስክሪን ላይ እያለ ስህተት ይይዛሉ። አርቴፊሻል ኢንተለጀንስ (AI) ምናልባት የዩኒት ፈተናዎችን በማምረት ረገድ በጣም ጎበዝ ነው፡ እርስዎ ተግባር ይሰጡታል፣ AI በደርዘን የሚቆጠሩ ሙከራዎችን ይፈጥራል። ነገር ግን ይህ በጣም ምቹነት ትልቁን ወጥመድ ያመጣል፡ AI በቀላሉ “አረንጓዴ የሚያበራ ነገር ግን ምንም ነገር አያረጋግጥም” ወይም የኮዱን ወቅታዊ (ምናልባትም የተሳሳተ) ባህሪ “ትክክል” ብለው የሚቀበሉ ሙከራዎችን ያደርጋል። በዚህ ክፍል ውስጥ እውነተኛ የመከላከያ አሃድ ሙከራዎችን በ AI እና ሊሞከር በሚችል ኮድ እና በ AI መካከል ያለውን ግንኙነት እንዴት እንደሚጽፉ ይማራሉ ።

የጥሩ ዩኒት ፈተና ጥራቶች፡ FIRST

ጥሩ ዩኒት ፈተናዎች FIRST መርሆዎችን ይከተላሉ፡ ፈጣን፣ ገለልተኛ (ፈተናዎች እርስ በእርሳቸው ጥገኛ መሆን የለባቸውም)፣ ተደጋጋሚ (የሚደጋገም — በማንኛውም አካባቢ ተመሳሳይ ውጤት)፣ ራስን ማረጋገጥ (ግልጽ ማለፊያ/ውድቀት)፣ በጊዜ (በጊዜ)። AI ሙከራዎችን ሲያመርቱ እነዚህን መርሆዎች ያስታውሱ; በተለይም ፈተናው "ገለልተኛ" እና "የሚደጋገም" እንዲሆን በውጭው ዓለም (በትክክለኛው የውሂብ ጎታ, አውታረ መረብ, ሰዓት) ላይ እንዳይመረኮዝ ይጠይቁ.

የ AAA ንድፍ እና ገላጭ ማረጋገጫ

የጠንካራ አሃድ ሙከራ የ AAA አወቃቀሩን ይከተላል-አዘጋጅ (አዘጋጅ - ግብዓቶችን እና ጥገኞችን ማዘጋጀት), ህግ (አስፈጽም - በሙከራ ላይ ያለውን ተግባር ይደውሉ), አስርት (ያረጋግጡ - ውጤቱን ከሚጠበቀው እሴት ጋር ያወዳድሩ). ወሳኙ ነገር ማስረገጥ ነው። በጣም የተለመደው ስህተት AI የሚሠራው በሙከራ ላይ ካለው ኮድ ውፅዓት ነው - "ኮዱ የተመለሰው ነገር እውነት ነው" ሎጂክ። ይህ ፈተናውን ትርጉም የለሽ ያደርገዋል። ትክክለኛው መንገድ የሚጠበቀውን ዋጋ በተናጥል መወሰን ነው (ከተቀባይነት መስፈርት, በእጅ ያሰሉት).

ትኩረት: AI "ለዚህ ተግባር ፈተና ይፃፉ" ከነገሩት AI ተግባሩን ሊያከናውን እና ውጤቱን እንደ "ተጠበቀው" ሊጽፍ ይችላል. ይህ ሙከራ ተግባሩ ውሸት ቢሆንም እንኳ ያልፋል። ይልቁንስ "በእነዚህ ደንቦች መሰረት የሚጠበቀውን ውጤት ያሰላሉ, አሁን ያለውን የተግባር ውጤት አይጥቀሱ."

መሳለቂያዎች፣ ድሆች እና ጥገኞች

የክፍል ሙከራ ማግለልን ይጠይቃል። የእርስዎ ተግባር በመረጃ ቋት ወይም በኤፒአይ ላይ የሚመረኮዝ ከሆነ፣ በሙከራ ጊዜ በአስቂኝ ነገሮች (ሞክ/ግንድ - ቁጥጥር የሚደረግበት፣ ለእውነተኛ ጥገኝነት ምትክ) ይተካሉ። ይህ ፈተናውን ፈጣን፣ ገለልተኛ እና ሊባዛ የሚችል ያደርገዋል። AI የማስመሰል ጭነት ማምረት ይችላል; ነገር ግን ከመጠን ያለፈ መሳለቂያ ተጠንቀቁ፡ ሁሉንም ነገር ካፌዙ ፈተናው የሚያረጋግጠው ትክክለኛ አመክንዮ ሳይሆን “ማሾፍ የሚመለሰውን ብቻ ነው። ሚዛን፡ የውጩን አለም ምሰሉ፣ በፈተና ውስጥ ያለውን እውነተኛ አመክንዮ ያስፈጽሙ።

መፈተሽ እና AI

ደስ የሚል አስተያየት አለ፡ ለመፈተሽ የሚከብድ ኮድ ብዙ ጊዜ በደንብ ያልተነደፈ ኮድ ነው። AI ፈተናዎችን ወደ ተግባር የመፃፍ ችግር ካጋጠመው (በጣም ብዙ ጥገኛዎች ፣ የተደበቀ ዓለም አቀፍ ሁኔታ ፣ የጎንዮሽ ጉዳቶች) ይህ የንድፍ ሽታ ነው። አይአይን “ይህን ኮድ እንዲፈተሽ እንዴት ታደርጉታላችሁ” ብሎ መጠየቅ ወደ ተሻለ ሙከራ እና የተሻለ ኮድ ይመራል።

የተመጣጠነ ሙከራዎች እና የውሂብ ልዩነት

ተመሳሳዩን ህግ በተለያዩ ግብአቶች ለማረጋገጥ በእያንዳንዱ ጊዜ የተለየ ፈተና መፃፍ አሰልቺ እና ለማቆየት አስቸጋሪ ነው። የተመጣጠነ ሙከራ - በግብዓቶች ዝርዝር እና በተጠበቁ ውጤቶች ላይ ተመሳሳይ የሙከራ አመክንዮ ደጋግሞ የሚሰራ መዋቅር - ይህንን ድግግሞሽ ያስወግዳል አንድ ነጠላ የሙከራ አካል በደርዘን የሚቆጠሩ የግብዓት ጥንዶች ይመገባል። የእርስዎን ተቀባይነት ደንቦች ሲሰጡ AI እነዚህን በግብአት የሚጠበቁ የውጤት ሰንጠረዦችን በማምረት ረገድ በጣም ቀልጣፋ ነው; በተለይም ገደብ እሴቶችን እና የእኩልነት ክፍሎችን በዘዴ ያስቀምጣል።

ግን እዚህም ወጥመድ አለ: AI ለሙከራ ከሚገኘው ኮድ በተፈጠረው ሰንጠረዥ ውስጥ የሚጠበቀውን ውጤት ለማግኘት ይጥራል. ይህ ስህተት በፓራሜትሪ በሚደረግ ሙከራ የበለጠ አደገኛ ነው፣ ምክንያቱም አንድ የተሳሳተ አመክንዮ በደርዘን የሚቆጠሩ መስመሮችን ስለሚያጠፋ ነው። ስለዚህ ሁልጊዜ የሚጠበቀው የውጤት አምድ በተቀባይነት ህግ መሰረት ለብቻው ይሰላል እና ቢያንስ ጥቂት ረድፎችን በእጅ ያረጋግጡ። እንዲሁም መግለጫ አምድ ይጠይቁ "እያንዳንዱ ረድፍ ምን ይወክላል"; ስለዚህ አንድ ረድፍ ሲሰበር የትኛው ሁኔታ እንደተበላሸ ወዲያውኑ ይመለከታሉ።

ጠቃሚ ምክር፡ ሆን ተብሎ በተዘጋጀው የፈተና ሠንጠረዥ ላይ "ወጥመድ ረድፍ" ጨምር - ያም ሆነ ይህ ውጤቱን በተሳሳተ መንገድ ይተይቡ። ፈተናውን በሚያካሂዱበት ጊዜ ያ መስመር ወደ ቀይ ካልተቀየረ፡ ፈተናዎ ያንን ሁኔታ እያረጋገጠ አይደለም። ይህ ፈጣን የማሾፍ-ማለፊያ ፍተሻ ነው።

ደካማ ጥያቄ / ጠንካራ ጥያቄ

ደካማ፡ "ለዚህ ተግባር የአንድ ክፍል ሙከራ ይፃፉ።"
ጠንካራ: ለ "ግብር አስላ (መጠን, ተመን) አሃድ ሙከራዎችን ጻፍ. ተቀባይነት ደንብ: ውጤት = መጠን * ተመን, የተጠጋጋ 2 አስርዮሽ; አሉታዊ መጠን ወይም ተመን ስህተት ይጥላል; ተመኖች 0 ከሆነ 0 ይመልሳል. የ AAA መዋቅር ይጠቀሙ. በእጅ የሚጠበቁ እሴቶች አስላ በእነዚህ ደንቦች መሠረት, የውጽአት 0 በእጅ, የአሁኑ ሁኔታዎች አሉታዊ ማጣቀስ. ትልቅ ፣ ክብ ወደ አስርዮሽ) የእያንዳንዱ ፈተና ስም የሚያረጋግጠውን ደንብ ይግለጽ "አይ."

ኃይለኛ ማበረታቻ; እሱ ተቀባይነት ያለው ደንብ ፣ ገለልተኛ የሚጠበቀው እሴት ፣ መዋቅር እና የጠርዝ ጉዳዮችን ይሰጣል። ስለዚህም ፈተናው የደንቡ ጠባቂ እንጂ የኮዱ መስታወት አይሆንም።

ዩኒት የሙከራ ጥራት ሰንጠረዥ

ምልክት

መጥፎ ፈተና (የውሸት እምነት)

ጥሩ ፈተና

አስረግጠው አስረግጡ

የለም ወይም "ምንም አይደለም"

የሚጠበቀው የኮንክሪት ዋጋ

የሚጠበቀው የእሴት ምንጭ

የተግባሩ ውጤት

የመቀበል ደንብ / በእጅ ስሌት

ሱስ

ትክክለኛው DB/ኔትወርክ/ሰዓት

በፌዝ/ ገለባ

የጠርዝ መያዣ

ደስተኛ መንገድ ብቻ

ገደብ, አሉታዊ, ስህተት

ኮዱን ሲጥሱ

አረንጓዴ ሆኖ ይቆያል

ወደ ቀይ ይለወጣል

ስም

test1, testMethod

የሚያረጋግጠውን ደንብ ይገልጻል

አራት ሊገለበጡ የሚችሉ አብነቶች

1) በመተዳደሪያ ደንብ የሚመራ ክፍል ሙከራ፡-

የእርስዎ ሚና፡ የከፍተኛ የሶፍትዌር ሙከራ መሐንዲስ.የክፍል ፈተና በሚከተለው ተግባር ላይ በ[ቋንቋ/ማዕቀፍ]: [ፊርማ] ይጻፉ። የተግባሩን የአሁኑን ውጤት አታጣቅስ። - ገደቡን, አሉታዊ, ስህተት እና ደስተኛ መንገድን በተለየ ሙከራዎች ይሸፍኑ. - እያንዳንዱ የሙከራ ስም የሚያረጋግጠውን ደንብ ይግለጽ። - የውጭ ጥገኛዎችን ማሾፍ; ትክክለኛው አመክንዮ እንዲሰራ ያድርጉ.

2) ሚውቴሽን የመቋቋም ቁጥጥር;

እነዚህን የክፍል ፈተናዎች ይመልከቱ። በፈተና ላይ ባለው ኮድ ላይ ማድረግ የምችላቸውን 5 ጥቃቅን ማስተካከያዎች ዘርዝር (ሀ - ከ + ይልቅ፣ a >= ከ > ይልቅ፣ የድንበር ፈረቃ) እና ለእያንዳንዳቸው ከእነዚህ ፈተናዎች ውስጥ የትኛው ወደ ቀይ ይለወጣል? አንዳቸውም ካልተመለሱ፣ ፈተናው በቂ አይደለም።የኮድ + ሙከራዎች፡ [ለጥፍ]

3) የፈተና ግምገማ፡-

ለዚህ ተግባር የዩኒት ፈተና መፃፍ ለምን ከባድ ሆነ? ስውር ሱስ፣ ዓለም አቀፋዊ ደረጃ፣ የጎንዮሽ ጉዳቶች፣ ብዙ ኃላፊነቶች አሉ? ሊሞከር የሚችል ለማድረግ አነስተኛውን ማደስ ይጠቁሙ; ባህሪን አይቀይሩ. ኮድ: [ለጥፍ]

4) ያልተሟላ ሁኔታ ማጠናቀቅ;

የሚከተሉት ተግባራት እና የሚገኙ ሙከራዎች ተሰጥተዋል. የትኛው ባህሪ/የጫፍ መያዣ በፍፁም ያልተፈተሸ (የወሰን ክፍተት) ይዘርዝሩ እና ለእያንዳንዱ ፈተና ይጨምሩ። የተግባር+ ሙከራዎች፡ [ለጥፍ]

ሶስት ጥቃቅን ጉዳዮች

ጉዳይ 1 - ኮዱን በማንጸባረቅ ይሞክሩ። አንድ ገንቢ AI ለማጠጋጋት ተግባር ፈተናን እንዲጽፍ አድርጓል። 10 ሙከራዎች አረንጓዴ ነበሩ። በእውነቱ ፣ ተግባሩ በተሳሳተ አቅጣጫ እየዞረ ነበር ፣ ግን AI ከተግባሩ ውፅዓት የሚጠበቁ እሴቶችን ወስዶ ነበር ፣ ስለሆነም ፈተናዎቹ ስህተቱን “እውነት” አድርገው ይመለከቱታል። የሚጠበቁት ዋጋዎች በ"ደንብ-ተኮር" አብነት በእጅ ሲሰሉ 4 ሙከራዎች ወደ ቀይ ተቀይረዋል እና ትክክለኛው ስህተት ተገለጠ።

ጉዳይ 2 - የሚውቴሽን ቁጥጥር ዋጋ. አንድ ቡድን በ 45 ዩኒት ሙከራዎች ላይ ተመርኩዞ ነበር. በ "ሚውቴሽን ጥንካሬ ፍተሻ" በኮዱ ላይ 20 ጥቃቅን ማስተካከያዎችን ሞክሯል፤ በምርመራ የተያዙት 11 ቱ ብቻ ናቸው። የቀሩት 9 መስተጓጎሎች በጸጥታ አለፉ። ቡድኑ ደካማ ሙከራዎችን አጠናከረ; ትክክለኛው ስሌት ስህተት በሚቀጥለው ልቀት በእነዚህ የተሻሻሉ ሙከራዎች ተይዟል።

ጉዳይ 3 - አለመሞከር የንድፍ ሽታ ነው. AI ለትዕዛዝ ተግባር ሙከራዎችን መፃፍ አልቻለም ፣ ያለማቋረጥ እውነተኛውን የውሂብ ጎታ ይፈልጋል። የ"የሙከራ ግምገማ" አብነት ተግባሩ የውሂብ ጎታ መዳረሻን እንደያዘ ያሳያል። የጥገኝነት መርፌው ሲወገድ ፈተናዎች ሊጻፉ እና ኮዱ የበለጠ ንጹህ ሆነ።

የተለመዱ ስህተቶች

  • የሚጠበቀውን እሴት ከኮድ ማግኘት። AI የተግባር ውጤቱን እንደ "ትክክል" ይቀበላል; የተሳሳተ ኮድ የሚያረጋግጥ ሙከራ.
  • ያለ ማስረገጥ ወይም በጥቃቅን ማስረጃ ሞክር። "ስህተት አልጣለም, አልፏል" ሎጂክ; ምንም ነገር አያረጋግጥም.
  • እጅግ በጣም መሳለቂያ። ሁሉንም ነገር ማሾፍ እና መሳለቂያው የሚመለሰውን ብቻ መሞከር; እውነተኛ አመክንዮ አልተፈተነም።
  • ደስተኛ መንገድ ብቻ። የማለፍ ገደብ ፣ አሉታዊ እና የስህተት ግዛቶች።
  • ኮዱን በመጣስ አለመሞከር። ሚውቴሽን ሳይረጋገጥ አረንጓዴን ማመን።
  • አለመረጋጋትን ችላ ማለት. ከባድ ሙከራን ከመግፋት ይልቅ መጥፎ ንድፍን አለማወቅ እና ማስተካከል።

በማጠቃለያው

የክፍል ሙከራዎች በጣም ፈጣኑ እና ትልቁ የሙከራው ፒራሚድ ንብርብር ናቸው። በጣም ርካሽ በሆነ ጊዜ ስህተቱን ይይዛል. AI የዩኒት ሙከራዎችን ለመስራት በጣም የሚችል ነው፣ ነገር ግን ትልቁ ጉዳቱ የሚጠበቀውን እሴት ከኮዱ እራሱ በማውጣት የተሳሳተ ባህሪን እንደ "ትክክል" የሚወስዱ ሙከራዎችን መፃፍ ነው። መፍትሄው-የመቀበያ ህጎችን ይስጡ ፣ የሚጠበቁትን እሴቶች በእጅ ያሰሉ ፣ የ AAA እና FIRST መርሆዎችን ያስፈጽሙ ፣ በውጪው ዓለም ይሳለቁ እና ትክክለኛውን ሎጂክ ያሂዱ እና እያንዳንዱን ሙከራ በሚውቴሽን ይሞክሩ (ኮዱን በመጣስ)። ለመፈተሽ አስቸጋሪ የሆነ ኮድ ማስተካከል የሚያስፈልገው የንድፍ ምልክት ነው.

የመተግበሪያ ተግባር

ከእራስዎ ፕሮጀክት የንግድ ህግን የያዘ ተግባር ይምረጡ። የመቀበያ ደንቦችን ይፃፉ እና የ AI ፈተናዎችን "በደንብ የሚመራ ዩኒት ሙከራ" አብነት ይጻፉ; የሚጠበቁትን እሴቶች በእጅ እንዲሰሉ ያድርጉ። ከዚያ “ሚውቴሽን ጥንካሬ ማረጋገጫ”ን ይተግብሩ፡ በኮዱ ውስጥ ቢያንስ 5 ትናንሽ እረፍቶችን ያድርጉ እና ምን ያህል ሙከራዎች ወደ ቀይ እንደሚቀየሩ ይለኩ። ላልተያዙ ሙስናዎች አዲስ ፈተና ያክሉ። ምን ያህል መስተጓጎሎች እንደተያዙ (እንደ ሚውቴሽን ውጤት) ሪፖርት ያድርጉ።

የማረጋገጫ ዝርዝር

  • [] የመቀበያ ደንቦቹን ሰጥቻለሁ እና የሚጠበቁትን እሴቶች በእጅ እንዲሰላ አድርጌአለሁ።
  • [ ] ፈተናዎቹ የሚጠበቀውን ዋጋ ከኮዱ እንዳላገኙ አረጋግጣለሁ።
  • [ ] የAAA እና FIRST መመሪያዎችን በመከተል ገለልተኛ ፈተና አቋቁሜአለሁ።
  • [ ] በውጫዊ ጥገኞች ላይ ተሳለቅኩ እና ትክክለኛውን አመክንዮ አስሮጥኩ።
  • [] ገደብ፣ አሉታዊ እና የስህተት ጉዳዮችን ሸፍኛለሁ።
  • [] ኮዱን (ሚውቴሽን) በመጣስ ፈተናዎቹ በእርግጥ እንደሚከላከሉ አረጋግጫለሁ።