29-11 Static and Dynamic Testing1234
29-11 Static and Dynamic Testing1234
Static testing refers to a type of test in which no live application is used. This type
of testing allows you to identify and correct mistakes earlier in the development
process, resulting in fewer problems later on. It also aids in the detection and
correction of flaws that may not be discovered by dynamic testing.
In Static Testing, the software application is tested with Review, Walk Through,
Inspection, and Analysis.
To ensure that the code is correct, developers must adhere to rigorous testing
procedures. This testing aims to find mistakes from the requirement gathering
phase of SDLC (software development life cycle) all the way through source code.
Static testing can be used to catch defects in the documentation phases, which
helps to prevent errors at later stages and is therefore cost-effective.
Types of defects that are easier to find during static testing are deviations from
standards, missing requirements, design flaws, unused variables, non-
maintainable code, and inconsistent interface specifications.
#2. Walkthrough
The document’s author will explain the document to their team during a
walkthrough. Participants would ask questions, and any notes are taken down.
#4. Inspections
Moderator will do a comprehensive examination as part of the procedure to
detect flaws.
#1. Author
Author’s responsibility is to fix the errors found and improves the document’s
quality.
#2. Moderator
The Moderator is in charge of checking for entries, following up on reworks,
coaching team members and to schedule the meetings.
#3. Scribe
Logs the error during a review.
#4. Reviewer
Examine the material for defects.
#5. Manager
Determine how evaluations will be carried out and make sure that the review
process goals are achieved.
Static code analysis can be done both either manually or through automation
with the use of various software testing tools.
Some of the tools which can be used for static analysis of code are:
Checkstyle
Clang
Find Bugs
JArchitect
JTest
Sonarqube
Soot
Source meter
Thread Safe
Types of Static Analysis
Static Analysis is classified into three types:
In Dynamic testing, the software is tested for the given values, and the results are
examined.
In Dynamic testing, testers execute the test cases by giving input values and
validate the expected output with the actual output.
Say, we have the following parameters (username and passwords) to test login
functionality of Gmail account
When we pass the above test data while testing Gmail login functionality, Gmail
takes us to the inbox while we pass the parameter 1 and throws an error message
while we pass the parameters 2 & 3. This result indicates that the code is
dyanmically responding based on the user input.
Here we know that the parameters 2 & 3 values are incorrect but we still pass
those to know how the system is performing with incorrect input data.
The picture below shows us the many sorts of dynamic testing, levels of testing,
and so on.
White box testing is a software testing method used to test how the application
is performing based on the code.
White box testing is usually performed by the developers or white box testers
who has knowledge on the internal structure/code/design.
Black Box Testing is usually performed by testers who don’t require any
programming expertise.
Functional Testing
Non-functional Testing
Functional Testing
Functional testing is done to verify that each function of the application behaves
as specified in the requirement. Here testes test all the funcitionalities by
providing appropriate input to validate the actual output with the expected
output.
In simple words, what the system actually does is functional testing.
Non-functional Testing
Non-functional testing is done to improve the user experience on how fast the
application responds to a request. it refers to various aspects of the software such
as performance, load, stress, scalability, compatibility, security, etc.,
Unit Testing
Integration Testing
System Testing
Accpetance Testing
Performance Testing
Usability Testing
Compatibility Testing
Recovery Testing
Security Testing
Usability Testing: To assess whether the application is easy to use or not. This
testing seeks to determine if the end-user can easily understand and use the
software. It should be self-explanatory, and no training should be required to run
it. Read more about Usability Testing here.