Software Companies: 1) Product Based Company
Software Companies: 1) Product Based Company
Software Companies: 1) Product Based Company
1) Product based company: product based company we will develop project/product their ideas
and they will sell then to customer
In product Based companies Interview process will be little bit difficult and packages will be very
high
A) Data Structures
B) Algorithm
c) Design patterns
D) System Design
E) Problem Solving
f) Coding test etc...
-->packages structure in product based companies
Years of ecp *5
2) Service based companies: service based companies will develop projects according to client
required
--> Inservice based company’s packages will be less when compare with product based will be
fewer packages
->In Service Based Companies, They will concentrate on latest technologies in interview rounds.
A) Spring boot.
b) Rest API
c) Micro services
D) Angular/rest
No of years Exp*2.5
3) Outsourcing companies
--> There companies will recruit the peoples and will send to client.
(payrole) (client)
HCL--------Microsoft.
======================================================================
what is a project?
-->collection of software programs is call one project
2) Maintenance project
3) Migration projects
-------------------------------
The projects which are developing from very beginning are called as scratch development projects.
2) Maintenance project:
-------------------------
-->One software project is released into market, we should be managing and monitoring that
application for long run such kind of projects are call maintenance project
c) Bug fixing: fixing the problems in the code is call bug fixed
3) Migration projects:
---------------------
Changing the project from one tech to other techs is call migration projects
Main frames-->java
Types of Domain
================
1) Functional domain
2) Technical Domain
A) Banking
B) Insurance
c) Telecom
D) Healthcare
e) Retail etc...
A) Java
b).Net
C) Python etc...
Types of teams
----------------
A) Onshore team
b) Offshore team
--->the team which are not working in client location is called offshore.
A) Functional team
b) Dev team
C) Testing team
D) Divots team
e) Cloud team
--->onshore and offshore team members will communicate through bridge calls.
---------------------------
Real-time Tools
- Maven
- JIRA (Project Management)
- SVN, GIT, Bit bucket
- Log4j
- Log Monitoring (Putty, WinScp, Splunk)
- JUnit
- Mocking (Easy Mock, Power Mock, Wire Mock)
- Jacocco (code coverage)
- SonarQube (code review)
- JMETER (performance testing)
- POSTMAN & SOAP UI (API testing)
- Swagger (API documentation)
- MAT (Memory Analyzer Tool)
- Jenkins (CI & CD)
- Docker (Containerization)
- AWS
Ex: JIRA
Logging:
Logging is the process of storing application execution and application exception details to a
file/console.
Using log message we can track the root cause of the bug.
to generate log messages we have some tools like below
EX: Log4J, Log4J2, Logback and Log stash etc...
to see the log messages we will use below tools
A) Putty
b) WinScp
EX: Jenkins
Apache maven
It is a build tool which is used to simply application build process.
Maven’s Objectives
Maven’s primary goal is to allow a developer to comprehend the complete state of a development
effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of
concern:
Making the build process easy
Providing a uniform build system
Providing quality project information
Encouraging better development practices
-> POM stands for Project Object Model. In this file we will configure all the dependencies required
for our projects.
https://maven.apache.org/download.cgi
MAVEN_HOME = C:\apache-maven-3.6.0
PATH = C:\apache-maven-3.6.0\bin
-> After completion of the above steps execute below command to verify maven setup
Note: If maven version printing in the console, that means our setup, is successful.
01-Maven-App
Maven Repositories
1) Central Repository
2) Remote Repository
3) Local Repository
-> If we use maven, then in our local machine maven repository will be created that is called Local
repository.
-> What is pom.xml?
-> When we create maven project, it contains pom.xml file. In that file we are going to configure
Maven dependencies.
-> When we add dependency in pom.xml file, first maven will search for that dependency in local
repository. If it is available then maven will add that dependency to project build path. If
dependency is not available in local repository, then it will be downloaded from Central Repository
and will add into local repository.
o Every company will maintain their own repository for application development.
o To work with remote repository, company will provide setting.xml file
o We should add that settings.xml file in our IDE (Window -> Preferences -> Maven ->
User Settings -> select settings.xml -> Apply-> Close)
Maven Goals
Maven Goals
-> Version Control Software’s are providing solution for above 2 problems.
-> There are several version control software’s are available in Market
1) CVS
2) Clear Case
3) SVN (Subversion)
4) Git Hub
5) Bit Bucket
Git Hub
o GIT Hub is a cloud provider which is providing software version control management
using git.
o GIT hub is implemented in Ruby and it is under license of Microsoft.
o Using Git Hub we can maintain repositories in cloud platform.
o In order to create repositories in Git Hub, we should have account in
o https://github.com/Ashok-IT-School/13-JRTP-App-01.git
Public Repository (Anybody can see but we will choose who can commit)
Private Repository (We will choose who can see and who can commit)
Note: In Real-time we will create private repositories for projects.
o For every repository, repo URL will be created. To access that repository we will use
that repo URL.
o Ex : https://github.com/Ashok-IT-School/13-JRTP-App-01.git
o To communicate with Git Hub Repositories we will use Git Client Software.
Staged files
Un-Staged Files:
Modified files will be displayed hear, we need to stage these files to commit
Un-Tracked Files
GIT commands
git init : To initialize our folder as git folder
git reset HEAD :to un-stage one file(git reset HEAD test.java)
git reset : To un-stage file
git commit : To commit staged files to local repo(git commit -m "Local repositery")
git push : To push changes from local repo to central repo(git push -u)
git clone <url> : To take project from central repo to local system
git stash : Save changes in temp location and make working directory clean
git stash:
Example:
Your TL assigned a task(HTS-122) to you morning @8am and you started working on that task.
few changes already you made in few Files but b did't comitted b
Around 12:15 pm your TL told that Park HIS-122 for now and start working on HID-134 it is more
priority today please complete it by today EOD.
master
develop
feature
qa
uat
release
o Bitbucket offers both commercial plans and free accounts with an unlimited number
of private repositories.
o Bitbucket also uses git as version control system.
Note : By using Git Bash we can perform operations with Bitbucket repository.
Realtime workflow
-> When we got new project to develop, we need a repository for that project.
-> To create new repository for project we need to send email to Git/Bit Bucket admin.
-> Admin will create repository and will share repository URL to us.
-> In development team any one developer will create project folder structure and packages then
he/she will push those files to repository.
-> All the remaining developers will clone repository and then they will start work in project.
-> Some developers will clone repository using git bash then they will import project into IDE.
What is Agile?
1) Product Owner
2) Scrum Master
3) Tech Lead
4) Agile Team Members
Agile Terminology
1) Story
2) Story Points
3) Backlog Grooming
4) Sprint Planning
5) Sprint
6) Scrum
7) Mid-Iteration Review
8) Retrospective
Backlog grooming meeting will be scheduled by Scrum Master. In that meeting we will
identify tasks for future and will create Stories for those tasks in JIRA (under backlog bucket).
Note: Any team member can create story in JIRA and will give Story Points.
Sprint Planning Meeting will be conducted by Scrum Master. In this meeting we will decide
what stories we should complete in this Sprint.
After Sprint Planning discussion, Sprint will be created in JIRA with required stories.
Scrum is a meeting that will be there every day with Scrum Master. In this meeting team
members should provide work status to Scrum Master.
Note: Every day scrum meeting will be there for 15-20 mines only.
Once half of the sprint duration got completed, Scrum Master will conduct Mid-iteration
Review meeting to check work progress in Sprint.
Once Sprint got completed, Scrum Master will conduct Retrospective meeting. In this
meeting we will discuss below points
4) Achievements in Sprint
-------------------------------------------------------------------------
-> Initially JIRA is used as Bug Tracking software But Now a days it evolved as project management
software.
What is JIRA ?
---------------------------------------------------------------
JIRA operations:
What is Epic?
Login Functionality
3) exception handling
4) logging
Registration functionality
--------------------------
If story is not completed with in given time period we should inform to scrum master about
it.
It is highly recommended to complete all thestories in the sprint by the last date of the
sprint.
With in the sprint both development and testing will happen parallely
Note: To deliver one functionality to client we will take 2 to 3 sprints.
If we want to take any leave, we should inform to Scrum Master in Sprint Planning session so
that he/she will plan work accordingly.
In project, every team member will have jira account (individual account).
What is logging ?
With the help of log message we can understand application behaviour in run time
trace(String msg)
debug(String msg)
info(String msg)
warn(String msg)
error(String msg)
fatal(String msg)
TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
-> In Spring Boot applications default LOG LEVEL is INFO. If we want to change log level then we can
change it in application.properties file.
Log Monitoring
-> It is the process of seeing log messages available in log file
-> We will use putty software to connect from one computer to another computer
-> Putty is a command line software. In putty we will use execute linux commands.
WinScp
It is used to connect from one computer to another computer
1) putty
2) winscp
3) splunk (trending)
------------------------------------------------------------------------
Maven
GIT
BitBucket
Log4J
Code Review
To verify coding standards in our application we will perform code review
Code Review will happen in 2 ways
1) Tool Review
2) Peer Review
-> Sonar Qube is the trending software which is used for code review. It will verify coding standars in
source code.
-> Peer review means one developer code will be reviewed by another developer. In this review logic
will be verified.
-----------------------------------------------------------------------------------
Sonar Qube :
1) Coding standards
2) Duplicate code
3) Code Smells
4) Unit tests
5) Code Coverage
6) Security vulnerabilities
o Location : Sonar-Folder/bin/windows64/StartSonar.bat
Once Sonar Server is started it will display Sonar up and running message in console.
http://localhost:9000/
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.4.0.905</version>
</plugin>
SonarQube
SonarQube is an open source software which is used for Code Quality checking.
To perform code review of our project we should add sonar-maven-plugin in pom.xml file
Right click on Project -> Run as -> Maven build -> execute sonar:sonar goal
After build got success verify sonar dashboard and select project
) What is CI & CD ?
2) What is Jenkins ?
5) What is Pipeline ?
Debugging
Maven
BitBucket
Log4J
SonarQube
Jenkins
JMETER
Performance Testing
In JMETER GUI mode we will create test and we will run the test using CLI mode.
t session : Performance Testing Using JMETER
Software Testing:
1.software testing is the process of identifying the correctness and quality of software
program.
the purpose is to check wheather the software satifiesthe specific requirements,needs and
expectation of the customer/client.
2 In other words testing is the process of executing a syatem or application in order to car
saklefind defects.
3 Example: Car manufacturer tests the car for maximum speed fuel efficiency and safety
from crash.
these test results alter become the part if advertising strategy for car sale
Manual Testing : test cases executed manually.In manual testing will play the role of the end-user
and try
Automation Testing : Testing performed with help of automation tools like QTP,Lead and JMETER
etc..
the main objective of unit testing is to split code into multiple pieces and testing each peice
of code seperately to ensule that, it works as expected
Unit testing is used to verify a small chunk by creating a path, function or a method, the
term unit exists earlier than the object-oabstractionriented era.
it is basically a natural abstaraction of an object oriented syatem i.e a java class or object.
Junit is an open source framework which is used to implement Unit Testing for java
applications.
Unit testing is the process of testing unit amount of work.
1)Junit
2)EasyMock
Debugging
Maven
BitBucket
SonarQube
JMETER
Log4J
Putty
WinScp
Splunk
Jenkins
Junit
Mocking