QA Study Guide
Theoretical knowledge
- Basic concepts:
o Software Testing Fundamentals
o Agile approach
o Agile testing
Exploratory testing
o Verification vs Validation
- Agile concepts
o Epics
o User Stories
Acceptance criteria
- Testing Artifacts
o Test Cases
o Test Report
- Software programs and defects/bugs
o General tests for Web and Desktop applications
o Defect life cycle
o Defect severity
o Defect priority
o Defect report
- Self evaluation:
o http://www.softwaretestinghelp.com/software-testing-exercises-to-test-your-
skills/
- Software Testing Methods
o Black Box Testing
Functional testing
Component testing
Acceptance testing
- QA engineer skills:
o Broad understanding of the product (client requirements)
To test efficiently a product, the QA engineer must know it well
enough. Knowing well the product includes also knowing how end-
users expect it to work. The QA engineer must have a "customer-
focus" vision. A good QA engineer must also know how the product is
designed because the more you know the product, the better you're
able to test it.
o Efficient English communication
Communication is an extremely important skill for a QA engineer. Of
course, meetings (stand-up etc.) and status reports are part of the
communication but more importantly, a QA engineer must be
particularly efficient in the following tasks:
Direct communication with both development and product definition
teams
Capability to communicate about technical and non-technical aspects
Communicate in a diplomatic and efficient manner, by focusing on the
discussion topics
o Creativity
Testing requires a lot of creativity. Bugs are often hidden and just
performing the obvious positive tests will have only a few chances to
find bugs. Hence, the QA engineer must use its creativity to figure out
all the scenarios that are likely to detect a bug. In other words, the QA
engineer must be able to "see beyond the obvious".
o Driving for results
A good QA engineer never forgets that the goal is not only to find bugs
but also have them fixed. Once a bug has been found and has been
"acknowledged" by the development team, the QA engineer may be
required to monitor the issue until it is solved.
o Flexibility & Adaptability
Since more and more projects are using an Agile approach, being
flexible is an important aspect. The entire Development and QA
process is more dynamic in Agile and the QA engineer must adapt to
frequent changes, either around the Product (Applications), the actual
Process (QA/Development) and the technologies/tools that are being
used.
Bibliography:
- Software Testing Fundamentals: http://softwaretestingfundamentals.com/software-
testing-basics/
o Software testing fundamentals videos
- Software Testing Defects: http://softwaretestingfundamentals.com/defect/
- Defect life cycle: https://softwaretestingfundamentals.com/defect-life-cycle/
- Black Box Testing: http://softwaretestingfundamentals.com/black-box-testing/
- Test Cases: http://softwaretestingfundamentals.com/test-case/
- General tests for Web and Desktop
applications: http://www.softwaretestinghelp.com/sample-test-cases-testing-web-
desktop-applications/
- Scrum guide: https://www.scrumguides.org/scrum-guide.html
o Epics: https://www.atlassian.com/agile/project-management/epics
o User stories: https://www.atlassian.com/agile/project-management/user-
stories
o Acceptance criteria: https://www.softwaretestinghelp.com/user-story-
acceptance-criteria/
- Agile testing - https://www.guru99.com/agile-testing-a-beginner-s-guide.html
- Exploratory testing - https://www.guru99.com/exploratory-testing.html