TESTING CONCEPTS
Basics for a Technical
Recruiter
Software testing is the process of evaluation a software item to
detect differences between given input and expected output.
It includes a set of activities conducted with the intent of finding
errors in software so that it could be corrected before the product
is released to the end users.
In simple words,software testing is an activity to check whether
the actual results match the expected results and to ensure that
the software system is defect free.
SEVEN PRINCIPLES OF
TESTING
Testing shows presence of defects
Testing reduces the probability of undiscovered defects remaining in the
software but even if no defects are found, it is not a proof of
correctness.
Exhaustive testing is impossible
Instead we need optimal amount of testing based on the risk
assessment of the application.
Early testing
Testing should start as early as possible in the Software Development
Life Cycle
Defect clustering
which states that a small number of modules contain most of the
defects detected.
SEVEN PRINCIPLES OF TESTING
Pesticide paradox -
If the same tests are repeated over and over again , eventually the
same test cases will no longer find new bugs
Testing is context dependent -
Finding and fixing defects does not help if the system build is
unusable and does not fulfill the users needs & requirements
Absence of errors fallacy -
Finding and fixing defects does not help if the system build is
unusable and does not fulfill the users needs & requirements
SDLC , STLC & V-MODEL
What are the various components of STLC?
Various components of "Software Testing Life Cycle" are
Requirements Document
Preparation of Test Plan
Preparation of Test Cases
Execution of Test Cases
Analysis of Bugs
Reporting of Bugs
Tracking of Bugs till closure
Software Testing - Types of Testing
This section describes the different types of
testing that may be used to test a software during
SDLC.
What is meaning of Manual Testing
In Manual Testing , Testers manually execute test cases without
using any automation tools. Manual testing is the most primitive of
all testing types and helps find bugs in the software system.
Any new application must be manually tested before its testing
can be automated. Manual testing requires more effort, but is
necessary to check automation feasibility.
Manual Testing does not require knowledge of any testing tool.
Manual Testing types:
White Box Testing
White Box testing / Glass box Testing
White box testing, glass box testing or structural testing is used to
check that the outputs of a program, given certain inputs, conform to
the structural specification of the program. It uses information about
the structure of the program to check that it performs correctly.
To Ensure That all independent paths within a module have been
exercised at least once.
All logical decisions verified on their true and false values.
All loops executed at their boundaries and within their operational
bounds internal data structures validity.
Black-box testing
Black-box testingtreats the software as a "black box",
examining functionality without any knowledge of internal
implementation. The testers are only aware of what the software
is supposed to do, not how it does it
Main focus in black box testing is on functionality of the
system as a whole
Grey-Box Testing
Grey-box testing is a technique to test the application with
having a limited knowledge of the internal workings of an
application. In software testing, the phrase the more you know,
the better carries a lot of weight while testing an application.
Mastering the domain of a system always gives the tester an
edge over someone with limited domain knowledge. Unlike black-
box testing, where the tester only tests the application's user
interface; in grey-box testing, the tester has access to design
documents and the database. Having this knowledge, a tester can
prepare better test data and test scenarios while making a test
plan
A Comparison of Testing Methods
Microsoft Office
Excel Worksheet
Manual Testing Types -Unit Testing
The primary goal of unit testing is to take the smallest
piece of testable software in the application, isolate it from
the remainder of the code, and determine whether it
behaves exactly as you expect.
Each unit is tested separately before integrating them
into modules to test the interfaces between modules.
Unit Testing is performed by using theWhite Box
Testingmethod.
Unit Testing is the first level of testing and is performed
prior toIntegration Testing.
Manual Testing Types - Unit Testing - Tasks
Unit Test Plan
Prepare
Review
Rework
Baseline
Unit Test Cases/Scripts
Prepare
Review
Rework
Baseline
Unit Test
Perform
Manual Testing Types - Integration Testing
Integration testingis the phase in softwaretestingin which
individual software modules are combined andtestedas a group.
It occurs after unittestingand before validationtesting.
Integration testing:Testing performed to expose defects in
the interfaces and in the interactions between integrated
components or systems.
Either Developers themselves or independent Testers
perform Integration Testing.
Integration Testing is performed afterUnit Testingand
beforeSystem Testing.
Manual Testing Types - System Testing
The process of testing an integrated system to verify
that it meets specified requirements.
Normally, independent Testers perform System Testing.
Usually,Black Box Testingmethod is used.
System Testing is performed afterIntegration Testingand
beforeAcceptance Testing.
Manual Testing Types -Acceptance Testing
Acceptance Testingis a level of the software testing
process where a system is tested for acceptability.
Usually,Black Box Testingmethod is used in
Acceptance Testing.
The purpose of this test is to evaluate the systems
compliance with the business requirements and assess
whether it is acceptable for delivery.
Manual Testing Types -Acceptance Testing -
Tasks
Acceptance Test Plan
Prepare
Review
Rework
Baseline
Acceptance Test Cases/Checklist
Prepare
Review
Rework
Baseline
Acceptance Test
Perform
Manual Testing Types -Acceptance Testing
This is arguably the most important type of testing, as it is
conducted by the Quality Assurance Team who will gauge
whether the application meets the intended specifications and
satisfies the clients requirement. The QA team will have a set
of pre-written scenarios and test cases that will be used to test
the application.
By performing acceptance tests on an application, the testing
team will deduce how the application will perform in production.
There are also legal and contractual requirements for acceptance
of the system
What is Regression Testing?
After the bug fixed , testing the application whether the fixed
bug is affecting remaining functionality of the application or not.
Tester must check that new updating or change in the
functionality of a particular component or module does not create
any disorder and any negative effects on the functionality of the
application
Alpha Testing
This test is the first stage of testing and will be performed
amongst the teams (developer and QA teams). Unit testing,
integration testing and system testing when combined together is
known as alpha testing.
During this phase, the following aspects will be tested in the
application:
Spelling Mistakes
Broken Links
Cloudy Directions
The Application will be tested on machines with the lowest
specification to test loading times and any latency problems .
Beta Testing
This test is performed after alpha testing has been
successfully performed. In beta testing, a sample of the
intended audience tests the application.
Beta testing is also known aspre-release testing.
Smoke Testing
Smoke testing is a two point agenda , comprising of mainly
Whether the application is running
we check we have the correct version is installed,
Means that right versions of databases are linked, APIS and middle
layer, to check the
whole configuration is rightly linked with the correct versions
Anytime a code is deployed and new build is available
Sanity Testing
Sanity Test is concentration on the functionality , mostly
critical functionality
Whether we can check the software which we are testing, we
look at the critical functionality that is mandatory for us to
work further.
Smoke Testing & Sanity Testing
Sample Resume Manual Testing
Micros oft Office
Word 97 - 2003 Document
Automation Testing
Automation testing, which is also known as Test Automation, is
when the tester writes scripts and uses another software to test the
product. This process involves automation of a manual process.
Automation Testing is used to re-run the test scenarios that were
performed manually, quickly, and repeatedly.
Automation Testing - When to Automate?
Apart from regression testing, automation testing is also
used to test the application from load, performance, and
stress point of view. It increases the test coverage, improves
accuracy, and saves time and money in comparison to
manual testing.
Test Automation should be used by considering the following
aspects of a software:
Large and critical projects
Projects that require testing the same areas frequently
Requirements not changing frequently
Accessing the application for load and performance with many
virtual users
Stable software with respect to manual testing
Availability of time
Sample Resume Automation Testing
Micro s oft Office
Word 97 - 2003 Do cument
Differences between Automated and Manual
testing
Manual Testing Automated Testing
Automated Testing is fast and
Manual Testing is slow and cheaper,however, this statement may
costly not hold good for all types of testing . It
is applicable for repetitive tests.
Manual Testing does not
scale well , i.e. in the case
of long running tests and
Automated testing can be very
testing repetitively, the
consistent and free of human errors
results might prove to be
in consistent and error
prone
It can be very efficient in repetitive
It is not repeatable
testing
It is very effective in Automation testing might not be very
review process useful in review process
Software Testing Tools
HP Quick Test Professional
Selenium
IBM Rational Functional Tester
SilkTest
TestComplete
Testing Anywhere
WinRunner
LaodRunner
Visual Studio Test Professional
WATIR
Different Types of Testing Roles Certifications
Microsoft Office
Excel 97-2003 Worksheet
Functional Testing Vs Non-Functional Testing
Functional Testingis the type of testing done against the
business requirements of application. It is a black box type of
testing.
In thetypes of functional testingfollowing testing types should
be cover:
Unit Testing
Smoke testing
Sanity testing
Integration Testing
Interface Testing
System Testing
Regression Testing
UAT
Functional Testing Vs Non-Functional Testing
The non Functional Testing is the type of testing done against
thenon functional requirements. Most of the criteria are not
consider in functional testing so it is used tocheck the readiness
of a system.
Non-functional testing involves testing a software from the
requirements which are nonfunctional in nature but important
such as performance, security, user interface, etc.
What is Performance Testing ?
Testing the present working condition of the product .
Used to verify performance behaviors for business functions
under the normal and heavy work conditions.
Simplified Definitions Performance Testing = how fast is the
system?
Performance testing comes under non functional
testing
Key Skills - Performance Testing
Key Skills:
Load
Volume
Stress
Scalability
Stress Testing
The purpose behind stress testing is to ascertain the failure of
system and to monitor how the system recovers back gracefully
Top Performance Testing Tools
Apache JMeter
LoadRunner
WebLOAD
Appvance
NeoLoad
LoadUI
WAPT
Loadster
Load Testing
Load testing is meant to test the system by constantly and
steadily increasing the load on the system till the time it reaches
the threshold limit.
It is the simplest form of testing which employs the use of
automation tools such as Load Runner or any other good tools,
which are available
Sample Resume Performance Testing
Micros oft Office
Word 97 - 2003 Document
TESTING CONCEPTS