A / B-testaus laskutetaan usein tieteelliseksi tapaksi validoida suunnittelupäätöksiä. A / B-testaus on satunnaisesti kutsuttu split-testaukseksi yksinkertainen prosessi, joka näyttää olevan litteä konkreettisia tuloksia:

Luo kaksi muunnosta suunnittelualalla, vaihda ne satunnaisesti sivustossasi ja kirjaa, miten käyttäjät reagoivat, vertaa tuloksia ja toteuttamaan kummankin muunnelman parhaiten. Se on järkevää.

Klassinen esimerkki on: punainen painike vs. vihreä painike, jota käytetään enemmän? Mielenkiintoisempi kysymys on kuitenkin: vihreä painike vs. sama vihreä painike, jota käytetään enemmän?

Mitä tapahtuu, kun A / B testataan kaksi identtistä vaihtelua? A / A-testi, jos haluat.

Vihreä painike vs. vihreä painike

Jotta voidaan testata minkä tahansa A / B-testin voimassaoloa, tarvitsemme testin, jolla on "oikea" vastaus. Tarvitsemme oikean vastauksen, koska haluamme tietää, että kaikki asiat ovat yhtä suuria, kuinka todennäköistä on se, että A / B-testi tuottaa tuloksen, ja sen vuoksi meidän on tiedettävä, mitä tulos odottaa.

Jos A / B testataan kaksi samanlaista näppäintä, tuloksen pitäisi olla kuollut lämpö

Oletetaan siis, että testaamme vihreää painiketta samalla vihreällä painikkeella, ja että painike on niin houkutteleva, että 100% käyttäjistä napauttaa sitä.

(Prosentti ei tosiasiassa ole väliä, se voi olla 14,872%, mikä merkitsee sitä, että koska painikkeet ovat samanlaisia, tapinopeuden pitäisi olla sama.)

Jos A / B testataan kaksi samanlaista näppäintä, tuloksen pitäisi olla kuollut lämpö.

Kolikkotutkimus

Heitä kolikko. Kumpi puoli tulee ylös, päätä tai jälkiä? Tiedämme, että kaksi puolta on identtisiä, joten 50-50 mahdollisuutta.

Jos heitämme kolikon kahdesti, tiedämme, että on olemassa kolme mahdollista tulosta: 2 päätä, 2 kääriä, 1 pää ja 1 häntää. Ja niin edelleen…

Sanotaan, että kolikonveto on A / A-testi; kertoimet, jotka tulevat ylöspäin, ovat samanlaisia ​​kuin paluupuolen nousu, samoin kuin kummankin vihreän nappulan kertoimet ovat samat.

Joten kirjoitetaan pikakuvake selaimessa (koska useimmat A / B-testaukset tapahtuvat selaimessa) simuloida käyttäjiä napauttamalla yhtä painiketta tai muuta, riippuen siitä, kumpaa heitä esitellään.

Muista: testaamme kaksi samanlaista painikkeen muunnosta, ja tapa, jolla tiedämme, että ne ovat identtisiä, on se, että käsittelemme niiden todennäköisyyttä käyttää identtisiä. Kaikki, mitä etsimme, on johdonmukainen (ja siksi oikea) tulos.

Ensinnäkin tarvitsemme HTML-taulukon tallentamaan tulokset, taulukko näyttää tältä:

#HeadsTailsDifferenceMargin of Error

Ensimmäisessä sarakkeessa tallennetaan testin numero (kaikki hyvät A / B-testit toistetaan tulosten tarkistamiseksi, joten toistamme testin muutaman kerran). Seuraavaksi tallennetaan Heads- tulosten määrä, sitten Tails- tulosten määrä. Sen jälkeen sarake on kahden tuloksen välinen ero (jonka pitäisi olla nolla). Sitten tallennamme virhemarginaalin (joka taas on 0%). Pöydän alla tulostamme yhteenveto, kaikkien tulosten keskiarvo ja pahimmassa tapauksessa tulos.

Tässä on käsikirjoitus:

var bestOf = 12, // the number of times we want to run the testtestRepeat = 12, // the number of times we’d like to repeat the testtestCount = 0, // the number of the current testtestInterval = setInterval(performCoinToss, 100), // call the coin toss functiontotalDifference = 0, // used for calculating the average differenceworstDifference = 0; // the worst casefunction performCoinToss(){testCount++; // increment the current testvar testCounter = bestOf, // the current iteration of the testheadsCounter = 0, // the total number of times the script came up with "heads"tailsCounter = 0; // the total number of times the script came up with "tails"while(testCounter--) // loop 'testCounter' times{Math.round(Math.random()) ? headsCounter++ : tailsCounter++; // finds 0 or 1 randomly, if 1 increments headsCounter, otherwise increments tailsCounter}var difference = Math.abs(headsCounter - tailsCounter), // the difference between the twoerror = (difference / bestOf) * 100; // the error percentagedocument.getElementById("results").innerHTML += "" + testCount + "" + headsCounter + "" + tailsCounter + "" + difference + "" + error + "%"; // add result to tabletotalDifference += difference; // increments the difference counterworstDifference = difference > worstDifference ? difference : worstDifference; // updates worstDifferenceif(--testRepeat == 0){var averageDifference = totalDifference / testCount, // finds average differenceaverageError = (averageDifference / bestOf) * 100; // finds the average error margindocument.getElementById("summary").innerHTML = "

Average difference: " + averageDifference + "

Average margin of error: " + averageError + "%

Worst Case: " + worstDifference + "

"; // write summary to pageclearInterval(testInterval); // if the test has been repeated enough times, clear the interval}}

Koodia kommentoidaan, joten tässä ovat vain kohokohtia:

Ensin määritimme joitain muuttujia, mukaan lukien kuinka monta kertaa haluamme heittää kolikon (bestOf) ja kuinka monta kertaa haluamme toistaa testin (testRepeat).

Spoiler-hälytys: aiomme päästä melko korkeisiin silmukoihin, jotta vältetään kenenkään selaimen rikkominen, suoritamme testin välein 100 ms: n välein.

PerformCoinToss- toiminnon sisällä kierrämme vaaditun lukumäärän, jokaisen silmukan iteraation avulla käytämme JavaScriptin satunnaista toimintoa generoimalla joko 1 tai 0, mikä vuorostaan ​​lisää joko headsCounterin tai tailsCounterin .

Seuraavaksi kirjoitamme tuloksen tästä testistä taulukkoon.

Lopuksi, jos testi on toistettu niin monta kertaa, kuin me haluamme, löydämme keskiarvot, ja pahimmassa tapauksessa, kirjoita ne yhteenvetoon ja kirjoita väli.

Tässä on tulos . Kuten näette keskimääräisen eron, se on sinulle erilainen, mutta kun kirjoitan tämän, keskimääräinen ero on 2.8333333333333335, keskimääräinen virhe on siis 23.611111111111114%.

Yli 23%: n virhe ei anna luottamusta, varsinkin kun tiedämme, että ero on 0%. Mikä pahempaa on, että pahimmassa tapauksessa tulos on 8, joka on 10-2 päiden puolesta.

Käyttämällä joitakin realistisia numeroita

Okei, niin että testi ei ollut reilua. Todellinen A / B-testi ei koskaan väitä saavuttavan ratkaisevaa tulosta vain 12 käyttäjältä.

A / B-testaus käyttää jotain nimitystä "tilastollinen merkitys", mikä tarkoittaa, että testi on suoritettava tarpeeksi aikaa saavuttaakseen toimivan tuloksen.

Joten kaksinkertaistetaan bestOf- muuttuja ja näemme, kuinka kauas meidän on mentävä saavuttamaan virhevirhe , alle 1% - vastaava 99 prosentin luottamus.

Korkeimmillaan 24: ssä (kirjoitushetkellä) keskimääräinen ero on 3.1666666666666665, joka on 13.194444444444445%. Askel oikeaan suuntaan! Kokeile itseäsi (tulosi vaihtelevat).

Let's kaksinkertaistaa sen uudelleen. Tällä kertaa keskimääräinen ero 6.666666666666667, jonka marginaali virheelle on 13.88888888888889%. Mikä pahempaa, pahin tapaus on 16, se on virhe 33.33333333333333%! Sinä pystyt kokeile sitä myös itsellesi.

Itse asiassa mitään palkintoja siitä, että voimme jatkaa: paras 96 , parasta 192 , paras 384 , paras 768 , parasta 1536 , paras 3072 , paras 6144 , paras 12288 , paras 24576 , paras 49152 , paras 98304 .

Lopulta parhaimmillaan 98304, pahin tapaus laskee alle 1%. Toisin sanoen voimme olla varmoja siitä, että testi on tarkka.

Niinpä A / A-testi, jonka tuloksena tiesimme etukäteen, otti näytteen koon 98 304, jotta saavutettaisiin hyväksyttävä virhe.

3 000 000 000 dollarin painike

Kun A / B-testausta käsitellään, joku muistuttaa ystävän ystävää, joka A / B testasi yksittäisen painikkeen hänen sivustollaan ja teki nopeasti jonkin verran epätodennäköisen voiton (napin todellinen dollarin arvo nousee joka kerta, kun kuulen tarina).

Näissä tarinoissa painikkeita testataan yleensä mikro-kopioilla, "Download my ebook" vs. "Download my free ebook". Ei pitäisi olla yllätys, että jälkimmäinen voittaa. Se on parannus, jota jokainen hyvä copywriter tekisi. Sopivampi A / B-testi olisi "Lataa minun eBook" vs. "Lataa ebook" (rahani on jälkimmäinen).

Jos huomaat, että tulos on voimakkaasti painostettu johonkin vaihtoehdosta, se viittaa siihen, että jotain on hyvin väärin jonkin variaationa. Useammin hyvä tulos on parannus alle 5%, mikä aiheuttaa ongelmia, jos testaat noin 1000 käyttäjää (virhemarginaali on noin 5%).

Mitä hyödyllisempi testi on, sitä tiukempaa voittomarginaalia toiselle variaatiolle tai toiselle. Kuitenkin mitä voimakkaampaa voiton marginaali, sitä suurempaa otoskokoa tarvitaan antamaan sinulle hyväksyttävästi pieni virhe.

Valehtelee, kauhistuneita valheita ja A / B-testausta

Mark Twain, joka mahdollisesti viittasi Disraeliin, käytti kerran lauseita: valheita, kauhuvia valheita ja tilastoja. Hänen mukaansa tilastojen osoittama tilanne ei välttämättä ole totta. Tilastoja voidaan käyttää osoittamaan mitä haluat heidän haluavansa.

A / B-testaus antaa sinulle tuloksen, mutta se on tulos, joka kertoo enemmän sinusta ja siitä, mitä olette odottanut, kuin asiakkaillesi

A / B-testien vaarallisin asia on se, että se voi todistaa mitä tahansa sitä haluamaasi; se voi tuottaa vääriä positiivisia ja antaa meille mahdollisuuden erottaa mallit, joita ei ole tuettu asianmukaisesti.

Lisäksi A / B-testi voi osoittaa, että vihreä painike ylittää punaisen napin, mutta mitä sinistä painiketta? Jopa onnistunut A / B-testaus antaa meille mahdollisuuden validoida suunnittelupäätöksemme itse testin yhteydessä.

Jos A / B-testi toimii tarkoitetulla tavalla, tarvitsemme kaksi vastakkaista ehtoa:

  1. vaihtoehtojen välillä ei saa olla minimaalisia vaihteluja, joten testiä ei painoteta mieltymyksessämme;
  2. näytteen koon pitäisi olla riittävä, että virheen marginaali on pienempi kuin tuloksen voimakkuus.

Valitettavasti useimmilla sivustoilla ei ole kooltaan riittävän suurta riittävän pienen virheen saavuttamista. Ja koska emme pysty lisäämään otoskoodimme (olisimme jos voisimme), ainoa valinta on lisätä vaihtoehtojen vaihtelua selkeän tuloksen aikaansaamiseksi, tappamisen kaventamiseksi mieltymyksemme mukaan.

A / B-testaus antaa sinulle tuloksen, mutta se on tulos, joka kertoo enemmän sinusta ja siitä, mitä olette odottanut, kuin asiakkaista. Kun suunnittelupäätöksiä tehdään muualla kuin suurilla liikennemuodoilla, voimme myös heittää kolikon, kuten A / B-testi.

Esittelykuva, kolikko toss kuva kautta Shutterstock.