I think you may be confusing bits and bytes. Normally when testing memory, a whole byte (8-bits) or sometimes multiples of bytes are tested in one operation.
When you refer to pattern 0x1 what exactly do you mean? In normal 'talk' a pattern 0x1 would refer to a byte which in binary is 00000001, in other words 8 bits with just the least significant bit set.
To test a memory by writing a single bit and reading it back to confirm it would be failing to test the remaining 7 bits.
For example, I suppose the bit I highlight below is faulty:
0010000
if you write 1 to the LSB and read it back it will be OK, the same if you write 0 to it, the memory address is however, faulty because bit 4 is stuck.
Using 0x55 and 0xAA is writing to all 8 bits, 01010101 then 10101010 so all the bits are checked for being stuck in one write, read and compare operation.
There are many kinds of memory faults, that is why you see tests using 0x33 and 0xCC and random numbers being used. Sometimes the fault is not a bit stuck but an address line stuck so for example you could think you were writing to 8k of memory but due to the fault you were actually writing to the same 1k eight times. There are also timing faults and refresh faults which all require specific checks to find them.
At its simplest, a data only check of an 8k memory would be 8192 writes followed by 8192 reads of one pattern then 8192 writes and reads of a complimentary pattern, 16384 writes and 16384 reads in total.
Brian.