Documente Academic
Documente Profesional
Documente Cultură
R. Sankara Narayanan
The President,
Software Testing Society
http://www.stsociety.org/
Tel: +91-98840-65497
e-Mail: narayanansss@yahoo.co.uk
Abstract
Software Testing is one of the key practices in the Software Development Life Cycle that
requires diversified skills. Because, developers find it difficult to find out the defects in
their own code psychologically, the developers cannot test their code effectively. Hence,
there arises the need for an Independent Testing Group, who approaches the code with a
different perception to test them effectively.
1) What are the unique skills required for the “Independent” Testers (which may or may
not be required for a developer)?
2) What are the best practices that an “Independent” Tester need to adopt?
This paper tries to find out the answers for the above questions. Biologically, the skills
and talents of a human being is managed by the brain and hence the title “Skills of a
Tester’s Skull”. “Tester’s Skull” does not mean exactly the Skull of a tester; it is the
Tester’s Brain inside the skull.
Understanding Skills
The first and foremost activity of Software Testing is to understand the requirements/
functionalities of the software to be tested. Formal Documents like Software Requirement
Specifications, Software Functional Specifications, Use Case Specifications and other
Documents like Minutes of Meeting serves as the key references for planning and
executing the testing tasks. The testers must have very good understanding skills to read
and understand the information written in these documents. Many a times, it is possible to
have many interpretations for the information presented in the documents. The testers
must be able to identify the duplicate & ambiguous requirements. If the requirements are
not clear or ambiguous, the testers must identify the sources of the requirements and get
them clarified. The sources of the requirements in most of the project development team
should be Business Analysts, Business Users or any other competent authority as
identified by the Project Management team. The testers shall analyze and co-relate the
information gathered within the perspective of the project.
Listening Skills
Documents are not the only source of reference for the testing activities. The information
required for the testing activities may be acquired through offline meetings, seminars,
conferences, etc. The minutes of the meetings, conferences, seminars may or may not be
recorded in a formal document. The testers must have very good active listening skills in
order to collate and co-relate all of that information and refer them for the testing
activities. While the requirements or functionalities of the software are discussed over a
meeting, many a times, some part of the requirements are missed out. The testers should
be able to identify and get them clarified before heading towards the subsequent testing
phases.
All software requirements shall be testable. The software shall be designed in such a way
that all software requirements shall be testable. The test plan shall be formulated in such a
way that paves the way for validating all the software requirements. In the real time
scenario, there could be many requirements that are not testable. The tester with his/her
test planning skills should be able to find out a workaround to test those non-testable
requirements. If there is no way to test them, that shall be communicated clearly to the
appropriate authority. There could be many requirements that are very complex to test
and the tester should be able to identify the best approach to test them.
Software Testing Science preaches many techniques like Equivalence Class Partitioning,
Boundary Value Analysis, Orthogonal Array and many more techniques for an effective
test design. The testers shall be aware of all those techniques and apply them into their
software test designing practice. The tester shall be aware of various formats and
templates to author and present the test cases or test procedures in a neat fashion. The
tester shall aware of the best practices and the acceptable standards for designing the test
cases. The tester shall be aware of the how to write test cases – non-ambiguous, simple,
straight to the point.
The test case needs to contain Test Case Description, Test Steps and its corresponding
expected results. The tester shall be aware of how to present the content in these three
topics effectively in such a way that they can be read without any ambiguity by all the
project stakeholders.
Test Execution is nothing but executing the steps that is specified in the test design
documents. During the execution, the testers shall capture the actual results and compare
against the expected results specified in the test design documents. If there are any
deviations between the expected and actual results, the testers shall consider that as a
defect. The tester shall analyze the cause of the defect and if it is found and confirmed in
the application under test, the same shall be communicated to the developers and it shall
get fixed. If the cause of the defect is found with the test case, the same shall be
communicated to the test designers and the test cases shall be modified/ amended
accordingly. If the testers are not confident about the application functionalities and the
test design documents, they may not confidently come to a conclusion about the defect in
case of any discrepancies. This will lead to defects being leaked to the next phase and the
testers needs to avoid this scenario. The testers shall be confident about the application
functionalities and in case of any ambiguity or clarifications; they need to get them sorted
out before executing the tests or at least during the test execution.
Defect Reports are one of the critical deliverables from a tester. The defect reports are
viewed by the development team, business analysts, project managers, technical
managers and the quality assurance engineers along with the testers. Hence, the defect
reports shall carry enough information about the defect. Steps to reproduce the defect, its
expected result and actual result along with other information such as Severity, Priority,
Assigned To (developer), Test Environment details are very critical for a defect report
without which, the defect report is considered as incomplete. The tester shall be aware of
the importance of the defect report and he/she shall create defect report in such a way that
it is non-ambiguous. During the course of fixing the defect, the developers may come
back to the testing team for more information regarding the defect and the tester shall
provide the same without failing.
Conclusion
The testers shall understand/ learn and be confident about the application functionalities.
Test planning, designing, execution and defect reporting are the basic and essential skills
that a tester shall possess and develop in his day-to-day career. Professionals who are
perfectionist in using these skills are called as “Testing Professionals” or “Testers” or
“Testing Engineers”. Hope now, you are a tester…