Thursday, July 21, 2011

SRS testing - taking it to the limit

So, I've got some more testing to do on this SRS implementation. It looks as if the basics are in place, but these kind of yucky date-routine oriented functions with lots of conditions need some at least reasonable testing.

So here's where we are as of the last check:

1) last review date null, answer right, slow
2) last review date null, answer right, fast
3) last review date null, answer wrong
4) last review date null, timeout

5) last review date not null, answer right, slow
6) last review date not null, answer right, fast
8) last review date not null, answer wrong
9) last review date not null, timeout

10) - make sure that a scheduled review date doesn't show up until it's supposed


10 - check.

5 - check
3 - check


So, what did we cover in the last session?

We covered 5 and six for sure.

6 check.

We for sure got wrong on null and non-null last review dates covered, 3 and 8

So, 3 5 6 8 10

So, 9 should be easy. We'll move the date up to 8/7 to cover this one:

627 2011-08-01 2011-08-07

and let it time out.

The result should be:

627 2011-08-07 2011-08-07

Yep. So now: 3 5 6 8 9 10

How about 1, 2 and 4?

First, let's rerun the test and get it right fast , and this time the result should be 8/12.

Yup. Ok, the next one, そう really, has a null. So,


1) last review date null, answer right, slow
2) last review date null, answer right, fast
3) last review date null, answer wrong
4) last review date null, timeout

We'll get that one right, fast and it should show us a date of 8/12 and that will be number 1.

Yep, 8/12. That covers 2

2 3 5 6 8 9 10

Then, we'll let the next one come up and answer it right, slow.

おもう to think,to feel

The date will be plus 3, so, 8/10.

Yep. 1 2 3 5 6 8 9 10

The next one, かれ he,boyfriend, we'll let time out, and that should give a date of 8/7. to cover condition 4.

Yup. Testing almost fun when it works. 1 2 3 4 5 6 8 9 10

So, what about number 7? Ohps - there is no 7, i skipped a number.

Ok, so I would like to test year end, just in case something funky happens. If set the date to say 12/31/2011, it should bring up all 5 reviewed so far plus one new one. I'll anser one fast one slow, let one time out, answer one wrong, and anser the other fast.

koto - fast
sou - slow
doubutuen zoo timeout
kare - wrong
omou fast

Here's the before:

かれ he,boyfriend 4 2011-08-07 2011-08-07
おもう to think,to feel 3 2011-08-07 2011-08-10
こと thing,matter 1 2011-08-01 2011-08-11
そう really 2 2011-08-07 2011-08-12
どうぶつえん zoo 627 2011-08-07 2011-08-12

And the after:

かれ he,boyfriend 4 2011-12-31 2011-12-31
どうぶつえんzoo 627 2011-12-31 2011-12-31
おもう to think,to feel 3 2011-12-31 2012-01-06
そう really 2 2011-12-31 2012-01-07
こと thing,matter 1 2011-12-31 2012-01-20

zoo and kare are ok. They rescheduled to the same day.

To think/to feel looks wrong. it look like it takes the difference between the previous scheduled date and previous review date. Ah, so, I've been doing it wrong. The reason I missed it was because I was testing one at a time and giving today's date the same as the scheduled date, so the error wasn't observable. Wow, that was a close call.

What about the other ones? Sou would've taken 5 * 1.5 = 7 and add that to 12/31 and you get the 7th. And koto woul'dve taken 10* 2 = 20.

Let's make the change:

This looks better:


// calculate the difference between the last review date and today

int dateDiff = DateUtils.getDateDiff(scheduleRow.lastReviewDate, DateUtils.getTodayYYYYMMDD());

Ok, lets's do exactly the same thing:


koto - fast
sou - slow
doubutuen zoo timeout
kare - wrong
omou fast

Here's the before:

かれ he,boyfriend 4 2011-12-31 2011-12-31
どうぶつえんzoo 627 2011-12-31 2011-12-31
おもう to think,to feel 3 2011-12-31 2012-01-06
そう really 2 2011-12-31 2012-01-07
こと thing,matter 1 2011-12-31 2012-01-20

Change the date to 2012/02/01

彼 かれ he,boyfriend 4 2012-02-01 2012-02-01
動物園 どうぶつえん zoo 627 2012-02-01 2012-02-01
そう really 2 2012-02-01 2012-02-11
思う おもう to think,to feel 3 2012-02-01 2012-02-13
こと thing,matter 1 2012-02-01 2012-03-12

koto - fast
sou - slow
doubutuen zoo timeout
kare - wrong
omou fast

Ok, so, boyfrined and zoo are were wrong/timeout, same day, that's ok. Really was slow, so 7 * 1.5 = 10 so 2/1 + 10 = 2/11 ok,
omout was fast, 6 * 2 = 12, 2/1 + 12 = 2/13 and thing/matter/koto was fast so 20 *2 = 40, 2/1 + 40 = mid march = 28 + 12, looks about right.

Ok, we just need to check a few nulls out and we should be all set.

Ok, so the next 4 should be:

1028 4 358 そんな that sort of
855 4 185 くれる to give
806 4 136 彼女 かのじょ she,girlfriend
822 4 152 気 き spirit,mood

And we will do them like this:

sonna - fast
slow - kureru
wrong - kanojo
timeout - spirt mood

leftover
kare - slow
doubtuuen fast


Ok, let's see what we have


she,girlfriend 7 2012-02-01 2012-02-01 - was wrong, ok
spirit,mood 8 2012-02-01 2012-02-01 - ok
he,boyfriend 4 2012-02-01 2012-02-04 - was 2/1 and was slow, 3 is the min, so 4 is right
to give 6 2012-02-01 2012-02-04 - was slow, same as above
that sort of 5 2012-02-01 2012-02-06 - sort of was fast, so, so add 5 because was null corre
zoo 627 2012-02-01 2012-02-06 - zoo was fast, so 5 is the minium
really 2 2012-02-01 2012-02-11 - gt review date, didn't change
to think,to feel 3 2012-02-01 2012-02-13 - ditto
thing,matter 1 2012-02-01 2012-03-12 - ditto

Ok, it all looks good. The only problem I have is the last group came up in order of ranking. The should be randomized, so, I'm going to run another test.

She and Spirt/mood should come into it, but the rest should be out. So, what I should not see is this:

あ Ah
ほど extent
みえる to be in sight
ひ day, sun
かんがえる to consider

In that order. And spirt and mood should be mixed in there somewhere.

ほど extent
ひ day, sun
かんがえる to consider
kanojo / she
spirt / mood
かんがえる to consider
oto?
あ Ah

I was off by one, 8 to 14 includes 6, but good.

Ok, I'm going to consider baseline testing complete on this, for now. This was a pretty significant change. But, now the app doesn't just teach it to you and forget about it forever. You'll see it again, sooner or later depending on how quickly you get it right. And of course, in the repeat of the same level for any you get wrong. All in all, a very positive change.

No comments:

Post a Comment