[x^2 for x in lst]

Alma hittar bugg i matteappen

2014-06-03

Alma hittade en bugg i "Almas matteapp" igår. Det var när hon för första gången gjort klart övningen "Ettans gångertabell i ordning" som appen drog upp en errordialog och stängde ner Activity:n som kördes, vilken var den som visar upp resultatet av övningen. Alma utbrast "Men pappa!" med förebrående röst. Ooops. Vad skall man säga? Det är sådant som händer. Speciellt om man inte har en egen QA-avdelning utan sköter allt testandet själv ;)

Alma gjorde sedan två övningar till (ettans gångertabell utan ordning och sjuans gångertabell utan ordning), och efter varje gång kraschade Activity:n som skulle visa övningsresultatet. Illa, illa.

När jag senare på kvällen körde appen i debug-läge från Android Studio konstaterades det snabbt att det var en NPE i en metod som skapade texterna för hur lång tid användaren tog på sig för att lösa övningen. När det var första gången som användaren gjorde en övning var bönan som normalt sett håller föregående övningomgångars bästa tid null, vilket ledde till att Activity:n kraschade när bönan accessades. Inga problem att fixa, men varför hade jag då inte märkt av det själv när jag testat? Jag har ju gjort minst 20 övningar för första gången de senaste veckorna? Och varför har inte Alma och Alice märkt något när de använt appen?

Det visade sig att buggen bara uppkom för användare som har satt inställningen "Visa tidmätningar" till true. Den användaren som jag alltid loggar in med när jag testar har den inställnigen satt till false, så det var därför jag inte märkt av buggen. Gissar att det var samma sak för Alma och Alice. Tror att Alma precis ändrat den inställningen från false till true och det var därför beteendet förändrades för hennes användare nu. Ja, ja. Gött att vi hittade den nu i alla fall innan vi lagt upp appen på Play-butiken.


Leave a reply

Your name as it will be displayed when the comment is posted on the page. Your email address will not be published.

Comments

1 2025-nov-29 09:04 UTC
555
-1 OR 3*2<(0+5+165-165) -- 2025-nov-29 09:05 UTC
555
-1' OR 2+152-152-1=0+0+0+1 or 'oAxyP3AD'=' 2025-nov-29 09:05 UTC
555
-1 OR 3*2<(0+5+305-305) 2025-nov-29 09:05 UTC
555
-1 OR 3*2>(0+5+165-165) -- 2025-nov-29 09:05 UTC
555
-1" OR 3*2<(0+5+956-956) -- 2025-nov-29 09:05 UTC
555
1 2025-nov-29 09:05 UTC
555
-1 OR 2+305-305-1=0+0+0+1 2025-nov-29 09:05 UTC
555
-1' OR 2+410-410-1=0+0+0+1 -- 2025-nov-29 09:05 UTC
555
-1' OR 3+410-410-1=0+0+0+1 -- 2025-nov-29 09:05 UTC
555
if(now()=sysdate(),sleep(15),0) 2025-nov-29 09:05 UTC
555
-1" OR 2+956-956-1=0+0+0+1 -- 2025-nov-29 09:05 UTC
555
-1' OR 3*2<(0+5+410-410) -- 2025-nov-29 09:05 UTC
555
-1' OR 3+152-152-1=0+0+0+1 or 'oAxyP3AD'=' 2025-nov-29 09:05 UTC
555
-1 OR 3+165-165-1=0+0+0+1 -- 2025-nov-29 09:05 UTC
555
-1 OR 3*2>(0+5+305-305) 2025-nov-29 09:05 UTC
555
1 2025-nov-29 09:05 UTC
555
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z 2025-nov-29 09:05 UTC
555
-1 OR 2+165-165-1=0+0+0+1 -- 2025-nov-29 09:05 UTC
555
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z 2025-nov-29 09:05 UTC
555
-1' OR 3*2>(0+5+410-410) -- 2025-nov-29 09:05 UTC
555
-1 OR 3+305-305-1=0+0+0+1 2025-nov-29 09:05 UTC
555
-1" OR 3*2>(0+5+956-956) -- 2025-nov-29 09:05 UTC
555
-5) OR 772=(SELECT 772 FROM PG_SLEEP(15))-- 2025-nov-29 09:06 UTC
555
1 2025-nov-29 09:06 UTC
1*555
1 2025-nov-29 09:06 UTC
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
1 waitfor delay '0:0:15' -- 2025-nov-29 09:06 UTC
555
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15) 2025-nov-29 09:06 UTC
555
1 2025-nov-29 09:06 UTC
if(now()=sysdate(),sleep(15),0)
-5 OR 980=(SELECT 980 FROM PG_SLEEP(15))-- 2025-nov-29 09:06 UTC
555
1 2025-nov-29 09:06 UTC
1*555
1 2025-nov-29 09:06 UTC
h6sNKQyM
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' 2025-nov-29 09:06 UTC
555
1 2025-nov-29 09:06 UTC
1*555
1 2025-nov-29 09:06 UTC
555*159*154*0
-1)) OR 476=(SELECT 476 FROM PG_SLEEP(15))-- 2025-nov-29 09:06 UTC
555
1'" 2025-nov-29 09:06 UTC
555
0KbY0JfZ')) OR 126=(SELECT 126 FROM PG_SLEEP(15))-- 2025-nov-29 09:06 UTC
555
1 2025-nov-29 09:06 UTC
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
1 2025-nov-29 09:07 UTC
RxH4xFVx')) OR 366=(SELECT 366 FROM PG_SLEEP(15))--
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
-5) OR 723=(SELECT 723 FROM PG_SLEEP(15))--
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
-5 OR 728=(SELECT 728 FROM PG_SLEEP(15))--
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
1 waitfor delay '0:0:15' --
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
1 2025-nov-29 09:07 UTC
@@69uKt
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
h2GXP4bP' OR 70=(SELECT 70 FROM PG_SLEEP(15))--
1 2025-nov-29 09:07 UTC
-1)) OR 831=(SELECT 831 FROM PG_SLEEP(15))--
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:07 UTC
555
1 2025-nov-29 09:08 UTC
555