No - the missing address bits caused some memory locations to be blended together: e.g. you write $00000000 to location X and $FFFFFFFF to location Y, and after that you'd read $00800000 from X, because one bit appears shared between the two addresses. The chip has the address bit disconnected and thus can't distinguish between both memory locations.
None of the available test could show this, they just seem to write a pattern to a whole block, read it back and compare the results. When the very same pattern is used on the whole block, you can't see a problem - you'd have to use different patterns to locate non-uniqueness problems.
I knew the problem was in the last 4 MB block (Amy worked fine before), so I used 4 instances of the same tool to test 1 MB each - running them simultaneously immediately showed that memory addresses were not unique and a bit more testing (plus a tiny C routine) revealed there actually were several different address patterns that overwrote each other. Before disassembling the machine (quite a feat on the 3k) I had it narrowed down to a single chip and the exact pins that must have been the problem. I expected damaged trace, bent pins but found - the contacts cleanly suspended in the middle of the hole without any solder. :-P
If you want to try this: boot the system w/o startup-sequence and shell run the RAM test tool for, say 1 MB each. A bad contact on an address bit will show up very quickly; maybe there's also a better tool around today, I can't remember what I used back then.
Errors in the RAM chips may be very hard to find - on a PC I've had memtest86 running for nearly a day before a single bit error showed up that had repeated crashed the machine. If it's in a vital area, it'll cause a crash quickly, but if it's intermittant, the test software may have difficulties locating it.
PS: Just checked on the Viper: the RAM is soldered to the board?? That'll make it very hard to swap for testing and also very hard to find a replacement...