We typically call this type of testing (or technique) equivalence class or equivalence class partitioning. In a nutshell equivalence class partitioning means certain groups of input or stored data are treated the same by the program.
We can break these equivalent values into groups and select a few from each group to test with. Each test is powerful in that it might reveal a failure for the whole group and because of this we only need to run a few tests to prove a failure is possible.
For example some applications might treat special characters the same regardless of if they are @, !, #, $, etc. You need to figure out how your application treats these things.
In order to apply this to your problem of a 'name without special characters' you need to do some research. I'm assuming this is an application with a name input field, correct? Ask yourself:
- What data type is the input field? Is it a string, text, or other type field? Data Types typically have common failure points.
- Is there validation used on the input field?
- Where is this name field stored?
- Where is this name field used elsewhere in the application?
- If you enter a special character into an input field name and it isn't filtered out, does it break the name field used somewhere else?
When you start to understand these questions you can start to ask yourself / test to understand if the application treats one special character like $ equivalent to ? or & or (), etc.