What is Testing?
Testing is the process of evaluating a product by learning about it through experiencing, exploring, and experimenting, which includes to some degree: questioning, study, modeling, observation, inference, etc.
James Bach
What do I mean by Essential Skills?
In general, most tech & people skills adds value to the work that we do as professionals. However, some skills are “absolutely necessary” or “extremely important” for working in a specific profession. For someone to pursue a career in (software) testing, there are certain skill that can help the tester to do better at Testing (the process of evaluating a product by learning about it through experiencing, exploring, and experimenting, which includes to some degree: questioning, study, modeling, observation, inference, etc.)
If you are a generalist tester, and you want to be better at it? Here are some skills that would help you be better in the testing game:
- Questioning
- Test Design
- Exploring (Test Design + Test Execution)
- Test Design
- Cognitive Biases
- Usability Patterns (Heuristics)
- User Persona Analysis
- Note Taking
- Reporting
- Risk Analysis
- Foundational Software Concepts
- Bug Advocacy
- Systematic Product Modelling
- Systems Thinking
- Negotiation
- Persuasion
- Epistemology: Pratyaksh, Anumana, Upmana, Shabda (Nyaya)
- Understanding of Heuristics
- Understanding of Oracles (Ex: FEW HICCUPPS)
- Learning Ability
- Getting Help, Lookout for Help, Googling
- Record Keeping
- Story Telling
- Sociology
- Presentation
- Understanding of Testability
- Task Breakdown & Prioritization
- Estimation
- Ability to quickly learn about the product & its domain
What do I mean by Helpful Skills?
When I refer to the term, Helpful skills are the skills that are not the ones that are absolutely necessary but can help you be more useful, and valuable in your job role. These are “good to have” skills and would help you in doing things beyond testing and adding more value to your team and organization. Here are some of the helpful skills for testers:
- Programming
- Design Patterns
- Tools (Usage)
- Tool Design Skills (To Create Tools to assist Testing)
- HTML, CSS, JS
- Locator Crafting for Automation Scripting
- Any other specialized testing skills
NOTE: This answer is still work in progress and needs to be reviewed again. I am just dumping my thoughts here for now.