distributedlife

passionate about everything

Futures in Software Testing – Fundamentals core competencies in software testing Published by Ryan Boucher @ 11:55 pm

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.

My Mug 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 , , , , , ,