એથેરિસ, એક પાયથોન કોડ પરીક્ષણ ટૂલકિટ

ગૂગલે અનાવરણ કર્યું તાજેતરમાં પ્રકાશન એથેરિસ પ્રોજેક્ટ, જેનો વિકાસ છે ખુલ્લા સ્રોત સાધનોનો સમૂહ વિશિષ્ટ પાયથોન કોડના ફઝીંગ પરીક્ષણો માટે અને સી / સી ++ માં લખેલા સીપીથન માટે એક્સ્ટેંશન.

આ પ્રોજેક્ટ લિબફુઝર આધારિત એન્જિનનો ઉપયોગ કરે છે અને અતિરિક્ત ભૂલો શોધવા માટે સરનામાં સેનિટાઇઝર અને અસ્પૃષ્ટ વર્તન સેનિટાઇઝર ટૂલ્સ સાથે જોડાણમાં ઉપયોગ કરી શકાય છે. કોડ અપાચે 2.0 લાઇસન્સ હેઠળ ખુલ્લો છે.

ગૂગલ એથેરિસ વિશે

ગૂગલ એથેરિસના શબ્દોમાં, તે એક ટૂલકીટ છે જેનો ઉપયોગ પાયથોન કોડ અને મૂળ એક્સ્ટેંશનમાં આપમેળે ભૂલો શોધવા માટે થઈ શકે છે. એથેરિસ એ 'કવરેજ સંચાલિત' ફઝર છે, જેનો અર્થ એ છે કે જ્યારે એથેરિસ તમારા પ્રોગ્રામના વિવિધ ઇનપુટ્સને ચાલતા જોતા હોય ત્યારે તેને વારંવાર ચકાસશે અને રસપ્રદ માર્ગો શોધવાનો પ્રયત્ન કરશે.

પાયથોન 2.7 અને પાયથોન 3.3+ માટે કોડ સમીક્ષા સમર્થિત છે, પરંતુ સંપૂર્ણ, માર્ગદર્શિત કવરેજ માટે, અમે પાયથોન 3.8 અને 3.9 શાખાઓનો ઉપયોગ કરવાની ભલામણ કરીએ છીએ, જે હવે cપ્કોડ દ્વારા cપ્કોડ આંકડાને સમર્થન આપે છે.

પ્રક્રિયામાં, એથરિસ ઇનપુટ ડેટાના સંભવિત સંયોજનોની સૂચિ બનાવે છે અને એક અહેવાલ બનાવે છે બધા શોધાયેલ ખામીઓ અને શોધી ન શકાય તેવા અપવાદો પર.

ઉદાહરણ તરીકે, જ્યારે એથેરીસમાં YAML પદચ્છેદન પુસ્તકાલયની તપાસ કરતી વખતે, એવું જાણવા મળ્યું કે કેટલાક YAML કન્સ્ટ્રક્ચર્સ, જેમ કે પૂર્ણાંક મૂલ્યને બદલે "-_" સ્પષ્ટ કરવા અથવા કીની જગ્યાએ સૂચિનો ઉપયોગ કરીને, તેના બદલે એક અનપેક્ષિત અપવાદ ફેંકી દો YAMLErferences માનક ભૂલ.

ફઝ પરીક્ષણ એ પ્રોગ્રામિંગ ભૂલોને શોધવા માટે એક જાણીતી તકનીક છે. આમાંની ઘણી ઓળંગી ભૂલોમાં ગંભીર સુરક્ષા અસરો છે. ગૂગલને આ તકનીકનો ઉપયોગ કરતી વખતે હજારો સુરક્ષા નબળાઈઓ અને અન્ય ભૂલો મળી છે. ફિઝિંગનો ઉપયોગ પરંપરાગત રૂપે સી અથવા સી ++ જેવી મૂળ ભાષાઓમાં થાય છે, પરંતુ ગયા વર્ષે અમે એક નવું પાયથોન ફઝિંગ એન્જિન બનાવ્યું છે. આજે, અમે એથેરિસ ફઝીંગ એન્જિનને ખુલ્લા સ્રોત તરીકે બહાર પાડ્યું છે.

એથેરિસ વર્તન માં તફાવત ઓળખવા માટે પણ વાપરી શકાય છે સમાન કાર્યોને લક્ષ્યમાં રાખતા પુસ્તકાલયોની. ઉદાહરણ તરીકે, પાયથોન પેકેજ "ઇડના" અને પુસ્તકાલય "લિબીડન 2" ની સારાંશ તપાસ, જે આંતરરાષ્ટ્રીયકૃત ડોમેન નામોને ડિકોડ કરવાનું કાર્ય કરે છે, તે મળ્યું છે કે તેઓ હંમેશાં સમાન પરિણામ લાવતા નથી.

એથેરિસ માટે શ્રેષ્ઠ ઉપયોગોમાંનો એક એ ડિફરન્ટલ ડિફ્યુઝર્સ માટે છે. આ ફ fઝર્સ છે જે બે પુસ્તકાલયોની વર્તણૂકમાં તફાવત શોધે છે જે સમાન કાર્ય કરવા માટે છે. એથેરિસ સાથે બનેલા ઉદાહરણમાં ફઝર્સમાંથી એક પાયથોનના "ઇડના" પેકેજને સી "લિબિડન 2" પેકેજ સાથે સરખાવવા માટે બરાબર આવું કરે છે.

ખાસ કરીને, જો ડોમેને યુનિકોડ સિક્વન્સનો ઉપયોગ કર્યો હોય, તો પછી "ઇડના" અને "લિબિડન 2" આંતરરાષ્ટ્રીયકૃત ડોમેન નામને વિવિધ યજમાનોમાં રૂપાંતરિત કરે છે.

સામાન્ય રીતે, એથેરિસ શુદ્ધ પાયથોન કોડમાં ઉપયોગી છે જ્યાં સુધી તમારી પાસે "સાચા" વર્તન શું છે તે દર્શાવવાની રીત છે, અથવા ઓછામાં ઓછું વ્યક્ત કરો કે કઈ વર્તણૂક ચોક્કસપણે સાચી નથી. આ ફિઝરમાં કસ્ટમ કોડ જેટલો જટિલ હોઈ શકે છે જે કોઈ પુસ્તકાલયના આઉટપુટની ચોકસાઈનું મૂલ્યાંકન કરે છે, અથવા કોઈ અનપેક્ષિત અપવાદો ઉભા ન થાય તે તપાસવામાં સરળ છે.

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

જો કોઈ ક્રમ કોઈ અપવાદમાં પરિણમે છે અથવા અપેક્ષિત પ્રતિસાદ સાથે મેળ ખાતો નથી, તો આ વર્તન મોટા ભાગે બગ અથવા નબળાઈને સૂચવે છે.

છેલ્લે, ઉલ્લેખ કર્યો છે એથરિસ વર્ઝન 2.7 અને 3.3+ માં પાયથોન કોડ સાથે કામ કરે છે, જોકે ગૂગલ 3.8+ અને CPython માટે લખેલા મૂળ એક્સ્ટેંશનનો ઉપયોગ કરવાની ભારપૂર્વક ભલામણ કરે છે.

વિંડોઝ હજી સપોર્ટેડ operatingપરેટિંગ સિસ્ટમ્સમાં નથી, તેથી એન્જિન હમણાં માટે ફક્ત લિનક્સ અને મ OSક ઓએસ એક્સ વપરાશકર્તાઓ માટે જ રસ છે.

આ પ્લેટફોર્મ્સ પર તેનો ઉપયોગ કરવા માટે, વિકાસકર્તાઓ પાસે ક્લેંગ કમ્પાઇલર અગ્રભાગીનું વર્તમાન સંસ્કરણ ઇન્સ્ટોલ કરવું આવશ્યક છે.

જો તમે તેના વિશે વધુ જાણવા માંગતા હો, તમે મૂળ નોંધ ચકાસી શકો છો નીચેની કડી


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.