There are several definitions of Software Testing. There are many ways that it may be done.
Given the uncertainty and changing nature of requirements during many software development projects, I believe that software testing is best done in a way that is focussed on the people involved with the project and is responsive to the changing nature of the project.
Congruent Software Testing occurs when testers and test teams function as part of the whole development process. It is more than collaboration with other development team members on a project. It is the realization that testers are part of the whole design and development process, from requirements elicitation through to deployment and delivery.
To be congruent, Software Testers:
To be successful, congruent software testers need to be:
The term 'congruent' comes from the idea of 'congruence' as defined by Virginia Satir, a pioneer in family therapy. She said that the essentials of congruent living include:
To behave congruently, we must take into account three areas - the self, other and context - and balance their requirements all at the same time. This relationship is visually represented by the circle in the diagram below.
In his Quality Software Management series, Gerald Weinberg stated "Quality is value to some person(s)." Quality is therefore relative and the working definition "involves a series of decisions about whose opinions count, and how much they count relative to one another." (QSM, Vol. 1)
Congruent Software Testing
In Satir's congruence diagram, the 'other' is some person whose opinion matters to the software organisation. The software tester ('self') first needs to figure out who these 'other' people are, and then builds congruence with them in the context appropriate to the software development project.
Achieving congruence means you are on the same wavelength, the same page, as the other person. You both have the same understanding of the situation in question. From that contextual understanding, the tester can define 'Quality' criteria for that person.
The software tester then uses that quality definition to design appropriate tests to uncover information that matters to that person. This requires knowledge and skill on the part of the tester in appropriate test design modelling, tools and techniques.
The execution, analysis and reporting of the testing activities should all be performed in a manner congruent with the needs of the organisation and stakeholders. There is no one prescriptive way for all testing activities to be performed. When required, test documentation should exist to support the findings discussed with others. Documentation should not be used to replace direct communication.
1. Virginia Satir - Congruence. She has several articles and books on the topic.
(There are other similar books on the topic of relationship building. I will add to this list in time. Feedback and suggestions welcome.)
2. Gerald Weinberg - "Quality Software Management, Volume 3 - Congruent Action" (1994). He also published "Managing Yourself and Others" as an eBook in 2011. (I also recommend the rest of the Quality Software Management series)
3. Test Design techniques and modelling. There are many resources available to help you learn this. Some include:
Please use the Feedback page to let me know what other suggestions you have. Thank you.