PMIT 6111 Lecture 1 Introduction to SDLC
PMIT 6111 Lecture 1 Introduction to SDLC
Lecture 01
INTRODUCTION
by
Md. Mahmudur Rahman
Lecturer
Institute of Information Technology
Why we need to test software?
•Vaccine rollout delays
•Tesla Autopilot crashes
•Airlines Flight cancellations
•Cloudflare outage
•Zoom security breach
•Facebook outage
•Microsoft Exchange hack
Requirements conformance
Performance
An indication of
quality
What is Software Testing?
• As per ANSI/IEEE 1059, Testing in Software Engineering
is a process of evaluating a software product to find
whether the current software product meets the required
conditions or not. The testing process involves evaluating
the features of the software product for requirements in
terms of any missing requirements, bugs or errors, security,
reliability and performance.
Verification takes place first and includes Validation occurs after verification and
the checking for documentation, code, etc. mainly involves the checking of the overall
product.
Done by developers. Done by testers.
It has static activities, as it includes collecting It has dynamic activities, as it includes
reviews, walkthroughs, and inspections to executing the software against the
verify a software. requirements.
8
E-commerce Website Testing
Validation:
1.Functional Testing: Execute functional tests to verify that the
website meets the specified requirements. This includes
testing user registration, product search, and payment
processing functionalities.
2.System Testing: Conduct system testing to validate that the
entire e-commerce system works as expected in an integrated
environment.
3.User Acceptance Testing (UAT): Involve end-users to
validate that the website meets their business needs and is
user-friendly.
4.Performance Testing: Validate the performance of the
website under various load conditions to ensure it can handle
expected traffic.
9
Software
Development
Phases
Waterfall vs Agile
• All previous and new tests are run automatically when new
functionality is added, thus checking that the new
functionality has not introduced errors.
16
Test-driven development
• Test-driven development (TDD) is an approach to program
development in which you interleave testing and code development.
• Interleaving is a paired test that evaluates user preference between
two connected systems.
• Tests are written before code and ‘passing’ the tests is the critical
driver of development.
• You develop code incrementally, along with a test for that increment.
You don’t move on to the next increment until the code that you
have developed passes its test.
17
Test-driven development
18
TDD process activities
• Start by identifying the increment of functionality that is required.
This should normally be small & implementable in a few lines of
code.
• Write a test for this functionality and implement as an automated
test.
• Run the test, along with all other tests that have been implemented.
Initially, if you havent implemented the functionality new test will fail.
• Implement the functionality and re-run the test.
developer
independent tester
• User testing, where users or potential users of a system test the system in
their own environment.
White Box Testing
• In white-box testing, the developer will inspect every line of code before
handing it over to the testing team or the concerned test engineers.
• White box testing, also known as clear box or glass box testing, is a method of
testing software where the internal structure, design, and implementation
of the software are examined. This testing approach requires knowledge of
the internal workings of the application, which differentiates it from black box
testing where the focus is only on the functionality.
❖ Exercise all input and output parameters of each component.
❖ Exercise all components and all calls (each component is called at least
once and every component is called by all possible callers.)
❖ Use conditional and iteration testing as in unit testing.
Black Box Testing
• Another type of manual testing is black-box testing. In this
testing, the test engineer will analyze the software
against requirements, identify the defects or bug, and
sends it back to the development team.
• Black box testing focuses on the functionality of the
application without examining its internal code or structure.
The tester interacts with the system's user interface by
providing inputs and examining the outputs without knowing
how and where the inputs are worked upon.
28
Gray Box Testing
• Another part of manual testing is Grey box testing. It is a
collaboration of black box and white box testing.
• Since, the grey box testing includes access to internal coding for
designing test cases. Grey box testing is performed by a person
who knows coding as well as testing.
• In other words, we can say that if a single-person team done both
white box and black-box testing, it is considered grey box testing.
Automation Testing
30
Tips of Testing
35