2. What is Software Testing?
Software Testing is a process of executing a program or
application with the intent of finding the software bugs.
It can also be stated as the process of validating and
verifying that a software or a application or product meets
the following criteria's:
Meets the business and technical requirements and
guided it’s design and development.
Can be implemented with the same characteristic.
Works as expected.
3. Breaking down Software Testing
Process: Testing is process rather than a single activity.
All Life Cycle Activities: Testing is a process that takes
place throughout the Software Development Life
Cycle(SDLC).
Static Testing: It can test and find defects without
executing code. Static Testing is done during verification
process.
Dynamic Testing: The software code is executed to
demonstrate the result of running tests. It’s done during
validation process.
4. Breaking down Software Testing
Planning: We need to plan as what we want we want to
do. We report on testing progress and the status of the
software under test.
Preparation: We need to choose what testing we will do
by selecting test conditions and designing test cases.
Evaluation: During evaluation we must check the results
and evaluate the software under test and completion
criteria which helps to decide whether we have finished
testing and whether the software product has passes tests.
5. Breaking down Software Testing
Software products and related work products: Along
with the testing of code the testing of requirement and
design specifications and also the related documents like
operation, user and training material is equally important
6. Evolving Software Testing
There are several important trends in software testing world that
will alter the landscape that testers find themselves in today:
Mobile application testing (Rapid growth in Mobile testing)
Cloud-based Testing (Virtualization and Cloud Computing)
Testing in the Agile Development Environment
Context-driven Testing
Security Testing
Crowdsourced Testing
Tester Certification
7. Mobile Application Testing
Mobile application testing is a process by which application
software developed for mobile devices is tested for its
functionality, usability and consistency.
Mobile application testing can be automated or manual type
of testing. Mobile devices have become a major part of many
Mobile App Testing organizations’ digital development strategy,
but many businesses lack the testing specialists, tools, and
consistent methodology needed for effective mobile
development. According to the World Quality Report, 55% of
organizations now test mobile apps, up from 31% last year. Yet,
56% lack effective testing procedures.
8. Cloud-based Testing
As cloud computing becomes an increasing part of the IT
mainstream with about 26% of software applications to be
hosted on cloud in 2015, IT professionals and experts see a
positive growth in the adoption of cloud based testing. For
the simple reason, cloud infrastructure offers a convenient
solution unlike any other test environments which can be
difficult and expensive to build and maintain. Cloud testing
is also flexible, allowing businesses to scale up or down as
part of a dynamic testing strategy.
9. Testing in the Agile Development Environment
Agile methods are in the mainstream. They offer both
challenges and opportunities for testers. Agile does not mean
one thing, but a collection of many related things. This is a
flexible, holistic product development strategy that encourages
teams to self-organize and communicate regularly. In other
words, testers work closely with developers and obtain early
involvement and feedback on a project. The most popular
agile methodologies include:
Extreme Programming (XP)
Scrum
Dynamic Systems Development Method (DSDM)
10. Context-Driven Test
Context-driven testing is a model for developing
and debugging computer software that takes into account
the ways in which the programs will be used or are expected
to be used in the real world.
There is a need to be adaptable in the event the context
changes. This has made context-driven software testing a
trend that we expect will emerge strongly in the coming
years. According to software testing leaders in the industry,
the most successful testers in the future will be the ones that
can bring the most skills to the table for any given context
or business situation.
11. Security Testing
Security testing is a testing technique to determine if an
information system protects data and maintains
functionality as intended.
The increased connectivity of data and information
systems along with the rise of cloud based computing and
the phenomenon of Internet of Things taking center stage
in the IT industry, security testing of software applications
is going to be of top priority.
12. Security Testing
It also aims at verifying 6 basic principles as listed below:
Confidentiality
Integrity
Authentication
Authorization
Availability
Non-repudiation
13. Crowdsourced testing
It is the practice of sending out prototype software and
products to broad groups of people for testing rather than
having testing performed internally.
It is helpful in situations wherein the testing team may not
have all the resources to test the software in different
environments and in different scenarios. All these trends
are testimony of the fact that the software testing industry
is evolving at an enormous pace.
14. Tester Certification
Tester certification has existed since the 1980s, The ISTQB
program brought openness, inclusivity, and global
reach. Certification is not about training, but about
establishing knowledge. ISTQB program includes a career
path. Certification will lead ultimately to an agreement on
best practices throughout testers’ careers. Certification is
part of professionalization.
Certified Software Tester (CSTE)
ISTQB certification
V & V Manual testi8ng Certification (Organization level
Certification)