Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Lesson #2.1: Introduction to Software Testing

No description
by

Richard Shy

on 17 February 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Lesson #2.1: Introduction to Software Testing

Brainstorm
"Mind Mapping" Method
Introduction to
Software Testing
BRAINSTORM
ELEMENTS
copy and paste as needed and take advantage of an infinite canvas!
Write the primary idea of the mind map in the center. Use different color notes to differentiate between topics. Use lines and arrows to create branches that connect ideas to each other.
Black Box Testing
vs.
White Box Testing
Functional Testing
vs.
Non-Functional Testing
What is Software Testing?
SDLC & Software Testing Life Cycle
Some Types of Testing
The
planned

and
systematic
approach to the
evaluation
of the quality of and
adherence
to software product standards, processes and procedures.
Why do we need to test?
What is a tester?
Black Box Testing
Ignores the internal details of the system
Focuses solely on:
input accepted
output generated
execution conditions
White Box Testing
Focuses on input accepted, output generated and execution conditions
Takes into account internal mechanisms:
code
logic
Functional Testing
Verifies the system's expected behavior against the functional requirements given a set of input and expected output
Usually feature-driven

Given
<input>
when I
<action / condition>
, the system should
<output>
.
Non-Functional Testing
These are the "
-ility
" tests:
Security
Compatibility
Maintainability
Interoperability
Reliability
Scalability
Usability
Performance Testing
Load Testing
Stress Testing
Endurance Testing
Spike Testing
Configuration Testing
Common Terminologies
Capacity
the total workload a system can handle without violating predetermined key performance acceptance criteria
Latency
a measure of responsiveness that represents the time it takes to complete the execution of a request
may also represent the sum of all latencies or subtasks
Response Time
a measure of how responsive an application or subsystem is to a client request
Saturation
the point at which a resource has reached full utilization
Throughput
the number of units of work that can be handled per unit of time
e.g., requests per second, calls per day, hits per second, etc.
Workload
the stimulus applied to a system, application, or component to stimulate a usage pattern in regard to concurrency and/or data inputs
Smoke Testing
What?
a set of non-exhaustive tests that aim to ensure that the most important functions work
Why?
to know if the system is ready for more robust testing
When?
we don't want to invest time in testing something that's severely broken
How?
Functional tests
Guide:
Is the software running properly?
Does clicking the main button do anything?
Example
Click all the buttons/links
Sanity Testing
What?
very similar to smoke testing, but more comprehensive
a very brief run-through of functionality to ensure that the system works as expected
Why?
to verify the "rationality" of the system
When?
new functionality has been introduced
bugs have been fixed
How?
Functional tests
test that existing (high-impact) functionality are working correctly
test the fixes that were introduced to weed out bugs for current build
Ad-Hoc Testing
What?
informal testing aimed to break the system
usually unplanned
does not follow any test design techniques
why?
find defects through random testing
possibility of finding bugs that won't be found through planned testing
When?
limited time to do elaborate testing
How?
tester is left to his/her own devices
Regression Testing
What?
test that ensures new code changes do not have side effects on existing functionality
ensures that old code still works after new changes are checked in
Why?
to confirm that recent program or code changes do not introduce new bugs
When?
ideally, after each build/release
How?
Reusable test plans, which are enriched as new functionality is introduced
Usability Testing
What?
focuses on the ease with which an application can be used
e.g., flexibility in handling controls, ability of the system to meet its objectives, etc.
Why?
to see how user-friendly an application is
When?
ideally, during UI design phase, and then after application has been developed
How?
invite users and let them play with the application
Security Testing
What?
tests that aim to find all possible loopholes and weaknesses of a system
Why?
identify threats in the system and measure its potential vulnerabilities
detect all possible security risks and help coders fix them
When?
determine non-functional requirements early to form basis for testing
when feature has been been deemed functional
How?
non-functional requirements
Examples
SQL injection
XSS cross site scripting
testing compliance to SSL certificates
Performance Testing
What?
tests that ensure that applications will perform well under their expected workload
goal is not to find bugs, but to eliminate bottlenecks focusing on: speed, scalability, and stability
Why?
to see how an application will fare in real-world load
When?
determine non-functional requirements early to form basis for testing
once feature has been been deemed functional
How?
non-functional requirements
use tools to simulate load (virtual users) and monitor real-time speed of application
Examples of Performance Tests
Load Testing
simplest form of performance testing
usually conducted to understand the behavior of the system under a specific expected load within a set duration
Stress Testing
used to understand the upper limits of capacity within the system
helps determine robustness of the system
Endurance Testing
determines if the system can sustain continuous expected load
Examples of Performance Tests
Spike Testing
determines performance of the system during sudden increases in load
will performance suffer? will the system fail, or will it be able to handle dramatic changes in load?
Configuration Testing
determines effects of configuration changes to the system in relation to its performance and behavior
When all test cases are green...
Full transcript