sdet interview questions
Preberite ta popolni vodnik za inženirja za razvoj programske opreme v testnih intervjujih, če želite vedeti, kakšna je oblika in kako odgovoriti na vprašanja o intervjuju SDET, ki so bila zastavljena v različnih krogih:
V tej vadnici bomo spoznali nekaj pogostih vprašanj o intervjujih za vloge SDET. Na splošno bomo videli tudi skupni vzorec razgovorov in delili nekaj nasvetov za odličnost v intervjujih.
Za težave s kodiranjem v tej vadnici bomo uporabili jezik Java, vendar je večina vadnic SDET jezikovno agnostična, anketarji pa so na splošno prilagodljivi glede jezika, ki se ga kandidat odloči za uporabo.
Kaj se boste naučili:
Priročnik za pripravo intervjujev SDET
Intervjuji SDET so v večini vodilnih proizvodnih podjetij precej podobni načinu vodenja razgovorov za razvojne vloge. To je zato, ker naj bi tudi SDET vedeli in razumeli skoraj vse, kar razvijalec ve.
Razlikujejo se merila, na podlagi katerih se presodi sogovornika SDET. Anketarji za to vlogo iščejo veščine kritičnega mišljenja, pa tudi to, ali ima oseba, s katero je opravljen razgovor, praktične izkušnje s kodiranjem in je pozorna na kakovost in podrobnosti.
Tu je nekaj točk, na katere bi se moral v glavnem osredotočiti nekdo, ki se pripravlja na razgovor SDET:
vr slušalke za xbox one s
- Ker so v večini primerov ti razgovori agnostični na področju tehnologije / jezika, morajo biti kandidati pripravljeni na učenje nove tehnologije (in izkoriščanje obstoječih veščin), kadar in ko je to potrebno.
- Morali bi imeti dobre komunikacijske in timske sposobnosti, saj vloge SDET danes zahtevajo komunikacijo in sodelovanje na različnih ravneh z več zainteresiranimi stranmi.
- Bi moral osnovno razumeti različne koncepte zasnove sistema, razširljivost, sočasnost, nefunkcionalne zahteve itd.
V spodnjih odsekih bomo poskušali razumeti splošno obliko intervjuja in nekaj vzorčnih vprašanj.
Oblika inženirja za razvoj programske opreme v testnem intervjuju
Večina podjetij ima včasih najprimernejšo obliko razgovora s kandidati za vlogo SDET, vloga je zelo specifična za ekipo in pričakuje se, da bo oseba ocenjena kot popolnoma primerna za ekipo, za katero je oseba najeta.
Toda tema intervjujev na splošno temelji na spodnjih točkah:
- Telefonska razprava: Pogovor z vodjo in / ali člani ekipe, ki je običajno pregledni krog.
- Pisni krog: S specifičnimi vprašanji za testiranje / testiranje ohišja.
- Krog znanja kodiranja: Preprosta vprašanja o kodiranju (jezikovni agnostik) in kandidat mora napisati kodo na ravni proizvodnje.
- Razumevanje osnovnih razvojnih konceptov: Tako kot koncepti OOPS, SOLID Principles itd.
- Oblikovanje in razvoj ogrodja za avtomatizacijo preskusov
- Skriptni jeziki: Selen, Python, Javascript itd
- Kultura Fit / HR razprava in pogajanja
Vprašanja in odgovori za intervju s SDET
V tem razdelku bomo obravnavali nekaj vzorčnih vprašanj skupaj s podrobnimi odgovori za različne kategorije, ki jih zahteva večina proizvodnih podjetij, ki zaposlujejo za vloge SDET.
Znanje kodiranja
V tem krogu so podane preproste težave s kodiranjem za pisanje v izbranem jeziku. Tu anketar želi oceniti znanje s konstrukcijskimi konstrukcijami, pa tudi obravnavati stvari, kot so robni scenariji in ničelna preverjanja itd.
Občasno lahko anketarji tudi zahtevajo, da zapišejo enote za napisani program.
Poglejmo nekaj vzorčnih težav.
V # 1) Napišite program za zamenjavo 2 številk brez uporabe 3. (začasne) spremenljivke?
Odgovor :
Program za zamenjavo dveh številk:
public class SwapNos { public static void main(String() args) { System.out.println('Calling swap function with inputs 2 & 3'); swap(2,3); System.out.println('Calling swap function with inputs -3 & 5'); swap(-3,5); } private static void swap(int x, int y) { System.out.println('values before swap:' + x + ' and ' + y); // swap logic x = x + y; y = x - y; x = x - y; System.out.println('values after swap:' + x + ' and ' + y); } }Tukaj je rezultat zgornjega delčka kode:

V zgornjem delčku kode je pomembno omeniti, da je izpraševalec posebej zahteval zamenjavo 2 številk brez uporabe tretje začasne spremenljivke. Pomembno je tudi, da je pred oddajo rešitve vedno priporočljivo, da vsaj 2-3 vnosa preberete (ali preskusite) kodo. Poskusimo pozitivne in negativne vrednosti.
Pozitivne vrednosti: X = 2, Y = 3
// swap logic - x=2, y=3 x = x + y; => x=5 y = x - y; => y=2 x = x - y; => x=3 x & y swapped (x=3, y=2)Negativne vrednosti: X = -3, Y = 5
// swap logic - x=-3, y=5 x = x + y; => x=2 y = x - y; => y=-3 x = x - y; => x=5 x & y swapped (x=5 & y=-3)V # 2) Napiši program za obračanje številke?
Odgovor: Zdaj se lahko izjava o problemu sprva zdi zastrašujoča, vendar je vedno pametno vprašati razjasniti vprašanja anketarju (vendar ne veliko podrobnosti). Anketarji se lahko odločijo, da namignejo na težavo, če pa kandidat postavi veliko vprašanj, potem opozori tudi na to, da kandidat nima dovolj časa, da bi problem dobro razumel.
Tu problem od kandidata pričakuje tudi nekaj predpostavk - na primer, število je lahko celo število. Če je vhod 345, mora biti izhod 543 (kar je obratno od 345)
Oglejmo si delček kode za to rešitev:
public class ReverseNumber { public static void main(String() args) { int num = 10025; System.out.println('Input - ' + num + ' Output:' + reverseNo(num)); } public static int reverseNo(int number) { int reversed = 0; while(number != 0) { int digit = number % 10; reversed = reversed * 10 + digit; number /= 10; } return reversed; } }Izhod za ta program proti vhodu : 10025 - Pričakovano bi bilo : 52001

V # 3) Napišite program za izračun faktorja števila?
Odgovor: Factorial je eno najpogostejših vprašanj v skoraj vseh intervjujih (vključno z razgovori za razvijalce)
Pri razgovorih z razvijalci je večji poudarek na programskih konceptih, kot so dinamično programiranje, rekurzija itd., Medtem ko je s strani inženirja za razvoj programske opreme v perspektivi preizkusa pomembno, da obdelujete robne scenarije, kot so največje vrednosti, najmanjše vrednosti, negativne vrednosti itd. In pristop / učinkovitost so pomembni, vendar postanejo sekundarni.
Oglejmo si program za faktorje z uporabo rekurzije in for-zanke z obdelavo negativnih števil in vrnitvijo fiksne vrednosti recimo -9999 za negativna števila, ki jo je treba obravnavati v programu, ki kliče faktorjsko funkcijo.
Glejte spodnji delček kode:
public class Factorial { public static void main(String() args) { System.out.println('Factorial of 5 using loop is:' + factorialWithLoop(5)); System.out.println('Factorial of 10 using recursion is:' + factorialWithRecursion(10)); System.out.println('Factorial of negative number -100 is:' + factorialWithLoop(-100)); } public static long factorialWithLoop(int n) { if(n <0) { System.out.println('Negative nos can't have factorial'); return -9999; } long fact = 1; for (int i = 2; i <= n; i++) { fact = fact * i; } return fact; } public static long factorialWithRecursion(int n) { if(n < 0) { System.out.println('Negative nos can't have factorial'); return -9999; } if (n <= 2) { return n; } return n * factorialWithRecursion(n - 1); } }Poglejmo izhod za - faktorijel z uporabo zanke, faktorijel z uporabo rekurzije in faktorije negativnega števila (kar bi vrnilo privzeto nastavljeno vrednost -9999)

V # 4) Napišite program za preverjanje, ali ima dani niz uravnotežene oklepaje?
Odgovor:
Pristop - To je nekoliko zapleten problem, pri katerem anketar išče nekaj več kot le znanje kodiranja konstruktov. Tu se pričakuje, da bomo za obravnavani problem razmišljali in uporabili primerno podatkovno strukturo.
Mnogi od vas se morda počutijo prestrašeni nad tovrstnimi težavami, saj jih nekateri morda niste slišali, zato se morda tudi, če so preproste, slišijo zapleteno.
Toda na splošno za take težave / vprašanja: Na primer, v trenutnem vprašanju lahko, če ne veste, kaj so uravnotežene oklepaje, zelo dobro vprašate izpraševalca in si nato prizadevate za rešitev, namesto da bi zadeli slepo točko.
Poglejmo, kako pristopiti k rešitvi: Ko razumete, kaj so uravnotežene oklepaje, lahko razmislite o uporabi pravilne strukture podatkov in nato začnete pisati algoritme (korake), preden začnete kodirati rešitev. Velikokrat algoritmi sami rešijo veliko robnih scenarijev in dajo veliko jasnosti, kako bo videti rešitev.
Poglejmo rešitev:
Uravnotežene oklepaje je treba preveriti za dani niz, ki vsebuje oklepaje (ali oklepaje), mora imeti enako število odpiranja in zapiranja ter pozicijsko dobro strukturirano. V kontekstu te težave bomo uporabili uravnotežene oklepaje kot - ‘()’, ‘()’, ‘{}’ - tj. Dani niz ima lahko katero koli kombinacijo teh oklepajev.
Upoštevajte, da je pred poskusom težave dobro pojasniti, ali bo niz vseboval samo znake v oklepaju ali katere koli številke itd. (Saj lahko to nekoliko spremeni logiko)
Primer: Dani niz - '{() {} ()} - je uravnotežen niz, saj je strukturiran in nima enakega števila zapiralnih in odpiralnih oklepajev, ampak niz -' {(}) {} () '- ta niz - čeprav ima enako število oklepajev za odpiranje in zapiranje, to še vedno ni uravnoteženo, ker lahko vidite, da brez zapiranja '(' zaprli smo '}' '(tj. pred zapiranjem zunanjega oklepaja je treba vse notranje oklepaje zapreti)
Za reševanje tega problema bomo uporabili strukturo podatkovnih skladov. Če želite izvedeti več o osnovah sklada, si oglejte tukaj
Sklop je LIFO (vrsta podatkovne strukture Last In First Out), predstavljajte si ga kot kup / kup krožnikov na poroki - najvišjo ploščo boste dvignili vsakič, ko jo uporabite.
Algoritem:
# 1) Navedite niz znakov (ki bo vseboval znake v nizu in jih odvisno od neke logike potisnete in izpustite).
# 2) Prehod skozi vhodni niz in kadar koli
- Obstaja začetni znak oklepaja - tj. ((‘, {‘ Ali ‘(‘ - potisnite znak na Stack.
- Obstaja zapiralni znak - tj. ')', '}', ')' - iz elementa vstavite element in preverite, ali se ujema z nasprotnim zapiralnim znakom - tj. Če je znak '}', potem v Stack pop pričakujte ' {'
- Če se izstreljeni element ne ujema z zaključnimi oklepaji, niz ni uravnotežen in lahko vrnete rezultate.
- V nasprotnem primeru nadaljujte s pristopom push stack in pop (pojdite na korak 2).
- Če je niz prevožen v celoti in je tudi velikost sklada nič, lahko rečemo / sklepamo, da je dani niz uravnotežen niz oklepajev.
Na tej točki se boste morda želeli pogovoriti tudi o pristopu k rešitvi, ki ga imate kot algoritem, in zagotoviti, da je anketar v redu s pristopom.
Koda:
import java.util.Stack; public class BalancedParanthesis { public static void main(String() args) { final String input1 = '{()}'; System.out.println('Checking balanced paranthesis for input:' + input1); if (isBalanced(input1)) { System.out.println('Given String is balanced'); } else { System.out.println('Given String is not balanced'); } } /** * function to check if a string has balanced parentheses or not * @param input_string the input string * @return if the string has balanced parentheses or not */ private static boolean isBalanced(String input_string) { Stack stack = new Stack(); for (int i = 0; i Rezultat zgornjega delčka kode:

Kot smo storili pri prejšnjih težavah s kodiranjem, je dobro, da kodo vedno suho zaženemo z vsaj 1-2 veljavnimi in 1-2 neveljavnimi vnosi in zagotovimo, da so vsi primeri ustrezno obdelani.
OPOMBA: Vedno je dobro, da rešitev razmislite na glas (in ne le v mislih) - in presenetljivo je, da je to pomembna lastnost, ki jo anketarji iščejo. Veliko anketarjev bi lahko preprosto odpravilo algoritem in prešlo na naslednjo izjavo o problemu.
V zgornji rešitvi za kodiranje lahko anketar za intervju z razvijalcem zahteva, da ga reši z uporabo nizov namesto neposrednega sklada (tj. Z uporabo polja kot sklada), toda na splošno gre bolj za to, da je konceptualno jasen in sposoben obvladati vse veljavne in neveljavni vnosi.
Povezano s testnim okoljem za avtomatizacijo
Ta odsek intervjuja je bolj natančen glede testiranja in odgovornosti SDET. Pričakujte vprašanja zasnove avtomatizacije in vprašanja v zvezi z razvojem, prednosti in slabosti uporabe različnih pristopov itd.
Oglejmo si nekaj vzorčnih vprašanj in rešitev za isto.
V # 5) Pojasnite in oblikujte komponente avtomatiziranega okvira za spletno aplikacijo?
Odgovor: To vprašanje je nekoliko subjektivno in anketar namerava oceniti, koliko kandidat ve o zasnovi in razvoju ogrodja. Odgovor na to vprašanje pomaga anketarju, da razume, ali lahko kandidat gradi ali ustvarja okvire po meri iz nič.
Poglejmo nekaj točk, ki bi vam pomagale zgraditi rešitev za to vprašanje:
- Lahko se pogovarjate o različnih vrstah ogrodja, kot so - podatkovni, ključne besede, hibridni okvir.
- Predmetni model strani za shranjevanje podrobnosti različnih elementov na različnih straneh / modulih spletne aplikacije.
- Pogosti moduli, kot so pomožne funkcije, pripomočki, dnevniki itd.
- Moduli za poročanje, kot so ustvarjanje poročil o izvedbi preizkusa, integracija poročil z e-pošto in razporejanje izvedbe testa itd.
Priporočeno branje => Najbolj priljubljeni okviri za avtomatizacijo preskusov
V # 6) Pojasnite strategije testiranja mobilne aplikacije?
Odgovor: Ta vprašanja se običajno postavljajo glede na vlogo. Če je vloga predvsem delo na mobilnih aplikacijah, je vprašanje bolj pomembno. Iz izkušenj se lahko pogovarjate, če ste mobilno testiranje načrtovali kot del svoje trenutne ali prejšnje vloge.
Nekateri napotki za strukturiranje odgovora na to vprašanje bi lahko bili:
- Testiranje na napravah v primerjavi z emulatorji.
- Prepoznavanje in shranjevanje predmetov / elementov na različnih zaslonih - Primer: Predmetni model strani.
- Preizkus obremenitve mobilne aplikacije.
- Lahko se pogovorite o različnih vrstah mobilnih aplikacij, kot so - izvorne aplikacije, hibridne aplikacije, in se pogovorite o strategijah / pristopih, ki bi jih uporabili za njihovo preizkušanje.
Priporočeno branje => Vadnice za testiranje mobilnih aplikacij
V # 7) Načrtite okvir za avtomatizacijo za testiranje API-jev REST?
Odgovor: To je spet subjektivno vprašanje in lahko postavite pojasnilna vprašanja, ali anketar želi, da razvijete okvir za testiranje funkcionalnega vedenja API-ja ali nefunkcionalne zahteve, kot je testiranje obremenitve / zmogljivosti.
Odgovor lahko začnete s spodnjimi točkami:
- Komponente okolja za avtomatizacijo API-jev, kot so lokalna nastavitev, lažna nastavitev API-ja ali gostovanje API-jev.
- Orodja za avtomatizacijo API. Za preverjanje funkcionalnih vidikov API-ja, ki temelji na REST, so na voljo različna orodja. Nekatera takšna orodja so Poštar, Počitek itd. Za podrobnejše podrobnosti o različnih orodjih si oglejte naš članek tukaj .
- Nefunkcionalna avtomatizacija API-jev.
- Načrtovano izvajanje testov avtomatizacije.
- Vključevanje testov avtomatizacije za API-je.
V # 8) Okvirna vprašanja.
Odgovor: Včasih je odvisno od profila, s katerim smo opravili razgovor, morda potrebna, da mora biti kandidat spreten z določenim okvirom - npr. Selen, JMeter itd.
Priporočeno branje => Poštar , Mockito , Specflow , Selen , JMeter
Testiranje povezano
Čeprav redko, lahko pa obstajajo vprašanja glede splošnih praks testiranja, izrazov in tehnologij - na primer resnost napak, prednost, načrtovanje preskusov, ohišje preskusov itd. SDET naj bi poznal vse koncepte ročnega testiranja in bi moral biti seznanjen s pomembnimi terminologijami.
V tem razdelku lahko pričakujete taka vprašanja:
V # 9) Katere so različne komponente testnega načrta?
Odgovor: Od njih se na splošno zahteva, da potrdijo osnovne koncepte testiranja in miselnost. Ti izrazi in dokumenti so nekaj, kar bi morali poznati vsi priročniki za zagotavljanje kakovosti in avtomatizirani SDET.
Tu lahko razpravljate o različnih sestavnih delih načrta preskusa, na primer
- Merila za vstop in izstop
- Obseg: Pogovorite se o testnih funkcijah, ki so v obsegu, in o tem, kaj vse bi bilo avtomatizirano - ali gre le za funkcionalne funkcije ali nefunkcionalne zahteve, kot so razširljivost, zmogljivost itd.
- Časovni trakovi
- Uporabljena orodja
- Dodelitev virov itd
Priporočeno branje => Kako napisati dober testni načrt
V # 10) Kaj opredeljuje in določa prednost in resnost napake?
Odgovor: Prednost in resnost napak je mogoče enostavno razložiti s pomočjo primerov. Recimo, da je funkcija, kot je prijava, pokvarjena in preprečuje uporabnikom dostop do aplikacije - potem gre za visoko prioriteto in težavo. Podobno so lahko primeri napak z nizko resnostjo / visoko prioriteto in različne druge kombinacije.
Na splošno,
- Prednostna naloga pomeni pomembnost vprašanja.
- Resnost označuje vpliv, ki ga ima težava na kupca ali uporabnika aplikacije.
Priporočeno branje => Prednost in resnost okvar
V # 11) Kaj je enakovredna particija? Ponazorite s primerom.
Odgovor: Enakovredna particija je tehnika, ki se večinoma uporablja za testiranje črne škatle za testiranje različnih kombinacij vhodov proti določenemu polju.
Na primer, če preizkušate trgovinsko aplikacijo in želite napisati vse testne scenarije za polje »Količina« - kakšni bi bili različni vhodi, ki bi jih testirali za to polje?
Glede na funkcionalno zahtevo, naj je količina pozitivna celoštevilska vrednost med 1 in 100000. Torej, če želite preizkusiti različne vnose (tako veljavne kot neveljavne), lahko preskusite 1 vhod iz vsake take kategorije.
- Veljavne vrednosti: Med 1 in 100000 -> preizkusite katero koli veljavno vrednost x, tako da je x> 1 in x<100000.
- Mejne vrednosti: Preizkusite dovoljene mejne vrednosti, tj. 1 & 100000.
- Neveljavne vrednosti: Vrednosti, ki ležijo zunaj dovoljenega obsega - t.j. preizkusite eno takšno vrednost za x, tako da je x 100000.
Priporočeno branje => Strategija enakovredne razdelitve
V zvezi z zasnovo sistema
Vprašanja o zasnovi sistema so običajno bolj primerna za razgovore z razvijalci, kjer razvijalca ocenjujejo na podlagi širokega razumevanja različnih splošnih konceptov - kot so razširljivost, razpoložljivost, odpornost na napake, izbira baze podatkov, navajanje itd. Na kratko, morali boste uporabiti celotno izkušenj in sistemskega znanja za odgovor na takšna vprašanja.
Morda pa se vam zdi, da sistem, ki za kodiranje potrebuje dolgoletne izkušnje in na stotine razvijalcev, kako lahko človek odgovori na vprašanje v približno 45 minutah?
Odgovor je: Tu se pričakuje, da se presodi kandidatovo razumevanje in širok spekter znanja, ki ga lahko uporabi med reševanjem zapletenih problemov.
Dandanes se ta vprašanja začenjajo postavljati tudi v intervjujih SDET. Tu pričakovanja ostajajo enaka pričakovanjem razgovora z razvijalci, vendar s sproščenimi merili presoje in večinoma z dvigom lestvice, kjer se lahko kandidat glede na kandidatov odgovor obravnava za naslednjo stopnjo ali ga premakne na nižjo raven.
Na splošno mora kandidat pri vprašanjih o zasnovi sistema poznati spodnje koncepte
- Osnove operacijskih sistemov: Ostranjevanje, datotečni sistemi, navidezni pomnilnik in fizični pomnilnik itd.
- Koncepti mreženja: Komunikacija HTTP, sklad TCP / IP, omrežne topologije.
- Koncepti prilagodljivosti: Horizontalno in vertikalno skaliranje.
- Koncepti sočasnosti / navoja
- Vrste zbirk podatkov: SQL / Brez podatkovnih baz SQL, kdaj uporabiti katero vrsto zbirke podatkov, prednosti in slabosti različnih vrst baz podatkov.
- Tehnike razprševanja
- Osnovno razumevanje SKP izrek, ostrenje, razdelitev itd.
Oglejmo si nekaj vzorčnih vprašanj
V # 12) Oblikujte sistem za krajšanje URL-jev, kot je majhen URL ?
Odgovor: Mnogi kandidati morda sploh ne vedo za sisteme za skrajšanje URL-jev. V tem primeru je v redu, če anketarja vprašate o izjavi problema, namesto da se potopite brez razumevanja.
Preden sploh odgovorijo na taka vprašanja, naj kandidati oblikujejo rešitev in napišejo točke, nato pa se o rešitvi začnejo pogovarjati z anketarjem.
Na kratko se pogovorimo o rešitvi
a) Pojasnite funkcionalne in nefunkcionalne zahteve
Funkcionalne zahteve: Funkcionalna zahteva je zgolj z vidika stranke, gre za sistem, ki se hrani z velikim (dolgim) URL-jem, rezultat pa mora biti skrajšani URL.
Ko dostopate do skrajšanega URL-ja, mora uporabnika preusmeriti na izvirni URL. Na primer - poskusite skrajšati dejanski URL na spletni strani https://tinyurl.com/, vnesite vhodni URL, kot je www.softwaretestinghelp.com, in dobili bi majhen URL, kot je https://tinyurl.com/shclcqa
Nefunkcionalne zahteve: Sistem bi moral biti zmogljiv v smislu preusmerjanja z milisekundno zakasnitvijo (kot dodaten poskok za uporabnika, ki dostopa do izvirnega URL-ja).
- Skrajšani URL-ji morajo imeti nastavljiv čas poteka.
- Skrajšani URL-ji ne smejo biti predvidljivi.
b) Ocena zmogljivosti / prometa
To je zelo pomembno z vidika vseh vprašanj o zasnovi sistema. Ocena zmogljivosti v bistvu določa pričakovano obremenitev, ki jo bo sistem dobil. Vedno je dobro začeti s predpostavko in se pogovoriti z anketarjem. To je pomembno tudi z vidika načrtovanja velikosti baze podatkov, ne glede na to, ali je sistem težaven za branje ali za pisanje itd.
Naredimo nekaj številk zmogljivosti za primer skrajševalnika URL-jev.
Denimo, da bo na dan prišlo do 100.000 novih zahtev za krajšanje URL-jev (z razmerjem branja in pisanja 100: 1 - tj. Za vsak 1 skrajšani URL bomo imeli 100 zahtev za branje proti skrajšanemu URL-ju)
Torej bomo imeli,
100k write requests/day => 100000/(24x60x60) => 1.15 request/second 10000k read requests/day => 10000000/(24x60x60) => 1157 requests/second c) Pomnilnik in pomnilnik
Po številu zmogljivosti lahko te številke ekstrapoliramo, da dobimo,
- Zmogljivost shranjevanja, ki bi bila potrebna za prilagoditev pričakovani obremenitvi, Na primer, lahko načrtujemo zasnovo rešitve za shranjevanje, ki bo podpirala zahteve do 1 leta.
Primer: Če vsak skrajšani URL porabi 50 bajtov, bi bilo skupno število podatkov / shrambe, ki bi jih potrebovali v enem letu:
=> total write requests/day x 365 x 50 / (1024x1024) => 1740 MB - Pomisleki glede pomnilnika so pomembni za načrtovanje sistema z bralčeve perspektive. torej za sisteme, ki so težki za branje - na primer tistega, ki ga poskušamo zgraditi (ker bi bil URL ustvarjen enkrat, vendar bi bil do njega dostopan večkrat).
Težki sistemi za branje običajno uporabljajo predpomnjenje, da postanejo bolj učinkoviti in se izognejo branju iz stalne shrambe, da prihranijo pri branju / vhodu / izhodu.
Predpostavimo, da želimo shraniti 60% naših zahtev za branje v predpomnilnik, tako da bi čez leto potrebovali 60% celotnega branja v letu x bajtov, ki jih zahteva vsak vnos
=> (60/100) x 100000 x 365 x (50/1024x1024) => 1045 MB ~ 1GBTorej, glede na naše številke zmogljivosti, bi ta sistem zahteval približno 1 GB fizičnega pomnilnika
d) Ocene pasovne širine
Ocene pasovne širine so potrebne za analizo hitrosti branja in pisanja v bajtih, ki bi bile potrebne za izvajanje sistema. Naredimo ocene glede na številke zmogljivosti, ki smo jih sprejeli.
Primer: Če vsak skrajšani URL porabi 50 bajtov, bi bila skupna hitrost branja in pisanja, ki bi jo potrebovali, naslednja:
WRITE - 1.15 x 50bytes = 57.5 bytes/s READS - 1157 x 50bytes = 57500 bytes/s => 57500 / 1024 => 56.15 Kb/s e) Oblikovanje sistema in algoritem
To je v bistvu glavna poslovna logika ali algoritem, s katerim bi izpolnili funkcionalne zahteve. V tem primeru želimo za določen URL ustvariti edinstvene skrajšane URL-je.
Različni pristopi, ki bi jih lahko uporabili za ustvarjanje skrajšanih URL-jev, so:
Razpršitev: Ustvarjanje skrajšanih URL-jev si lahko zamislimo tako, da ustvarimo razpršitev vhodnega URL-ja in damo hash-ključ kot skrajšani URL.

Ta pristop ima lahko nekaj težav, če obstajajo različni uporabniki storitve, in če vnesejo isti URL, bo rezultat enak skrajšani URL.
Vnaprej ustvarjeni skrajšani niziin dodeljena URL-jem, ko je storitev poklicana: Drug pristop je lahko vrnitev vnaprej določenega skrajšanega niza iz področja že ustvarjenih nizov.

Storitveni API-ji: Sistem krajšanja URL-jev lahko predstavljamo kot niz API-jev na osnovi REST, ki imajo naslednje končne točke:
- createUrl (URL niza, čas izteka datuma in časa): Ta končna točka ustvari in vrne skrajšani URL s trajanjem veljavnosti, kot je določeno v vnosu.
- retrieveUrl (Niz skrajšanUrl): Ta končna točka pridobi URL, ki ga je treba preusmeriti na dani skrajšani URL.
f) skaliranje in sočasnost
Prilagajanje velikosti je pomemben vidik z vidika nefunkcionalnih zahtev.
Ukvarja se s tem, kako lahko sistem
- Tehtnica pod obremenitvijo: Sistem bi moral biti sposoben graciozno meriti pod obremenitvijo in ne samo prenehati delovati po nepričakovanem povečanju obremenitve.
Priporočeno branje => Tehnike skaliranja
- Kako zmogljiv je lahko sistem, na primer: če se sistem dolgo časa uporablja s trajno zmogljivostjo, bi se zmogljivost sistema poslabšala ali pa ostane stabilna?
Vprašanj za zasnovo sistema je lahko veliko, kot je spodaj, toda na splošno bi vse to preizkusilo širše razumevanje kandidatov različnih konceptov, o katerih smo razpravljali v rešitvi sistema za krajšanje URL-jev.
V # 13) Oblikujte video platformo, kot je Youtube.
Odgovor: Tudi na to vprašanje je mogoče pristopiti na podoben način, kot smo že razpravljali o vprašanju TinyUrl (in to velja za skoraj vsa vprašanja o zasnovi sistema). Eden od razločevalnih dejavnikov bi bil pogled / podrobnosti sistema, ki ga želite zasnovati.
Torej za Youtube vsi poznamo njegovo aplikacijo za pretakanje videoposnetkov in ima veliko funkcij, na primer uporabniku omogoča nalaganje novih videoposnetkov, pretakanje spletnih oddaj v živo itd. Medtem, ko načrtujete sistem, morate uporabiti zahtevane komponente sistemske zasnove. V tem primeru bomo morda morali dodati komponente, povezane z zmožnostmi pretakanja videoposnetkov.
Lahko razpravljate o točkah, kot so
- Skladiščenje: Kakšno bazo podatkov bi izbrali za shranjevanje video vsebin, uporabniških profilov, seznamov predvajanja itd.?
- Varnost in avtentikacija / avtorizacija
- Predpomnjenje: Ker bi morala biti platforma za pretakanje, kot je youtube, zmogljiva, je predpomnjenje pomemben dejavnik pri oblikovanju takšnega sistema.
- Sočasnost: Koliko uporabnikov lahko vzporedno pretaka video?
- Druge funkcionalnosti platforme, kot je storitev priporočanja videoposnetkov, ki uporabnikom priporoča / predlaga naslednje videoposnetke, ki si jih lahko ogledajo itd.
V # 14) Oblikujte učinkovit sistem za upravljanje 6 dvigal in zagotovite, da mora oseba med čakanjem na dvigalo počakati min ?
Odgovor: Te vrste vprašanj o zasnovi sistema so na nižji ravni in bi pričakovali, da kandidat najprej razmisli o sistemu dvigala in navede vse možne funkcije, ki jih je treba podpirati, in kot rešitev oblikuje / ustvari razrede in relacije / sheme DB.
Z vidika SDET bi anketar samo pričakoval glavne razrede, za katere menite, da bi jih imela vaša aplikacija ali sistem, in osnovne funkcije bi bile obravnavane s predlagano rešitvijo.
Poglejmo si različne funkcionalnosti sistema dvigal, ki bi jih pričakovali
Lahko postavite pojasnilna vprašanja, kot je
- Koliko nadstropij je?
- Koliko dvigal je?
- Ali so vsa dvigala servisna / potniška dvigala?
- Ali so vsa dvigala nastavljena tako, da se ustavijo v vsakem nadstropju?
Tu so različni primeri uporabe, ki veljajo za preprost sistem dvigal:

Kar zadeva osnovne razrede / predmete tega sistema, lahko razmislite o:
- Uporabnik: Ukvarja se z vsemi lastnostmi uporabnika in dejanji, ki jih lahko izvede nad objektom dvigala.
- Dvigalo: Elevator Posebne lastnosti, kot so višina, širina, številka_serijske_številke.
- Vrata dvigala: Vse stvari, povezane z vrati, kot so vrata, vrsta vrat, samodejna ali ročna itd.
- Elevator_Button_Control: V dvigalu so na voljo različni gumbi / krmilniki in različna stanja, v katerih so lahko ti gumbi.
Ko končate z oblikovanjem razredov in njihovih odnosov, se lahko pogovorite o konfiguriranju shem DB.
Druga pomembna komponenta sistema dvigala je sistem za prireditve. Lahko se pogovorite o izvajanju čakalnih vrst ali v bolj zapleteni nastavitvi, ki ustvarja tokove dogodkov z uporabo Apache Kafke, kjer so dogodki dostavljeni v ustrezne sisteme, na katere je treba ukrepati.
Eventing System je pomemben vidik, saj hkrati dvigalo uporablja več uporabnikov (v različnih nadstropjih). Zato bi morale biti zahteve uporabnikov postavljene v čakalno vrsto in vročene v skladu s konfigurirano logiko v krmilnikih dvigala.
V # 15) Oblikujte Instagram / Twitter / Facebook.
Odgovor: Vse te platforme so na nek način povezane, saj omogočajo, da so uporabniki na takšen ali drugačen način povezani in delijo stvari prek različnih vrst medijev - na primer sporočil / videoposnetkov in klepetov.
Torej, za te vrste aplikacij / platform za družabna omrežja morate med razpravo o oblikovanju takšnih sistemov vključiti spodnje točke (poleg tega, o čemer smo razpravljali pri oblikovanju sistema za skrajšanje URL-jev):
- Ocena zmogljivosti: Večina teh sistemov bi bila težka za branje, zato je potrebna ocena zmogljivosti in bi nam omogočila, da zagotovimo ustrezno konfiguracijo strežnika in baze podatkov, ki bo služila zahtevani obremenitvi.
- Shema DB: Glavne pomembne sheme DB, o katerih je treba razpravljati, so - Podrobnosti o uporabniku, Uporabniški odnosi, Sheme sporočil, Sheme vsebine.
- Strežniki za gostovanje videov in slik: Večina teh aplikacij ima videoposnetke in slike, ki si jih uporabniki delijo. Zato je treba strežnike za gostovanje videov in slik konfigurirati po potrebi.
- Varnost: Vse te aplikacije bi morale zagotavljati visoko raven varnosti zaradi podatkov o uporabniku / osebnih podatkov uporabnikov, ki jih hranijo. Kakršen koli poskus vdora, SQL Injection na teh platformah ne bi smel biti uspešen, saj bi lahko stalo izguba podatkov milijonov kupcev.
Težave, ki temeljijo na scenariju
Težave, ki temeljijo na scenariju, so na splošno namenjene starejšim, kjer so podani različni scenariji v realnem času, kandidat pa jih vpraša, kako razmišljajo o takšni situaciji.
V # 16) Glede na to, da je treba kritični hitri popravek izdati čim prej - kakšno strategijo testiranja bi imeli?
Odgovor: Zdaj, tukaj anketar v bistvu želi razumeti
- Kako in kakšne testne strategije si lahko omislite?
- Kakšno pokritost bi storili za hitri popravek?
- Kako bi potrdili po uvedbi hitri popravek? itd.
Če želite odgovoriti na takšna vprašanja, lahko bi uporabili resnične situacije, če bi se lahko povezali s težavo. Omeniti morate tudi, da brez ustreznega testiranja ne bi bili pripravljeni izdati nobene kode v proizvodnjo.
Za kritične popravke morate vedno sodelovati z razvijalcem in poskusiti razumeti, na katera področja bi to lahko vplivalo, ter pripraviti neproizvodno okolje za ponovitev scenarija in preizkus popravka.
Tu je pomembno tudi omeniti, da bi še naprej spremljali popravek (z orodji za nadzor, nadzorne plošče, dnevniki itd.) Po uvajanju, da bi videli kakršno koli neobičajno vedenje v produkcijskem okolju in zagotovili, da ne bo nobenega negativnega vpliva popravka, ki je Končano.
Morda obstajajo tudi druga vprašanja, ki večinoma razumejo kandidatov pogled na avtomatizacijsko testiranje, roke dostave itd. (In ta vprašanja se lahko razlikujejo od podjetja do podjetja, pa tudi glede delovne dobe vloge. Na splošno se ta vprašanja postavljajo na višjo / vodilno raven vloge)
V # 17) Bi žrtvovali popolno testiranje, da bi izdelek hitro izdali?
Odgovor: Ta vprašanja običajno vključujejo izpraševalca, da razume vaše misli z vidika vodenja in katere stvari bi lahko ogrozili in ali bi bili pripravljeni namesto manj časa izdati napačen izdelek.
Odgovore na ta vprašanja je treba utemeljiti z dejanskimi izkušnjami kandidata.
Na primer, lahko bi omenili, da ste v preteklosti morali poklicati, da ste izdali kakšen hitri popravek, vendar ga zaradi nerazpoložljivosti integracijskega okolja ni bilo mogoče preizkusiti. Torej ste ga izdali nadzorovano - tako, da ste ga predstavili na manjši odstotek in nato spremljali dnevnike / dogodke ter nato sprožili popolno uvajanje itd.
V # 18) Kako bi ustvarili strategijo avtomatizacije za izdelek, ki sploh nima preizkusov avtomatizacije?
Odgovor: Te vrste vprašanj so odprtega tipa in so na splošno dober kraj za razpravo tako, kot želite. Prav tako lahko predstavite svoje veščine, znanje in tehnološka področja, ki so vaša moč.
Na primer, če želite odgovoriti na tovrstna vprašanja, lahko navedete primere strategije avtomatizacije, ki ste jih sprejeli med gradnjo izdelka v prejšnji vlogi.
Na primer, lahko omenite točke, kot so
- Ker je izdelek zahteval avtomatizacijo od začetka, ste imeli dovolj časa za razmislek in oblikovanje ustreznega avtomatiziranega okvira, pri čemer ste izbrali jezik / tehnologijo, ki bi jo imela večina ljudi, da bi se izognili uvajanju novega orodja in izkoristili obstoječe znanje.
- Začeli ste z avtomatizacijo najosnovnejših funkcionalnih scenarijev, za katere se je štelo, da so P1 (brez katerih nobena izdaja ne bi mogla preživeti).
- Razmišljali ste tudi o testiranju učinkovitosti in razširljivosti sistema z avtomatiziranimi testnimi orodji, kot so JMETER, LoadRunner itd.
- Razmišljali ste o avtomatizaciji varnostnih vidikov aplikacije, kot je navedeno v OWASP Varnostni standardi.
- Avtomatizirane teste ste integrirali v gradbeni cevovod za zgodnje povratne informacije itd.
Team Fit & Culture Fit
Ta krog je na splošno odvisen od podjetja do podjetja. Toda potreba / potreba tega kroga je razumevanje kandidata z vidika timske in organizacijske kulture. Namen teh vprašanj je tudi razumeti kandidatovo osebnost in njihov pristop do dela / ljudi itd.
Na splošno so vodje kadrov in zaposlovanja tisti, ki vodijo ta krog.
Vprašanja, ki se običajno pojavijo med tem krogom, so:
V # 19) Kako rešujete konflikte v trenutni vlogi?
Odgovor: Nadaljnja razlaga je naslednja: predpostavimo, da imate konflikt s šefom ali neposrednimi člani ekipe, kakšne korake sprejmete za njihovo reševanje?
Za to vrsto vprašanj čim bolj utemeljite z resničnimi primeri, ki bi se lahko zgodili v vaši karieri v sedanjih ali prejšnjih organizacijah.
Omenite lahko stvari, kot so:
- Vse konflikte radi razrešite v najkrajšem možnem času, ki nastanejo zaradi profesionalnih razlogov (in zaradi teh ne bi želeli vplivati na vaše osebne odnose).
- Omenite lahko, da na splošno poskušate učinkovito komunicirati in se z osebo pogovoriti / pogovoriti, da bi rešili morebitne razlike / težave.
- Omenite lahko, da bi se, če se stvari začnejo poslabšati, obrniti na pomoč starejše osebe / vašega vodje in dobiti njegove prispevke.
Spodaj so navedeni drugi primeri vprašanj o fit-ekipi / kulturi: na večino je treba odgovoriti s podobnim pristopom, ki smo ga obravnavali za zgornje vprašanje. Pogovor o scenarijih iz resničnega življenja je tukaj ključnega pomena, saj ga lahko anketar bolje poveže kot no.
V # 20) Kakšno ravnovesje med poklicnim in zasebnim življenjem pričakujete od nove vloge, za katero veljate, da ste najeti?
Odgovor: Ker je Hiring Manager nekdo, ki ve, kaj zahteva vloga, koliko dodatnih naporov bo včasih potrebno, zato na splošno anketar poskuša ugotoviti, ali se vaša pričakovanja bistveno razlikujejo od pričakovanih vloge.
Recimo, da rečete da se ne želite raje udeleževati nočnih sestankov in vloga pričakuje, da boste močno sodelovali med ekipo, ki sedi v drugem časovnem pasu, potem lahko anketar sproži razpravo, da so to pričakovanja od vloge - ali boste lahko prilagoditi? itd.
Torej, to je bolj nenavaden pogovor, vendar z vidika anketarja želijo razumeti vaša pričakovanja glede ocene vaše kandidature za položaj, za katerega ste opravili razgovor.
V # 21) Kateri so vaši hobiji poleg dela?
Odgovor: Ta vprašanja so povsem subjektivna in individualno specifična in so na splošno koristna, da se kandidat počuti sproščeno in lahko in sproži priložnostne razprave.
Na splošno bi bili odgovori na ta vprašanja lahko naslednji - radi berete določeno zvrst, imate radi glasbo, prejeli ste neko nagrado za kakšno prostovoljno / človekoljubno dejavnost itd. Tudi ta vprašanja se na splošno postavljajo v krogu kadrov (in manj verjetno, da ga bo vprašala tehnična oseba).
V # 22) Koliko časa ste pripravljeni proaktivno posvetiti učenju novih orodij in tehnologij?
Odgovor: Tu anketar presoja vašo pripravljenost, da se naučite novih stvari, če se vam vrže kaj nenavadnega ali novega. Anketarju tudi daje vedeti, da ste proaktivni? Ste pripravljeni vlagati vase in v svojo kariero? itd.
Torej, medtem ko odgovarjate na taka vprašanja - bodite iskreni in svoje odgovore utemeljite s primeri - Na primer, Lahko bi omenili, da ste se lani prijavili za certifikat za Java in se pripravljali zunaj službe, tako da ste si vsak teden vzeli nekaj ur.
Zaključek
V tem članku smo razpravljali o inženirju za razvoj programske opreme v postopku testnega razgovora in vzorčnih vprašanjih, ki jih kandidati na splošno postavljajo v različnih organizacijah in profilih. Na splošno so razgovori SDET po naravi zelo široki in so zelo odvisni od podjetja do podjetja.
Toda postopki intervjujev so podobni tistim za profil razvijalcev z večjim poudarkom na okvirih kakovosti in avtomatizacije.
Pomembno je razumeti, da se danes podjetja manj osredotočajo na kateri koli jezik ali tehnologijo, ampak bolj na široko razumevanje konceptov in zmožnost prilagajanja orodjem / tehnologijam, ki jih zahteva podjetje.
Lepe želje za vaš intervju SDET!
Priporočeno branje
- Kaj je SDET: vedite razliko med testerjem in SDET
- Vprašanja in odgovori za intervjuje
- Vprašanja in odgovori za preizkušanje ETL
- Nekaj zapletenih ročnih preizkusov Vprašanja in odgovori
- Vprašanja za intervju z Spockom (odgovori) (najbolj priljubljeni)
- 25 najboljših agilnih preizkusnih vprašanj in odgovorov
- 32 najboljših vprašanj in odgovorov za intervju z Datastage
- Top 20+ .NET vprašanj in odgovorov za intervjuje



