Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software Testing Microproject

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

P K TECHNICAL CAMPUS,CHAKAN

Mission o/' Pratap Khandebharad

A MICRO-PROJECT REPORT ON

" Static And Dynamic Testing"

SUBMITTED BY

Avishkar Khenat

UNDER GUIDANCE

Prof. Amruta Mallasheety

i
P. K TECHNICAL CAMPUS,CHAKAN

Mission o/' Pratap Khandeb


CERTIFICATE

" Static And Dynamic Testing"

Submited By
Avishkar Khenat

The report has been approved as it satisfies the academic requirements in


respect of micro- project work prescribed for the course.

HOD
What is Static Testing? Software Testing
Techniques
What is Static Testing?
➢ Static Testing is a software testing technique which is used to
check defects in software application without executing the code.
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.

Its counterpart is Dynamic Testing which checks an application when


the code is run. Refer to this tutorial for a detailed difference
between static and dynamic 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.

Table of Content:










Static Testing Techniques
• Informal Reviews
• Walkthroughs
• Technical Reviews
• Inspections
• Static Analysis
• Data Flow
• Control Flow

Tools used for Static Testing


Various tools used for Static Testing are as follow,

• Checkstyle
• Soot
• SourceMeter

What is Testing Review?


➢ A review in Static Testing is a process or meeting conducted to
find the potential defects in the design of any program. Another
significance of review is that all the team members get to know
about the progress of the project and sometimes the diversity of
thoughts may result in excellent suggestions. Documents are
directly examined by people and discrepancies are sorted out.

Reviews can further be classified into four parts:

• Informal reviews
• Walkthroughs
• Technical review
• Inspections

During the Review process four types of participants that take part in
testing are:

• Moderator: Performs entry check, follow up on rework, coaching


team member, schedule the meeting.
• Author: Takes responsibility for fixing the defect found and
improves the quality of the document
• Scribe: It does the logging of the defect during a review and
attends the review meeting
• Reviewer: Check material for defects and inspects
• Manager: Decide on the execution of reviews and ensures the
review process objectives are met.

Types of defects which can be easier to find during static testing are:

• Deviations from standards


• Non-maintainable code
• Design defects
• Missing requirements
• Inconsistent interface specifications
• Usually, the defect discovered during static testing are due
to security vulnerabilities, undeclared variables, boundary
violations, syntax violations, inconsistent interface, etc.
➢ Tips for Successful Static Testing Process
Some useful tips to perform a static testing process in Software
Engineering.

• Focus only on things that really count


• Explicitly plan and track review activities. A software walkthrough
and inspection are generally composite into peer’s reviews
• Train participants with Examples
• Resolve people issues
• Keep process formal as the project culture
• Continuous Improvement – Process and Tools
• By removing the major delays in test execution, testing cost and
time can be reduced

Why Static Testing?


Static testing is performed due to the following reasons

• Early defect detection and correction


• Reduced development timescales
• Reduced testing cost and time
• For improvement of development productivity
• To get fewer defect at a later stage of testing

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

➢ How Static Testing is Performed


To perform Static Testing, it is done in the following ways,

• Carry out the inspection process to completely inspect the design


of the application
• Use a checklist for each document under review to ensure all
reviews are covered completely

The various activities for performing Static Testing are:

1. Use Cases Requirements Validation: It validates that all the end-


user actions are identified, as well as any input and output
associated with them. The more detailed and thorough the use
cases are, the more accurate and comprehensive the test cases
can be.
2. Functional Requirements Validation: It ensures that the
Functional Requirements identify all necessary elements. It also
looks at the database functionality, interface listings, and
hardware, software, and network requirements.
3. Architecture Review: All business level process like server
locations, network diagrams, protocol definitions, load balancing,
database accessibility, test equipment, etc.
4. Prototype/Screen Mockup Validation: This stage includes
validation of requirements and use cases.
5. Field Dictionary Validation: Every field in the UI is defined well
enough to create field level validation test cases. Fields are check
for min/max length, list values, error messages, etc.
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. If you’re
looking for tools to aid in this process, here’s a comprehensive list
• of some of the best code review tools that you may find useful.
What is Dynamic Testing? Types,
Techniques & Example
Dynamic Testing
Dynamic Testing is a software testing method used to test the dynamic
behaviour of software code. The main purpose of dynamic testing is to
test software behaviour with dynamic variables or variables which are
not constant and finding weak areas in software runtime environment.
The code must be executed in order to test the dynamic behavior.
We all know that Testing is verification and validation, and it takes 2 Vs
to make testing complete. Out of the 2 Vs, Verification is called a Static
testing and the other “V”, Validation is known as Dynamic testing.

Dynamic Testing Example


Let’s understand How to do Dynamic Testing with an example:

Suppose we are testing a Login Page where we have two fields say
“Username” and “Password” and the Username is restricted to
Alphanumeric.

When the user enters Username as “Guru99”, the system accepts the
same. Where as when the user enters as Guru99@123 then the
application throws an error message. This result shows that the code is
acting dynamically based on the user input.

Dynamic testing is when you are working with the actual system by
providing an input and comparing the actual behavior of the application
to the expected behavior. In other words, working with the system with
the intent of finding errors.

So based on the above statements we can say or conclude that dynamic


testing is a process of validating software applications as an end user
under different environments to build the right software.
What does dynamic testing do?
The main aim of the Dynamic tests is to ensure that software works
properly during and after the installation of the software ensuring a
stable application without any major flaws( this statement is made
because no software is error free, testing only can show presence of
defects and not absence)

The main purpose of the dynamic test is to ensure consistency to the


software; lets discuss this with an example.

In a Banking Application, we find different screens like My Accounts


Section, Funds Transfer, Bill Pay, etc.. All these screens contain amount
field which accepts some characters.

Let’s say My Accounts field displays amount as 25,000 and Funds


Transfer as $25,000 and Bill pay screen as $25000 though the amount is
the same, the way amount is displayed is not the same hence making
the software nonconsistent.

Consistency is not only limited to the functionality it also refers to


different standards like performance, usability, compatibity etc, hence
it becomes very important to perform Dynamic Testing.

Types of Dynamic Testing


Dynamic Testing is classified into two categories

• White Box Testing


• Black Box Testing

The below pictorial representation gives us an idea about types of


Dynamic Testing, Levels of Testing, etc.
Let us discuss briefly each type of testing and it’s intended purpose

White Box Testing – White Box Testing is a software testing method in


which the internal structure/ design is known to the tester. The main
aim of White Box testing is to check on how System is performing based
on the code. It is mainly performed by the Developers or White Box
Testers who has knowledge on the programming.

Black Box Testing – Black Box Testing is a method of testing in which


the internal structure/ code/design is NOT known to the tester. The
main aim of this testing to verify the functionality of the system under
test and this type of testing requires to execute the complete test suite
and is mainly performed by the Testers, and there is no need of any
programming knowledge.
The Black Box Testing is again classified into two types.

They are

• Functional Testing
• Non-Functional Testing

Functional Testing:

Functional testing is performed to verify that all the features developed


are according to the functional specifications, and it is performed by
executing the functional test cases written by the QA team, in functional
testing phase, system is tested by providing input, verifying the output
and comparing the actual results with the expected results.

There are different Levels of Functional Testing out of which the most
important are

• Unit Testing – Generally Unit is a small piece of code which


is testable, Unit Testing is performed at individual unit of
software and is performed by developers
• Integration Testing – Integration Testing is the testing
which is performed after Unit Testing and is performed by
combining all the individual units which are testable and is
performed either by developers or testers
• System Testing – System Testing is a performed to ensure
whether the system performs as per the requirements and is
generally performed when the complete system is ready, it
is performed by testers when the Build or code is released to
QA team
• Acceptance Testing – Acceptance testing is performed to
verify whether the system has met the business
requirements and is ready to use or ready for deployment
and is generally performed by the end users.
Non- Functional Testing: Non-Functional testing is a testing technique
which does not focus on functional aspects and mainly concentrates on
the nonfunctional attributes of the system such as memory leaks,
performance or robustness of the system. Non-Functional testing is
performed at all test levels.

There are many Non-Functional Testing Techniques out of which the


most important are

• Performance Testing – Performance Testing is performed


to check whether the response time of the system is normal
as per the requirements under the desired network load.
• Recovery Testing – Recovery testing is a method to verify
on how well a system is able to recover from crashes and
hardware failures.
• Compatibility Testing – Compatibility testing is performed
to verify how the system behaves across different
environments.
• Security testing – Security testing is performed to verify the
robustness of the application, i.e to ensure that only the
authorizes users/roles are accessing the system
• Usability testing – Usability testing is a method to verify the
usability of the system by the end users to verify on how
comfortable the users are with the system.

Dynamic Testing Techniques


Dynamic Testing Techniques in STLC consists of different tasks like
Requirements Analysis for the tests, Test Planning, Test case design and
implementation, Test environment setup, Test case execution, Bug
reporting and finally Test closure. All the tasks in dynamic testing
techniques are dependent on the completion of the previous task in the
testing process.
In STLC, we can say that actual Dynamic Testing Process starts from
Test Case Design, let’s discuss each activity in details.

Before getting into the process lets discuss the strategy that needs to be
followed for Dynamic Testing.
Test Strategy should mainly focus on the resources available and the
timeframe. Based on these factors, the objective of the testing, the
scope of testing, phases or cycles of testing, type of environment,
assumptions or challenges that might be faced, risks, etc. has to be
documented.

Once the strategy is defined and is accepted by the management then


the actual process test case design starts

What is Test design and Implementation

In this phase we identify the,

• Features to be tested
• Derive the Test Conditions
• Derive the coverage Items
• Derive the Test Cases

Test Environment Setup

We have to ensure that Testing Environment should always be similar to


the Production environment, in this phase we have to install the build
and manage the test machines.

Test Execution

During this phase, test cases are actually executed.

Bug report captured

Based on the Execution if the Expected and Actual Results are not same
then the Test case has to be marked as Fail and a Bug should be logged.
Advantages of Dynamic Testing
• Dynamic Testing can reveal the uncovered defects that are
considered to be too difficult or complicated and which cannot be
covered through static Analysis
• In Dynamic Testing, we execute the software, end to end, ensuring
error free software which in turn increases the quality of a product
and project.
• Dynamic Testing becomes an essential Tool for detecting any
security Threats
Disadvantages of Dynamic Testing
• Dynamic Testing is Time Consuming because it executes the
application/software or code which requires huge amount of
Resources
• Dynamic Testing increases the cost of project/product because it
does not start early in the software lifecycle and hence any issues
fixed in later stages can result in an increase of cost.

Conclusion:

In Software Engineering, Verification and Validation are two measures


used to check that the software product meets the requirements
specifications. Static testing involves verification whereas dynamic
testing involves validation. Together they help to deliver a cost effective
Quality

You might also like