Lecture 2
Unit 4
Introduction of a Usecase for CI/CD Pipeline
• Introduction of a Usecase for CI/CD Pipeline
• Let's take an example of a project (Maven Java program) where
developer works and maintain the source code repository like GitHub.
They have to commit each change and pull the code base from Github
and perform the build process (maven build) then generates
executable jar. Now, once the jar is created they can execute and
monitor it. All the steps discussed above are manual and developers
have to put lot of effort in it. But using Jenkins, we can automate the
build and deployment process.
• For automating build and deployment process, developers have to
just create a pipeline in Jenkins and configure the pipeline to perform
all the functions. In the Jenkins pipeline, source code repository can
be integrated which can take any new commits, also build process can
be configured which performs maven clean and build actions and
generates the jar and the post build process will execute the program.
So, the full DevOps process can be automated which will ease the
efforts of developers.
Jenkins
• Jenkins – an open source automation server which enables developers around
the world to reliably build, test, and deploy their software. facilitating
continuous integration and continuous delivery. It is a server-based system that
runs in servlet containers such as Apache Tomcat.
• By using Jenkins, software companies can accelerate their software
development process, as Jenkins can automate build and test at a rapid rate.
Jenkins supports the complete development lifecycle of software from
building, testing, documenting the software, deploying and other stages of a
software development lifecycle.
• With Jenkins, organizations can accelerate the software development process
by automating it. Jenkins manages and controls software delivery processes.
CI/CD Pipelining
Jenkins with Selenium
Jenkins with JAVA CI
Jenkins with Kubernet
Test terms
• Test Case- Steps to find bug/ error in the program/product/module
• Test Suits-Collection of test cases
• Code Review
• Code Refactoring
• Traceability Matrix
• ---------------------------------------------
Testing Types
• Unit- Small modules/program/unit are tested
• Integration- Two modules are merged combined and tested from bottom to top or top to
bottom
• System Testing-Overall system setup are tested including servers/hardware
• Load-according to numbers of users servers loads are tested
• Stress Testing-Maximum numbers n numbers of users on servers increased by n+1
• Regression-Changes /modification done in modules again tested.
• Alpha and Beta Testing(User acceptance testing)-Pre release and post release of software
tested.
• ---------------------------------------------------------
• White Box Testing – internal code structure are tested.
• Black Box Testing –functional testing are tested. Only UI with functions. No code are tested.
Junit
• Continuous Testing – Junit JUnit is a unit testing framework used in
Java applications. JUnit is useful in test-driven development. JUnit test
cases are designed which will test the functionality of the individual
methods in the code base.
• JUnit is a Java unit testing framework that's one of the best test
methods for regression testing. An open-source framework, it
is used to write and run repeatable automated tests. As with
anything else, the JUnit testing framework has evolved over
time
• JUnit is a simple framework to write repeatable tests. It is an instance
of the Unit architecture for unit testing frameworks.
• Manual Testing
• Selenium-Automation Testing tool for Web Application.
• Jmeter
• TestNG: is a testing framework for the Java programming language
created by Cédric Beust and inspired by JUnit and NUnit. The design
goal of TestNG is to cover a wider range of test categories: unit,
functional, end-to-end, integration
Functional testing
• Functional testing is a type of testing which verifies that each function of
the software application operates in conformance with the requirement
specification. This testing mainly involves black box testing, and it is not
concerned about the source code of the application.
• What is Non-Functional Testing?
• Non-functional testing is a type of testing to check non-functional aspects
(performance, usability, reliability, etc.) of a software application. It is
explicitly designed to test the readiness of a system as per nonfunctional
parameters which are never addressed by functional testing.
• A good example of non-functional test would be to check how many
people can simultaneously login into a software.