Full Stack QA
Full Stack QA
Full Stack development involves developing both the front end and back end of the web
application/website at the same time. This process includes three layers:
A Full Stack Web Developer is a person who is familiar with developing both client and server
software. In addition to mastering CSS and HTML, they are also know how to program
browsers, databases, and servers.
To fully comprehend the role of Full Stack developer, you must understand the web development
components - front end and back end
The front end comprises a visible part of the application in which the user interacts, while the
back end includes business logic.
Some of the popular tools used by full-stack developers to make development more accessible
and efficient are:
Backbone
Visual Studio Code
WebStorm
Slack
Electron
TypeScript
CodePen
GitHub
Basic languages - Must be proficient in basic languages like HTML, CSS, and SQL.
Additional skills recommended - Git, Machine Learning, SSH, Linux Command, Data
As the name suggests, Pair Programming is where two programmers share a single workstation.
Formally, one programmer at the keyboard called the "driver" writes the code. The other
programmer is the "navigator" views each line of the code written, spell check, and proofread it.
Also, programmers will swap their roles every few minutes and vice-versa.
6. What is CORS?
Cross-origin resource sharing (CORS) is a process that utilizes additional HTTP headers to tell
browsers to provide a web application running at one origin. CORS accesses various web
resources on different domains. Web scripts can be integrated using CORS when it requests a
resource that has an external origin (protocol. Domain, or port) from its own.
Inversion of Control (IoC) is a broad term used by software developers for defining a pattern that
is used for decoupling components and layers in the system. It is mostly used in the context of
object-oriented programming. Control of objects or portions of a program is transferred to a
framework or container with the help of Inversion of Control. It can be achieved using various
mechanisms such as service locator pattern, strategy design pattern, factory pattern, and
dependency injection.
Injector class: It injects service class objects into the client class.
Continuous Integration (CI) is a practice where developers integrate code into a shared
repository regularly to detect problems early. CI process involves automatic tools that state new
code's correctness before integration. Automated builds and tests verify every check-in.
10. What is multithreading and how it is used?
The main purpose of multithreading is to provide multiple threads of execution concurrently for
maximum utilization of the CPU. It allows multiple threads to exist within the context of a
process such that they execute individually but share their process resources.
This is typically a difficult question to answer, but a good developer will be able to go through
this with ease. The core difference is GraphQL doesn't deal with dedicated resources. The
description of a particular resource is not coupled to the way you retrieve it. Everything referred
to as a graph is connected and can be queried to application needs.
Watch this video on “Top 10 Highest Paying IT Jobs in 2021” and know how to get into
these job roles.
12. List the ways to improve your website load time and performance.
There are quite a lot of possible ways to optimize your website for the best performance:
Browser caching.
Optimize caches.
The purpose of the Observer pattern is to define a one-to-many dependency between objects, as
when an object changes the state, then all its dependents are notified and updated automatically.
The object that watches on the state of another object is called the observer, and the object that is
being watched is called the subject.
14. What’s the difference between Full Stack Engineer and Full Stack Developer?
A Full-Stack engineer is someone with a senior-level role with the experience of a Full Stack
developer, but with project management experience in system administration (configuring and
managing computer networks and systems).
15. What is polling?
Polling is a method by which a client asks the server for new data frequently. Polling can be
done in two ways: Long polling and Short Polling.
Long polling is a development pattern that surpasses data from server to client with no
delay.
GET POST
POST is used to send data to a server to
GET is used to request data from a specified resource.
create/update a resource.
Can be bookmarked Cannot be bookmarked
Can be cached Not cached
Parameters remain in the browser history Parameters are not saved in the browser history
Data is visible to everyone in the URL Data is not displayed in the URL
Only ASCII characters allowed Binary data is also allowed
Abstract Interface
An abstract class can have abstract and non-
The interface can have only abstract methods.
abstract methods
An abstract class can have static, non-static,
The interface has only static and final variables.
final, non-final variables.
An abstract class can provide the Interface can’t provide the implementation of an abstract
implementation of the interface. class.
An abstract class can be extended using the An interface can be implemented using the keyword
keyword "extends". "implements".
A Java abstract class can have class members
Members of a Java interface are public by default.
like private, protected, etc.
18. How can you prevent a bot from scraping a publicly accessible API?
If the data within the API is publicly accessible, then it's not possible to prevent data scraping
completely. However, there is an effective solution that will deter most people/bots: rate-limiting
(throttling).
Throttling will prevent a specific device from making a defined number of requests within a
defined time. Upon exceeding the specified number of requests, 429 Too Many Attempts HTTP
error should be thrown.
Generating temporary “session” access tokens for visitors at the front end
REST stands for representational state transfer. A RESTful API (also known as REST API) is an
architectural style for an application programming interface (API or web API) that uses HTTP
requests to obtain and manage information. That data can be used to POST, GET, DELETE, and
OUT data types, which refers to reading, deleting, creating, and operations concerning services.
A callback in JavaScript is a function passed as an argument into another function, that is then
requested inside the outer function to make some kind of action or routine. JavaScript callback
functions can be used synchronously and asynchronously. APIs of the node are written in such a
way that they all support callbacks.
Data Attributes are used to store custom data private to the application or page. They allow us to
store extra data on the standard, semantic HTML elements. The stored data can be used in
JavaScript’s page to create a more engaging user experience.
Must contain at least one character long after the prefix "data-" and should not contain
uppercase letters.
Resetting Normalizing
Normalizing makes elements render consistently
Removes all the built-in browser styling.
across browsers.
Provides bug fixes Includes bug fixes
Acronym ACID stands for Atomicity, Consistency, Isolation, and Durability. In database
systems, ACID refers to a standard set of properties that ensure database transactions are
processed reliably.
In a rolling deployment, a new version of the application gradually replaces the previous
one. Upgrading the system takes a period of time, and both old and new versions will
coexist without affecting user experience or functionality in that phase.
In a blue-green deployment, two identical production environments work in parallel. One
is a blue environment that runs the production environment by receiving all user traffic.
Another one is the green environment which you want to upgrade. Both use the same
database backend and app configuration. If you swap the environment from blue to green,
then traffic is directed towards a green environment.
An application server is a software framework that allows the creation of both web applications
and server environments. It contains a comprehensive service layer model and supports various
protocols and application programming interfaces (API).
27. What are the differences between Server-side Scripting and Client-side Scripting?
Basis for
Server-side scripting Client-side scripting
comparison
Works in backend and not visible to the Works in frontend and scripts are visible
Definition
client-side. among users.
Processing Server Interaction required Interaction with the server is not required
Ruby on Rails, PHP, ASP.net, Python,
Languages CSS, HTML, JavaScript, etc.
ColdFusion, etc.
Security Relatively Secure Insecure
In general, a design pattern is a repeatable solution for common problems occurring in software
design. These patterns show the interactions and relationships between classes and objects.
Mainly, there are three types of design patterns:
Creational - These are about object creation or class instantiation. Further, these patterns
are categorized into object-creational patterns and class-creational patterns.
Structural - These are about organizing different classes and objects to form larger
functionality and provide new functionality.
Behavioral - These are about identifying common communication patterns between
objects.
Normalization Denormalization
Normalization is used to reduce data redundancy and Denormalization is used to add redundancy to
data inconsistently from the table. execute queries.
Data integrity is maintained Data integrity is not maintained
In normalization, no of tables is increased. In denormalization, no of tables is decreased.
Denormalization does not optimize the disk
Normalization optimizes the usage of disk space.
spaces.
30. Name a few ways to optimize a website to be as efficient and scalable as possible?
Enable gzipping