0% found this document useful (0 votes)
12 views13 pages

chp-2 Stqa

Uploaded by

Iffat Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views13 pages

chp-2 Stqa

Uploaded by

Iffat Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Unit 02 Types of testing

White Box Testing


• White box testing techniques analyze the internal structures the used data structures, internal
design, code structure and the working of the software .
• White Box Testing is software testing technique in which internal structure, design and coding of
software are tested to verify flow of input-output and to improve design, usability and security.
• White box testing is software testing method in which internal structure/design is known to tester
.The main aim of white box testing is check on how system is performing based on the code.it is
mainly performed by the developer or white box testers who has knowledge on the programming.
• In white box testing, code is visible to testers so it is also called Clear box testing, Open box testing,
Transparent box testing,
Code-based testing and Glass box testing, or structural testing.

Whitebox testing technique


1)Statement Coverage:- This technique requires every possible statement in the code to be tested at
least once during the testing process.
in statement coverage, every node must be traversed at least once..
2)Branch Coverage - This technique checks every possible path (if-else and other conditional loops)
of a software application.
Every edges must be traversed at least once.
As per flowchart all edges must be traversed at least once
3) Path Coverage
This technique is used to ensure that every possible path (each statement and branch) is executed
and tested.

Types of White Box Testing


White box testing can take several forms:
• Unit testing — tests written as part of the application code, which test that each component
is working as expected.
• Mutation testing — a type of unit testing that checks the robustness and consistency of the
code by defining tests, making small, random changes to the code and seeing if the tests still
pass.
Mutation testing is generally conducted to re-check any kind software bugs in the system.
Mutation testing is often used to discover the best coding techniques to use for expanding a
software solution.
 Integration testing — tests specifically designed to check integration points between
internal components in a software system, or integrations with external systems.
 Penetration Testing: In this testing, the tester/developer has full information of the
application's source code, detailed network information, IP addresses involved and all server
information the application runs on. The aim is to attack the code from several angles to
expose security threats.

Classifications of white box testing

1. Static Testing : Static Testing is a type of a software testing method which is performed to check
the defects in software without actually executing the code of the software application. Whereas in
Dynamic Testing checks the code is executed to detect the defects
Static testing is done to avoid errors at an early stage of development as it is easier to identify the
errors and solve the errors. It also helps finding errors that may not be found by Dynamic Testing
Static Testing, a software testing technique in which the software is tested without executing the
code. It has two parts as listed below:
● Review - Typically used to find and eliminate errors or ambiguities in documents such as
requirements, design, test cases, etc.
● Static analysis - The code written by developers are analysed (usually by tools) for structural
defects that may lead to defects.
• Static testing involves manual or automated reviews of the documents. This review is done
during an initial phase of testing to catch Defect early in STLC. It examines work documents
and provides review comments. It is also called Non-execution testing or verification testing.

The two main types of static testing techniques are


• Manual examinations: Manual examinations include analysis of code done manually, also
known as REVIEWS.
• Automated analysis using tools: Automated analysis are basically static analysis which is
done using tools.
What is Tested in Static Testing
In Static Testing, following things are tested
● Unit Test Cases
● Business Requirements Document (BRD)
● Use Cases
● System/Functional Requirements
● Prototype
● Prototype Specification Document
● DB Fields Dictionary Spreadsheet
● Test Data
● Traceability Matrix Document
● User Manual/Training Guides/Documentation
● Test Plan Strategy Document/Test Cases
● Automation/Performance Test Scripts

The types of reviews can be given by a simple diagram:

1.Informal Reviews: This is one of the type of review which doesn't follow any process to find errors
in the document. Under this technique, you just review the document and give informal comments
on it.

2. Walkthrough -- the author of whichever document is being reviewed will explain the document to
their team. Participants will ask questions, and any notes are written down.
The walkthrough can be formal or informal review.
Team member does not need to have detailed knowledge of the content as the author is well
prepared for that and it is kind of knowledge transfer session .
Main objective is to enable learning and giving knowledge to other team members about the
content.

2)Inspection -- a designated moderator will conduct a strict review as a process to find defects.
• inspection is one of the most formal kinds of Reviews.
• It is led by a trained Moderator who is not the author of the meeting.
• Reviewers are well prepared before the meeting about the documents or what needs to be
discussed.
• Rules and checklists are used in this meeting during which time the product is examined and
defects are logged.
• Defects found in the meeting are documented in the issue log or logging list.
• Meeting has proper entry and exit criteria.
• Reports created during the meeting are shared with the Author to take appropriate actions
on that.

3)Technical reviews -- technical specifications are reviewed by peers in order to detect any errors.
• it is well documented and follows defect detection technique which involves peers
and technical experts
• It is usually led by a trained Moderator and not the Author.
• In Technical Review, the product is examined and the defects are found which are mainly
technical ones.
• No management participation is there in Technical Review.
• The full report is prepared to have a list of issues addressed.
A team consisting of your peers, review the technical specification of the software product
and checks whether it is suitable for the project. They try to find any discrepancies in the
specifications and standards followed. This review concentrates mainly on the technical
documentation related to the software such as Test Strategy, Test Plan and requirement
specification documents.

Summary:
● Static testing is to find defects as early as possible.
● Static testing not a substitute for dynamic testing, both find a different type of defects
● Reviews are an effective technique for Static Testing
● Reviews not only help to find defects but also understand missing requirements, design
defects, non-maintainable code.

What is Dynamic Testing?


Under Dynamic Testing, a code is executed. It checks for functional behavior of software system,
memory/cpu usage and overall performance of the system. Hence the name "Dynamic"
• The main objective of this testing is to confirm that the software product works in
conformance with the business requirements. This testing is also called an Execution
technique or validation testing.
• Dynamic testing executes the software and validates the output with the expected outcome.
Dynamic testing is performed at all levels of testing and it can be either black or white box
testing.

Structural Testing:
 Structure-based testing, therefore, can be defined as a type of software testing that tests
the code’s structure and intended flows. For example, verifying the actual code for aspects
like the correct implementation of conditional statements, and whether every statement in
the code is correctly executed. It is also known as structure-based testing.
● To carry out this type of testing, we need to thoroughly understand the code. This is why this
testing is usually done by the developers who wrote the code as they understand it best.

● Structural testing is the type of testing carried out to test the structure of code. It is also
known as White Box testing or Glass Box testing. This type of testing requires knowledge of
the code, so, it is mostly done by the developers. It is more concerned with how system does
it rather than the functionality of the system. It provides more coverage to the testing. For
ex, to test certain error message in an application, we need to test the trigger condition for
it, but there must be many trigger for it. It is possible to miss out one while testing the
requirements drafted in SRS. But using this testing, the trigger is most likely to be covered
since structural testing aims to cover all the nodes and paths in the structure of code.

● Structural testing is a type of software testing which uses the internal design of the software
for testing or in other words the software testing which is performed by the team which
knows the development phase of the software, is known as structural testing.
● Structural testing is basically related to the internal design and implementation of the
software i.e. it involves the development team members in the testing team. It basically
tests different aspects of the software according to its types. Structural testing is just the
opposite of behavioral testing.
● The knowledge of the code's internal executions and how the software is implemented is a
necessity for the test engineer to implement the structural testing.
● Throughout the structural testing, the test engineer intends on how the software performs,
and it can be used at all levels of testing.

The intention behind the testing process is finding out how the system works not the functionality
of it. To be more specific, if an error message is popping up in an application there will be a reason
behind it. Structural testing can be used to find that issue and fix it
Advantages of Structural Testing:
· Forces test developer to reason carefully about implementation
Reveals errors in "hidden" code
· Spots the Dead Code or other issues with respect to best programming practices.
Disadvantages of Structural Box Testing:
· Expensive as one has to spend both time and money to perform white box testing.
Every possibility that few lines of code is missed accidentally.
· In-depth knowledge about the programming language is necessary to perform white box testing.

Functional Testing
• FUNCTIONAL TESTING is a type of software testing that validates the software system
against the functional requirements/specifications. The purpose of Functional tests is to test
each function of the software application, by providing appropriate input, verifying the
output against the Functional requirements.
• Functional testing mainly involves black box testing and it is not concerned about the source
code of the application. This testing checks User Interface, APIs, Database, Security,
Client/Server communication and other functionality of the Application Under Test. The
testing can be done either manually or using automation.
• Functional Testing is a type of Software Testing in which the system is tested against the
functional requirements and specifications. Functional testing ensures that the requirements
or specifications are properly satisfied by the application. This type of testing is particularly
concerned with the result of processing. It focuses on simulation of actual system usage but
does not develop any system structure assumptions.

Functional Testing:
It is a type of software testing which is used to verify the functionality of the software application,
whether the function is working according to the requirement specification. In functional testing, each
function tested by giving the value, determining the output, and verifying the actual output with the
expected value. Functional testing performed as black-box testing which is presented to confirm that
the functionality of an application or system behaves as we are expecting. It is done to verify the
functionality of the application.
Functional testing also called as black-box testing, because it focuses on application specification
rather than actual code. Tester has to test only the program rather than the system.

How to do Functional Testing


Following is a step by step process on How to do Functional Testing :
✔ Understand the Functional Requirements
✔ Identify test input or test data based on requirements
✔ Compute the expected outcomes with selected test input values
✔ Execute test cases
✔ Compare actual and computed expected results

Code Coverage :
Code coverage is a software testing metric that determines the number of lines of code that is
successfully validated under a test procedure, which in turn, helps in analyzing how comprehensively
a software is verified.
Code coverage is a software testing metric or also termed as a Code Coverage Testing which helps in
determining how much code of the source is tested which helps in accessing quality of test suite and
analyzing how comprehensively a software is verified. Actually in simple code coverage refers to the
degree of which the source code of the software code has been tested. This Code Coverage is
considered as one of the form of white box testing
As we know at last of the development each client wants a quality software product as well as the
developer team is also responsible for delivering a quality software product to the customer/client.
Where this quality refers to the product’s performance, functionalities, behavior, correctness,
reliability, effectiveness, security, and maintainability. Where Code Coverage metric helps in
determining the performance and quality aspects of any software.
Code coverage is one such software testing metric that can help in assessing the test performance and
quality aspects of any software.
Such an insight will equally be beneficial to the development and QA team. For developers, this metric
can help in dead code detection and elimination. On the other hand, for QA, it can help to check
missed or uncovered test cases. They can track the health status and quality of the source code while
paying more heed to the uncaptured parts of the code.

• Code Coverage testing is determining how much code is being tested. It can be calculated
using the formula:
• Code Coverage = (Number of lines of code executed)/(Total Number of lines of code in a
system component) * 100
Code Coverage Criteria
1.Statement coverage: how many of the statements in the program have been executed.
2.Branches coverage: how many of the branches of the control structures (if statements for
instance) have been executed.
Condition coverage: how many of the boolean sub-expressions have been tested for a true and
a false value.
3.Line coverage: how many of lines of source code have been tested.
These metrics are usually represented as the number of items actually tested, the items found in
your code, and a coverage percentage (items tested / items found)
4.Function coverage: how many of the functions defined have been called.

Code Complexity Testing


• Cyclomatic Complexity in Software Testing is a testing metric used for measuring the
complexity of a software program. It is a quantitative measure of independent paths in the
source code of a software program. Cyclomatic complexity can be calculated by using
control flow graphs or with respect to functions, modules, methods or classes within a
software program.
• independent path is defined as a path that has at least one edge which has not been
traversed before in any other paths.
• Cyclomatic Complexity is software metric useful for structured or White Box Testing. It is
mainly used to evaluate complexity of a program. If the decision points are more, then
complexity of the program is more. If program has high complexity number, then probability
of error is high with increased time for maintenance and trouble shoot
• For example, if source code contains no control flow statement then its cyclomatic
complexity will be 1 and source code contains a single path in it. Similarly, if the source code
contains one if condition then cyclomatic complexity will be 2 because there will be two
paths one for true and the other for false.
• This metric was developed by Thomas J. McCabe in 1976 and it is based on a control flow
representation of the program. Control flow depicts a program as a graph which consists of
Nodes and Edges
• In the graph, Nodes represent processing tasks while edges represent control flow between
the nodes.

Uses of Cyclomatic Complexity:


• Cyclomatic Complexity can prove to be very helpful for developers and testers.
• Helps developers and testers to determine independent path executions
• Developers can assure that all the paths have been tested atleast once
• Helps us to focus more on the uncovered paths
• Improve code coverage in Software Engineering
• Evaluate the risk associated with the application or program
• Using these metrics early in the cycle reduces more risk of the program

Black box testing


Black Box Testing is a software testing method in which the functionalities of software applications
are tested without having knowledge of internal code structure, implementation details and internal
paths. Black Box Testing mainly focuses on input and output of software applications and it is
entirely based on software requirements and specifications. It is also known as Behavioral Testing.
Black box testing is a type of software testing in which the functionality of the software is not
known. The testing is done without the internal knowledge of the products.
• It is also known as specification based testing
• The black box testing is also known as an opaque, closed box, function-centric testing. It
emphasizes on the behavior of the software. Black box testing checks scenarios where the
system can break

Types of Black Box Testing


There are many types of Black Box Testing but the following are the prominent ones -
• Functional testing - This black box testing type is related to the functional requirements of a
system; it is done by software testers.
• Non-functional testing - This type of black box testing is not related to testing of specific
functionality, but non-functional requirements such as performance, scalability, usability.
• Regression testing – Regres is done after code fixes, upgrades or any other system
maintenance to check the new code has not affected the existing code.

Black Box Testing Techniques


In order to systematically test a set of functions, it is necessary to design test cases. Testers can
create test cases from the requirement specification document using the following Black Box Testing
techniques.
• Equivalence Partitioning
• Boundary Value Analysis
• Decision Table Testing
• State Transition Testing
• Error Guessing
• Graph-Based Testing Methods
• Comparison Testing
1.Boundary Value Analysis(BVA)
• Boundary Value Technique is used to test boundary values, boundary values are those that
contain the upper and lower limit of a variable. It tests, while entering boundary value
whether the software is producing correct output or not.
• Boundary value testing is focused on the values at boundaries. This technique determines
whether a certain range of values are acceptable by the system or not. It is very useful in
reducing the number of test cases. It is most suitable for the systems where an input is
within certain ranges.
• Boundary value analysis is one of the widely used case design technique for black box
testing. It is used to test boundary values because the input values near the boundary have
higher chances of error.
• Whenever we do the testing by boundary value analysis, the tester focuses on, while
entering boundary value whether the software is producing correct output or not.
• Boundary values are those that contain the upper and lower limit of a variable. Assume that,
age is a variable of any function, and its minimum value is 18 and the maximum value is 30,
both 18 and 30 will be considered as boundary values.
• The basic assumption of boundary value analysis is, the test cases that are created using
boundary values are most likely to cause an error.
• There is 18 and 30 are the boundary values that's why tester pays more attention to these
values, but this doesn't mean that the middle values like 19, 20, 21, 27, 29 are ignored. Test
cases are developed for each and every value of the range.
Assume, we have to test a field which accepts Age 18 – 56

• Minimum boundary value is 18


• Maximum boundary value is 56
• Valid Inputs: 18,19,55,56
• Invalid Inputs: 17 and 57
• Test case 1: Enter the value 17 (18-1) = Invalid
• Test case 2: Enter the value 18 = Valid
• Test case 3: Enter the value 19 (18+1) = Valid
• Test case 4: Enter the value 55 (56-1) = Valid
• Test case 5: Enter the value 56 = Valid
• Test case 6: Enter the value 57 (56+1) =Invalid
2. Equivalence partitioning
• Equivalence partitioning is a technique of software testing in which input data divided into
partitions of valid and invalid values, and it is mandatory that all partitions must exhibit the
same behavior.
• This technique is also known as Equivalence Class Partitioning (ECP). In this technique, input
values to the system or application are divided into different classes or groups based on its
similarity in the outcome.
• Hence, instead of using each and every input value we can now use any one value from the
group/class to test the outcome. In this way, we can maintain the test coverage while we
can reduce a lot of rework and most importantly the time spent.
• As present in the above image, an “AGE” text field accepts only the numbers from 18 to 60.
There will be three sets of classes or groups.
Example:
Two invalid classes will be:
• a) Less than or equal to 17.
• b) Greater than or equal to 61.
• One valid class will be anything between 18 to 60.
• We have thus reduced the test cases to only 3 test cases based on the formed classes
thereby covering all the possibilities. So, testing with anyone value from each set of the class
is sufficient to test the above scenario.

3. Decision Table
• Decision Table Technique is a systematic approach where various input combinations and
their respective system behavior are captured in a tabular form. It is appropriate for the
functions that have a logical relationship between two and more than two inputs.
• Decision Table is aka Cause-Effect Table. This test technique is appropriate for functionalities
which has logical relationships between inputs (if-else logic). In Decision table technique, we
deal with combinations of inputs. To identify the test cases with decision table, we consider
conditions and actions. We take conditions as inputs and actions as outputs.
• In some instances, the inputs combinations can become very complicated for tracking several
possibilities.
• Such complex situations rely on decision tables, as it offers the testers an organized view
about the inputs combination and the expected output.

Let's understand it by an example:


• Most of us use an email account, and when you want to use an email account, for this you
need to enter the email and its associated password.
• If both email and password are correctly matched, the user will be directed to the email
account's homepage; otherwise, it will come back to the login page with an error message
specified with "Incorrect Email" or "Incorrect Password."
• Now, let's see how a decision table is created for the login function in which we can log in by
using email and password. Both the email and the password are the conditions, and the
expected result is action.
In the table, there are four conditions or test cases to test the login function. In the first condition if
both email and password are correct, then the user should be directed to account's Homepage.
In the second condition if the email is correct, but the password is incorrect then the function should
display Incorrect Password. In the third condition if the email is incorrect, but the password is correct,
then it should display Incorrect Email.
Now, in fourth and last condition both email and password are incorrect then the function should
display Incorrect Email.
In this example, all possible conditions or test cases have been included, and in the same way, the
testing team also includes all possible test cases so that upcoming bugs can be cured at testing level.

4. State Transition Technique


● The general meaning of state transition is, different forms of the same situation, and
according to the meaning, the state transition method does the same. It is used to capture
the behavior of the software application when different input values are given to the same
function.
● State Transition Testing is a technique that is used to test the different states of the system
under test. The state of the system changes depending upon the conditions or events. The
events trigger states which become scenarios and a tester needs to test them.
● .In some systems, significant responses are generated when the system transitions from one
state to another. A common example is a login mechanism which allows users to
authenticate, but after a specific number of login attempts, transition to a different state,
locking the account.
● If testers identify a state transition mechanism, they can design test cases that probe the
system when it transitions states. For example, for a system that locks the account after five
failed login attempts, a test case can check what happens at the sixth login attempt.
● We all use the ATMs, when we withdraw money from it, it displays account details at last.
Now we again do another transaction, then it again displays account details, but the details
displayed after the second transaction are different from the first transaction, but both
details are displayed by using the same function of the ATM. So the same function was used
here but each time the output was different, this is called state transition. In the case of
testing of a software application, this method tests whether the function is following state
transition specifications on entering different inputs
● This applies to those types of applications that provide the specific number of attempts to
access the application such as the login function of an application which gets locked after
the specified number of incorrect attempts. Let's see in detail, in the login function we use
email and password, it gives a specific number of attempts to access the application, after
crossing the maximum number of attempts it gets locked with an error message.
● There is a login function of an application which provides a maximum three number of
attempts, and after exceeding three attempts, it will be directed to an error page.
STATE LOGIN VALIDATION REDIRECTED

S1 First Invalid S2
Attempt

S2 Second Invalid S3
Attempt

S3 Third Invalid S5
Attempt

S4 Home
Page

S5 Error Page

In the above state transition table, we see that state S1 denotes first login attempt. When the first
attempt is invalid, the user will be directed to the second attempt (state S2). If the second attempt is
also invalid, then the user will be directed to the third attempt (state S3). Now if the third and last
attempt is invalid, then the user will be directed to the error page (state S5).
But if the third attempt is valid, then it will be directed to the homepage (state S4).

5. Requirements based Testing


Requirements-based testing is a testing approach in which test cases, conditions and data are
derived from requirements. It includes functional tests and also non-functional attributes such as
performance, reliability or usability.
• The requirements-based testing (RBT) process is comprised of two phases: ambiguity
reviews and cause-effect graphing.
• An ambiguity review is a technique for identifying ambiguities in functional requirements to
improve the quality of those requirements.
• Cause-effect graphing is a test-case design technique that derives the minimum number of
test cases to cover 100 percent of the functional requirements.
• It employs many methods like creating graphs for cause and effect, analyzing test conditions
and analyzing ambiguities. Usually a list of defects in the requirements document is used to
detect requirements ambiguities and then remove them.
• To determine test conditions that must be covered, one must make an in-depth study of the
requirements document.
Stages in Requirements based Testing:
1.Defining Test Completion Criteria - Testing is completed only when all the functional and non-
functional testing is complete.
2.Design Test Cases - A Test case has five parameters namely the initial state or precondition,
data setup, the inputs, expected outcomes and actual outcomes.
3.Execute Tests - Execute the test cases against the system under test and document the results.
4.Verify Test Results - Verify if the expected and actual results match each other.
5.Verify Test Coverage - Verify if the tests cover both functional and non-functional aspects of
the requirement.
6. Track and Manage Defects - Any defects detected during the testing process goes through
the defect life cycle and are tracked to resolution. Defect Statistics are maintained which will give us
the overall status of the project.

6. Positive Testing
Positive Testing is a type of testing which is performed on a software application by providing the
valid data sets as an input. It checks whether the software application behaves as expected with
positive inputs or not. Positive testing is performed in order to check whether the software
application does exactly what it is expected to do.
• There is a text box in an application which can accept only numbers. Entering values up to
99999 will be acceptable by the system and any other values apart from this should not be
acceptable. To do positive testing, set the valid input values from 0 to 99999 and check
whether the system is accepting the values.

Positive Testing is testing process where the system is validated against the valid input data. In this
testing, tester always check for only valid set of values and check if a application behaves as expected
with its expected inputs. The main intention of this testing is to check whether software application does
that what it is supposed to do. Positive Testing always tries to prove that a given product and project
always meets the requirements and specifications. Positive testing is testing of the normal day to day life
scenarios and to check the expected behavior of application.
Example of Positive Testing:Consider a scenario where you want to test an application which contains a
simple text box to enter age and requirements say that it should take only numerical values. So here
provide only positive numerical values to check whether it is working as expected or not is the Positive
Testing.

7. Negative Testing
• Negative Testing is a testing method performed on the software application by providing
invalid or improper data sets as input. It checks whether the software application behaves as
expected with the negative or unwanted user inputs. The purpose of negative testing is to
ensure that the software application does not crash and remains stable with invalid data
inputs.
• For example -
• Negative testing can be performed by entering characters A to Z or from a to z. Either
software system should not accept the values or else it should throw an error message for
these invalid data inputs.

In Negative Testing the system is validated by providing invalid data as input. A negative test checks if an
application behaves as expected with its negative inputs. This is to test the application that does not do
anything that it is not supposed to do so. Such testing is to be carried out keeping negative point of view
& only execute the test cases for only invalid set of input data.

The main reason behind Negative testing is to check the stability of the software application against the
influences of different variety of incorrect validation data set. Negative testing helps to find more defects
& improve the quality of the software application under test but it should be done once the positive
testing is complete.
Example of Negative Testing :Considering example as we know phone no field accepts only numbers and
does not accept the alphabets and special characters but if we type alphabets and special characters on
phone number field to check it accepts the alphabets and special characters or not than it is negative
testing.

Here, expectation is that the text box will not accept invalid values and will display an error message for
the wrong entry.
In both the testing, the following needs to be considered:
• Input data
• An action which needs to be performed
• Output Result
Testing Technique used for Positive and Negative Testing:
Following techniques are used for Positive and negative validation of testing is:
• Boundary Value Analysis
• Equivalence Partitioning

8. User Documentation Testing


User Documentation covers all the manuals, user guides, installation guides, setup guides, read
me files, software release notes, and online help that are provided along with the software to
help the end user to understand the software system.
• User Documentation Testing should have two objectives:-
1) To check if what is stated in the document is available in the software
2) To check if what is there in the product is explained correctly in the document
• This testing is plays a vital role as the users will refer this document when they start using the
software at their location. a badly written document can put off a user and bias them against the
product even the product offers rich functionality.
• Defects found in the user documentation need to be tracked to closure like any regular software
defect. Because these documents are the first interactions the users have with the product. A
good User Documentation aids in reducing customer support calls. The effort and money spend
on this effort would form a valuable investment in the long run for the organization.
• A good observation is that projects that have all the documents in place have a high level of
maturity as compared to the un-documented project.
• Documentation for an organization saves time, cost and makes testing easy and systematic.
• It is equally important for the client’s acceptance because documentation defines a software
product’s effectiveness. If the documentation is poor, deficient, or defective, it may affect the
quality of software or application. QA practices should be documented such that they are
repeatable, and are not dependent on any individuals.
• During manual software testing, documentation will include specifications, test designs, test
plan, prevalent business rules, reports, configurations details, changes in code, test cases, bug
reports, user manuals, etc.
• As a part of documentation, there needs to be a system for easily finding and obtaining
documents and determining what documentation will have a particular piece of information.
• Once the details are documented, they should be placed at a common databank where easy
search and timely availability of the records is feasible. These documents come handy in times
of any dispute or comparing the requirement specification with the delivered product.
Few essential software testing documents that need to be used and maintained on a day to day
basis:
1) Test design document
2) Test case specification
3) Test Strategy
4) Test summary reports
5) Document of Weekly Status Report
6) User Documents
7) Document of User Acceptance Report
8) Report of Risk Assessment
9) Test Log document
10) Test plan document
11) Bug reports document
12) Test data document
13) Test analysis

You might also like