Testing teams are considered as problem identifier and testing profession as mediocre job suitable for persons who have lesser analytical and logical thinking. Tester has to in cult logical and problem solving quality to change the perception of the dev team. Primary users/reviewer of product or project being developed is none other than testers. Throughout the project testers feedbacks are extremely valuable to build robust, reliable and scalable applications. To provoke healthy arguments or discussions for value addition to the application, testers should exhibit their logical and problem solving quality.
Let us see, in detail of building Logical thinking and Problem solving.
What is critical thinking/Problem solving?
The simplest definition is offered by Beyer (1995): “Critical thinking… means making reasoned judgments” (p. 8). Basically, Beyer sees critical thinking as using criteria to judge the quality of something, from cooking to a conclusion of a research paper. In essence, critical thinking is a disciplined manner of thought that a person uses to assess the validity of something (statements, news stories, arguments, research, etc).
Critical thinking in our context is defined as thought process of testers involved in the project or product in assessing the validity or quality of application and their related artifacts (input documents to client deliverables).
Levels of Critical Thinking
Benjamin bloom in 1956 identified six levels of critical thinking; in this article let us see how the six levels are applied to software testing discipline.
Level 1: Knowledge
“Exhibits previously learned materials by recalling facts, terms, basic concepts and answers.”
Key Words: Who, What, How, Where, When etc
Level 2: Comprehension
“Understanding facts and ideas by organizing, comparing, translating, interpreting, giving description, and stating main idea”
Key Words: compare, relate, illustrate, classify, explain, infer, outline etc
Level 3: Application
“Solving problem by applying acquired knowledge, facts, techniques and rules”
Key Words: apply, use, build, interview, make use of etc.
Level 4: Analysis
“Examining and breaking information into parts by identifying motives or causes. Making interference and finding evidence to support”
Key Words: analyze, categorize, classify, compare, contrast etc
Level 5: Synthesis
“Compiling information together in a different way by combining elements in new pattern or proposing alternate solution”
Key Words: compile, build, invent, make up, original, minimize, maximize, improve, change, test etc
Level 6: Evaluation
“Presenting and defending opinions by making judgments about information, validity of ideas or quality of work based on a set of criteria”
Key Words: conclude, determine, evaluate, measure, recommend, appraise, estimate etc
From Level 2 to Level 6 apply the Level1 keywords to generate output related to each stage of problem solving. Example in level 2 following question shall be posted to identify the solution:
a. What to compare?
b. How to compare?
c. What do you infer?
d. How do you outline?
What Makes difference – in Tester
Software testers are required to apply strong imaginations, creativity and intelligence to gain empirical information about the application or product under investigation. Testing requires information analysis and using logic to address the work related issues. In addition it also requires creativity and alternative thinking to develop new ideas for and solution for work related problems.
Let us see some of the critical testing related activities were the critical thinking could benefit us.
a. Requirement Analysis
b. Defining Test Strategy
a.Risk Analysis and Mitigation
b. Designing Test Case in complex domain
c. Defect Analysis
Testers are sole proprietor for activities listed above. The success of the activities unveils our ability and capability to our cross functional co-workers, that would change their perspective on testing discipline.
Implementation of logical and problem solving by tester in their day to day activities is detailed here:
Requirement serves as base upon which the project or product built in future. Testers are the authorized personnel to certify whether the application is working as intended as per the derived requirement. Primary responsibility of tester is to validate the requirement for consistency against business domain.
Proceeding with “Requirement Assumptions” is like sailing in the ship without compass. Testers are required to “Question their Assumptions” based on their earlier experience or by knowledge acquired by any means or domain to clarify the requirement. This would help all the stakeholders in identifying ambiguous, unclear, missed and uncertain functional validations. This would add credibility to the testers because finding defects earlier in life cycle saves cost, as study reveals more than 50% of the defects are from requirements.
Down the line as things headway testers should be positioned as master of requirements in guiding other stakeholders. To gain comprehension on requirements one should pursue “What, How, When, Why, Who, Where” key words defined by Benjamin critical thinking. A query would probe others to unveils hidden information, ambiguity and develop a robust questionnaire.
Some basic queries to post are as follows:
The queries should be tracked to closure, to identify the benefits attained by pursuing the skill, as well as would help PL/PM to construct metrics on quality of requirements and analyze the skill level of testing team in understanding business requirements.
“Test Strategy” speaks about testing objective, methods of testing, new functions, resources and effort required for the project and test environment, risk and mitigation at the test level, types of test to be executed, and entry and exit criteria for testing”. Test Strategy is the mother document of testing team which demonstrates the stakeholders on testing solution provided by the team.
Here comes the question, what forms the basis or input to the test strategy. Yes, the queries solution and our knowledge on application act as source for Test Strategy.
Following activities are to be carried to plan test strategy.
a. Break the application into logical parts
b. Model the app using the logical parts
c. Brain storm along with the team to
a. Identify applicable test objectives
b. Identify feasible and impractical features of testing
c. Identify appropriate tools and techniques to be implemented
d. Identify the risk involved in testing
e. Attain mitigate plan for the risk
f. Different approach of testing the app by
i. Previous experience
ii. Shared knowledge from team
Iii. Identify the levels and types testing
Iv. Entry and Exit criteria of testing
v. Finalizing the approach by discussion both the sides of
vi. Identification of critical test cases of the domain
Group involvement enables to attain more than one solution, which are to be brain stormed closely examining positive and negative part of implementation. The solution with more positives is finalized. Success of this activity depends on the team involved in brain storming. Criticizing ones view or idea should be strictly prohibited; otherwise it would inhibit the individuals to exhibit their thinking/talent.
Devised “Test Strategy “is adhered by the testing team with open mind and with comprehensionWhat are we doing?
a. Why are we doing?
b. Why are we doing?
c. When particular task has to be executed?
d. How to execute a task?
e. Who has to execute?
f. Whom to escalate or report to?
g. What is the criticality of the task?
h. What are the tools to be used? etc.
Defect analysis itself is a very big ocean; here I am going to deal with certain scenario the testers would undergo in their day to day activities.
Primary outcome of test execution are defects against the application under investigation. Testers know-how to report a defect, but to add credibility and to enhance their knowledge on application they have to drill down further by examining the log files or data base or any other resources to unveil the cause of the defect. This would help them in assisting non- technical people like business analyst and validate the implementation of application functionality throughout the project life cycle. Certain defects arise due to changes in baseline, data base, code; environment settings etc. in these situation logical thinking and problem solving skill would be very useful. To be an outstanding performer and add value to project one should enhance their logical and problem solving skill.
Defect analysis does not end here, activities preventing issue occurrence are valued more because cost incurred by bug found at execution phase are multifold when compared to defects found at earlier stage of project. The exercise given in the flow chart is suggested to be executes to prevent common defects.
In addition to prevention of occurrence of valid defects, common invalid defects should be analyzed. The reason for invalid defects should be identified such as
a. Requirements not clear
b. Requirement misunderstood
c. Implicit Requirement
d. Technical Constraint
We have to classify the issues based on the above categorization, high priority should be given to the category with max no. of issues and then subsequent categories. Based on the analysis, corrective action should be taken to prevent similar defects.
On sharing this information with the Project Manager, would enhance their confidence over the testing team. The Testing team along with the Dev team conducts bug triage and brain storm over the issues to identify the solutions to prevent defects in future.
Apart from testing and filing issues, testing team hold other responsibility to enhance the quality of the project/product, cost and effort. They should employ their problem solving and logical thinking in their work on daily basis, and exhibit difference in their work; this would make the world to turn towards them.
About the Author
Maha Lakshmi is working as project lead at Aspire Systems Ltd, Chennai. Her knowledge spreads across various domain manufacturing, semiconductor, document management system, and application right from desktop to current mobile apps.