0% found this document useful (0 votes)
23 views

ISE Slide 8

Uploaded by

Amna Mushtaq
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

ISE Slide 8

Uploaded by

Amna Mushtaq
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Introduction to Software Engineering

Slide no 8 (week 8)
Software Testing
• is a process of verifying and validating whether the program is performing
correctly with no bugs.
• It is the process of analyzing or operating software for the purpose of
finding bugs. It also helps to identify the defects/flaws/ errors that may
appear in the application code, which needs to be fixed.
• Testing not only means fixing the bug in the code, but also to check whether
the program is behaving according to the given specifications and testing
strategies
Software Type Testing
Types of Software Testing, depend upon different types of defects. For example:
• Functional Testing is done to detect functional defects in a system.
• Performance Testing is performed to detect defects when the system does
not perform according to the specifications
• Usability Testing to detect usability defects in the system.
• Security Testing is done to detect bugs/defects in the security of the system
Software Type Testing cont..
• Static and Dynamic Analysis: Static testing does not require execution of
the code for finding defects, whereas in dynamic testing, software code is
executed to demonstrate the results of running tests.
• Verification and Validation: Software testing is done considering these two
factors.
– Verification: This verifies whether the product is done according to the
specification
– Validation: This checks whether the product meets the customer
requirement
• Defects and Failures: defects are not caused only due to the coding errors,
but most commonly due to the requirement gaps in the non- functional
requirement, such as usability, testability, scalability, maintainability,
performance and security. A failure is caused due to the deviation between
an actual and an expected result. But not all defects result in failures.
Software Testing Process
• Create Test Plan
• Design Test Case
• Write Test Case
• Review Test Case
• Execute Test Case
• Examine Test Results
• Perform Post-mortem Reviews
Types of S/W Testing
• Manual Scripted Testing: This is considered to be one of the oldest type of
software testing methods, in which test cases are designed and reviewed by
the team, before executing it.
• Automated Testing: This software testing type applies automation in the
testing, which can be applied to various parts of a software process.
• Software bug testing or software testing to log a bug, explains the contents
of bugs that are to be fixed. This can be done with the help of various bug
tracking tools such as Bugzilla and defect tracking management tools like
the Test Director.
White Box Testing
• It is the process of giving the input to the system and checking how the
system processes the input, to generate the output. It is mandatory for a
tester to have the knowledge of the source code.
White Box Testing cont…
• White box testing strategy deals with the internal logic and structure of the
code.
• White box testing is also called glass, structural, open box or clear box
testing.
• The tests written based on the white box testing strategy incorporate
coverage of the code written, branches, paths, statements and internal
logic of the code etc.
• In order to implement white box testing, the tester has to deal with the code
and hence is needed to possess knowledge of coding and logic .
• White box tests also need the tester to look into the code and find out
which unit/statement/chunk of the code is malfunctioning.
Advantages of White box testing
• As the knowledge of internal coding structure is a prerequisite, it becomes
very easy to find out which type of input/data can help in testing the
application effectively.
• The other advantage of white box testing is that it helps in optimizing the
code
• It helps in removing the extra lines of code, which can bring in hidden
defects.
Disadvantages of white box testing
• As knowledge of code and internal structure is a prerequisite, a skilled tester
is needed to carry out this type of testing, which increases the cost.
• And it is nearly impossible to look into every
bit of code to find out hidden errors, which may create problems, resulting
in failure of the application.
Types of White Box testing
• Unit Testing: This type of testing is done at the developer's site to check
whether a particular piece/unit of code is working fine. Unit testing deals
with testing the unit as a whole.
• Static and Dynamic Analysis: In static analysis, it is required to go through
the code in order to find out any possible defect in the code. Whereas, in
dynamic analysis the code is executed and analyzed for the output.
• Statement Coverage: This type of testing assures that the code is executed
in such a way that every statement of the application is executed at least
once.
• Decision Coverage: This type of testing helps in making decisions by executing
the application, at least once to judge whether it results in true or false.
• Condition Coverage: In this type of software testing, each and every
condition is executed by making it true and false, in each of the ways at
least once.
• Path Coverage: Each and every path within the code is executed at least
once to get a full path coverage, which is one of the important parts of the
white box testing.
Black Box Testing
• It explains the process of giving the input to the system and checking the
output, without considering how the system generates the output. It is also
called Behavioral Testing.
• Functional Testing: In this type of testing, the software is tested for the
functional requirements. This checks whether the application is behaving
according to the specification.
• Performance Testing: This type of testing checks whether the system is
performing properly, according to the user's requirements.
• Load Testing : In this type of performance testing, the system is raised
beyond the limits in order to check the performance of the system when
higher loads are applied.
• Stress Testing : In this type of performance testing, the system is tested
beyond the normal expectations or operational capacity
• Usability Testing: This type of testing is also called as Testing for User
Friendliness'. This testing checks the ease of use of an application.
• Regression Testing: Regression testing is one of the most important types of
testing, in which it checks whether a small change in any component of the
application does not affect the unchanged components.
• Smoke Testing: Smoke testing is used to check the testability of the
application. It is also called 'Build Verification Testing or Link Testing'. That
means, it checks whether the application is ready for further major testing.
• Sanity Testing: Sanity testing checks for the behavior of the system. This
type of software testing is also called Narrow Regression Testing.
• Parallel Testing: Parallel testing is done by comparing results from two
different systems like old vs new or manual vs automated.
• Recovery Testing: Recovery testing is very necessary to check how fast the
system is able to recover against any hardware failure, catastrophic
problems or any type of system crash.
• Installation Testing: This type of software testing identifies the ways in
which installation procedure leads to incorrect results.
• Compatibility Testing: Compatibility Testing determines if an application
under supported configurations performs as expected, with various
combinations of hardware and software packages.
• Configuration Testing: This testing is done to test for compatibility issues. It
determines minimal and optimal configuration of hardware and software,
and determines the effect of adding or modifying resources such as memory,
disk drives and CPU.
• Compliance Testing: This type of testing checks whether the system was
developed in accordance with standards, procedures and guidelines.
• Volume Testing: This testing is done when a huge amount of data is processed
through the application.
• Scenario Testing: This type of software testing provides a more realistic and
meaningful combination of functions, rather than artificial combinations
that are obtained through domain or combinatorial test design.
• User Interface Testing: This type of testing is performed to check how
user-friendly the application is. The user should be able to use the
application, without any assistance by the system personnel.
• System Testing: System testing is the testing conducted on a complete,
integrated system, to evaluate the system's compliance with the specified
requirements. This type of software testing validates that the system meets
its functional and non-functional requirements and is also intended to test
beyond the bounds defined in the software/hardware requirement
specifications.
• User Acceptance Testing: Acceptance testing is performed to verify that the
product is acceptable to the customer and it's fulfilling the specified
requirements of that customer. This testing includes Alpha and Beta testing.
• Alpha Testing: Alpha testing is performed at the developer's site by the
customer in a closed environment. This testing is done after system testing.
• Beta Testing: This type of software testing is done at the customer's site by
the customer in the open environment. The presence of the developer, while
performing these tests, is not mandatory. This is considered to be the last
step in the software development life cycle as the product is almost ready.
• Test reporting: Once testing is completed, testers generate metrics and make
final reports on their test Effort and whether or not the software tested is
ready for release.
• Test result analysis: Or Defect Analysis, is done by the development team
usually along with the client, in order to decide what defects should be
treated, fixed, rejected (i.e. found software working properly) or deferred to
be dealt with later.

You might also like