There is a lot of functional testing being done out in the field. Testers run their test cases, give sign offs and the product is shipped off with everyone hoping for the best. Post, we see a lot of bugs being reported from end users and beta testers. The first thing I recommend is to use mnemonics to aid our thinking and expand beyond the rigmarole of functional testing.
Wikipedia defines mnemonics as "A common mnemonic for remembering lists is to create an easily remembered acronym, or, taking each of the initial letters of the list members, create a memorable phrase in which the words with the same acronym as the material. Anyone can create their own mnemonics to aid the memorization of novel material."
Mnemonics can be simple thinking models for testers, each letter stands for an approach or consideration for testing software. You can use it to help your brain change testing perspectives, and to find important problems quickly. Some tester who catch important bugs quickly do so not just because they are experienced but they have easy ways to remember stuff that's important to them in different contexts. Mnemonics can be very useful heuristics and oracles. Below I have listed a few:
RCRCRC for regression testing by KN Johnson
I SLICED UP FUN - by Jonathan Kohl for Mobile app testing
Can I use this? for usability testing by David Greenless
Ben Simo's error handling mnemonic - FAILURE
San Francisco Depot(SFDPOT) is a simple and effective test strategy tool created by James Bach.
I haven't gone into the detail of each mnemonic because you can invoke google for help and read/hear about them directly from the horse's mouth. The good thing about mnemonics is that you can also create your own or add/edit to the ones you like.
- R- Recent, means what new features/enhancements have been added. what testing around those changes should I think about?
- C - Core, means what are the critical functions, what should I test to ensure they work
- R - Risky, what features are inherently risky? areas that I want to safeguard by testing
- C - Configuration sensitive, what testing I do based on environment?
- R - Repaired, What testing I want to do based on fixed defects?
- C - Chronic, What areas have broken in the past and are prone to bugs? I want to test those areas
- I - Inputs into the device
- S - Store
- L - Large vs Small screen
- I - Interactions/Interruptions
- C- Communication
- E - Ergonomics
- D - Data
- U - Usability
- P - Platforms
- F - Functional Testing
- U - User Scenarios
- N - Networks
- C- Compare Product/features
- A - Accessibility
- N - Navigation
- I - Intuitive
- U - Users
- S - Standard
- E - Emotions
- T - Trunk Test
- H - Heuristics
- I - Instructions and Help text
- S - Satisfaction
- F - Functional
- A- Appropriate
- I - Impact
- L - Log
- U - UI
- R - Recovery
- E - Emotions
- S - Structure
- F - Function
- D - Data
- P - Platform
- O- Operations
- T - Time