Previously in the Futures in Software Testing Series:
The fundamentals of software testing are what we do as testers that are relevant to all disciplines. The fundamentals cover the analysis of systems and requirements to create test scenarios; reporting and management of defects; testing techniques and test execution.
Software testing fundamentals are so important that without developing them you cannot progress within a discipline. Just as our business domain knowledge impacts on our effectiveness to design test cases; so do our fundamental competencies impact on our ability to become skilled within a given discipline. If you can’t design a test case you are not going to be able to design a performance test case.
I created a list of fundamentals and grouped them into themes:
- Concepts – theoretical constructs that are directly relevant to the act of testing.
- Techniques – approaches to solving problems or achieving a task
- Responsibilities – what is a competent tester responsible for
Any fundamentals must be exclusive of a particular discipline; so the analysis of requirements into functional tests does not belong as a testing fundamental. This was probably the hardest part of creating the list of software testing fundamentals and I don’t doubt that the list incomplete.
I have provided the following lists below and at the bottom of the page is the PDF version that can be used for self assessment.
I found it interesting that after writing the fundamentals and discipline concepts, techniques and responsibilities it read like selection criteria. This wasn’t intended but was the eventual goal. This defines what a test can do. Training teaches them how and disciplines provide the what.
There is no order as are all applicable.
Concepts
- Understands the role of software testing and is able to explain the who, what, where, how, why and when of software testing
- Understands the difference between technical and semantic compliance and how that impacts the scope of testing.
Techniques
- Use positive path testing techniques to derive test cases that prove requirement implementation has been successful
- Use negative path testing techniques to derive test cases that exercise the inverse of the specified requirements
- The ability to risk asses the test suite to identify cases that should be executed first because they present the biggest risk to the organisation if they fail.
- Application of the divide & conquer approach to failed tests to identify the root cause of a defect
- Can analyse documented requirement and determine whether they are unambiguous
- Can analyse documented requirement and determine whether they are testable
Responsibilities
- Produce test procedures that provide additional information necessary to complete a test case. Test procedures document the how of a test case.
- Design tests that are discrete; this means that they only test one thing.
- Design tests that consider and cater for all relevant input data combinations
- Design tests that explicitly state the expectations of the tester
- Design tests that can be executed by another competent tester without intervention
- Analyse system behaviour to identify state data that will influence the expectations outcome and from this derive test cases that exercise these expectations
- Analysis of test outcomes to identify defects
- The ability to create both input and state data to satisfy the test case
- The creation of defect reports that are accurate, reproducible and have an appropriate severity
- Perform test case design reviews to ensure appropriate test coverage has been provided
- Perform test case reviews to ensure test cases are written to the agreed standard
- Perform test execution review to ensure test execution logs are correctly recorded
- Fulfil the obligation of software testing by providing information to stakeholders regarding the quality of the solution
- Communicate effectively by providing metrics to management regarding the testing effort
- Escalate risks before they develop into issues
If you have any suggestions for improving the content; let me know and we can discuss it.
Here is the link to the PDF assessment copy of the testing fundamentals. I will move them out of a PDF document and onto a web page that can be built up by a community over time.
|
|
Ryan Boucher is a Software Inquisitor and is passionate about it. You can find a whole raft of articles and anecdotes about software testing and other topics he gets excited about. |
| Tags |