Software testing:
To identify the defect within the software
& Corrected
Input combination & Pre condition
·
STLC: (Software
Testing Life Cycle)
·
Requirement
Analysis / System Study
·
Write Test Plan /
Test Case
·
Test Case
Execution
·
Defect Tracking
·
Prepare TER (Test
Execution Report) & Send it to the customer
Testing Methods:
1. Whitebox Testing : Transparent box testing and structural
testing) / Use to test the internal structures (Data Flow Testing / Branch
testing / Path testing / Statement Coverage / Decision coverage)
2. Black-Box Testing : To test the functionality of the application
without testing the internal structure (Unit Testing / System Testing /
Integration testing / Decision Table Testing / Error Guessing)
3. Gray Box Testing : It’s a combination of White-box testing and
black-box testing
Testing Types:
Manual Testing : Manually testing the software defects (Role : end-User) which
used to reduce the cost of the actual Testing. Unit Testing / Integration
Testing / SW Testing (functional / non-functional) / System Testing / User
Acceptance Testing / Release or Deployment Testing
Automation Testing : Using special software tool to control the
execution of Test & Compare the Actual output with Predicted Output.
(Functional Testing – QTP / Performance Testing – Loadrunner / Performance
Centre / Software Quality Assurance – QC)
Certification:
·
Certified
Associate in Software Testing (CAST)
·
Certified Manager
in Software Testing (CMST)
·
Certified Test
Manager (CTM)
·
Certified
Software Tester (CSTE)
·
Certified
Software Test Professional (CSTP)
·
ISTQB Certified
Tester, Foundation Level (CTFL)
·
ISTQB Certified
Tester, Advanced Level (CTAL)
Software Testing:
Testing methodologies:
1.
TDD
(Test Driven Development)
2.
BDD
(Behavior Driven Development)BDD extends the process of TDD.
BDD
VS TDD
In TDD (Test Driven Development), the
test is written to check the implementation of functionality, but as the code
evolves, tests can give false results. BDD (Behavior Driven Development) is
also a test-first approach, but differs by testing the actual behavior of the
system from the end users perspective.
Types
of Software Testing such as Functional Testing, Non-Functional Testing,
Automation Testing, Agile Testing, and their sub-types, etc.
Different Types Of Software Testing: Unit Testing, Integration
Testing, System Testing, Sanity Testing, Smoke Testing, Interface Testing,
Regression Testing, Beta/Acceptance Testing.
Functional Testing :
1.
Unit Testing
2.
Integration Testing
3.
System Testing
4.
Sanity
Testing
5.
Smoke
Testing
6.
Interface
Testing
7.
Regression
Testing
8.
Beta/Acceptance
Testing
Non-functional Testing:
1.
Performance
Testing
2.
Load
Testing
3.
Stress
Testing
4.
Volume
Testing
5.
Security
Testing
6.
Compatibility
Testing
7.
Install
Testing
8.
Recovery
Testing
9.
Reliability
Testing
10.
Usability
Testing
11.
Compliance
Testing
12.
Localization
Testing
System
Testing VS Unit Testing VS Integration Testing:
Unit testing is a type of testing to check if the small
piece of code is doing what it is suppose to do. Integration testing is a type of testing to check if different
pieces of the modules are working together. Unit testing checks a single
component of an application. System
Testing is a level of software testing where a complete and integrated
software is tested.
Integration
testing is carried out after unit testing but before system testing.
Testing Tools / Testing Automation
(JUnit, Mockito & Spock):
·
JUnit
is a unit testing framework for the Java programming language.
·
Mockito
is an open source testing framework for Java released under the MIT License.
·
Spock
is a Java testing framework capable of handling the full life cycle of a
computer program.
Testing
Automation Tools for Software Testing:
1.
JUnit
2.
REST Assured
3.
Selenium SE
4.
TestNG
5.
Mockito
6.
Spock Framework
7.
Cucumber
8.
Spring Test
9.
DBUnit
10.
Robot Framework
11.
Jmeter
JUnit is a unit testing framework for the Java
programming language.
Selenium
is a testing framework to perform web application testing across various
browsers and platforms like Windows, Mac, and Linux.
Programming
languages, libraries, and frameworks,
Many Java developers write unit
tests and integration tests that automatically run during build time, mostly by
using continuous integration tools like
Jenkins or TeamCity.
If some of you are wondering why a
programmer should focus on automation
testing, then let me tell you that the importance of automation testing is
growing exponentially due to more awareness and emergence of DevOps.
Companies generally prefer
programmers who are good at writing unit
tests and show good knowledge of various unit testing frameworks, libraries,
and tools e.g. JUnit, Selenium,
REST-Assured, Spock framework, etc.
automation testing
As a Java developer, we work on
very different areas, starts from writing core Java code to creating JSP pages,
writing REST APIs, and sometimes even creating Groovy scripts for build automation. That's why we also need to be
aware of different tools we
can use to automate testing.
For example, I only knew JUnit for a long time, but when I had
to test my JSP pages, I was clueless
until I found Selenium. Same goes
with REST Assured because I usually
test my REST API using curl
commands, but REST Assured takes the unit
testing of REST APIs to another level.
1. JUnit
JUnit 4, but JUnit 5
Almost
all major IDEs, e.g. Eclipse, NetBeans,
and IntelliJ, provide JUnit integrations, which means you can both write
and run the unit test right from those IDEs.
2. REST Assured
Testing
and validating REST services in Java is harder than in dynamic languages such
as Groovy.
REST
Assured brings the simplicity of using these languages into the Java domain.
It's a great tool for REST API
integration tests.
3. Selenium SE
Selenium
is probably the most popular tool for Java UI testing, which allows you to test
your JSP pages without launching them in a browser.
4. TestNG
TestNG
is a testing framework inspired by JUnit and NUnit but introducing many new
functionalities that make it more powerful and easier to use, such as
annotations, running your tests in arbitrarily big thread pools with various
policies available
5. Mockito
There
are many mocking frameworks for Java classes, e.g. PowerMock and JMock, but I
personally like Mockito for their simple API, great documentation, and lots of
examples.
6. Spock Framework
Spock
is another testing and specification framework for Java and Groovy
applications. It's written in Groovy, which makes it a very expressive and
to-the-point specification language.
7. Cucumber
Cucumber
is another great tool for automated integration tests, but what makes it
different from other tools in the same category is its specification
capability.
8. Spring Test
Spring
MVC comes with a very useful test framework that allows doing in-depth testing
without even involving a web container.
9. DBUnit
A
database is an integral part of many Java applications, both core Java and web
applications, and probably the biggest obstacle while doing unit testing.
10. Robot Framework
The
Robot Framework is a Python-based generic test automation framework for
acceptance testing and acceptance test-driven development.
It is
one of the most useful libraries for writing automated tests to Spring
applications. It provides a first-class support for writing unit and
integration tests to Spring-powered applications, including MVC controllers.
That's
all about some of the essential unit testing and integration testing tools,
frameworks, and libraries for Java developers.
Jmeter is a
reliable source for performance and load testing. Apache Jmeter is a popular
open source performance testing tool.
Automation testing:
Continuous Integration (CI) is a
development practice that requires developers to integrate code into a shared
repository several times a day. Each check-in is then verified by an automated
build, allowing teams to detect problems early.
CI
Continuous Integration
CD
Continuous Delivery
What
is a CI CD pipeline?
A CI/CD pipeline helps you automate
steps in your software delivery process, such as initiating code builds,
running automated tests, and deploying to a staging or production environment
QA/Testing:
QA
Tester VS QA Analyst
QA
tester is the one who test the application…QA Analyst is the one who analyzes
the tested aplicationa dn certify it.
·
QA
Analyst
·
QA
Engineer
·
QA
Lead
·
QA
Mainframe Environment
·
QA
People soft tester
·
QA
SAP Tester
·
QA
Siebel Tester
·
QA
Unix Environment
·
QA
Web Environment
Expertise
in Automation, Web Application Testing and end-to-end(e2e) testing using
testing frameworks like JMockito, JUnit, Mocha, Karma, Jasmine, Grunt, Gulp,
Chai and Protractor.
Experience
in Automation testing using Selenium Web Driver, JUnit and Maven.
Mocha or Jasmine - JavaScript
Testing Framework
No comments:
Post a Comment