What is REST?
REST is an acronym for "representational state transfer." It's a design pattern or architectural style for APIs. A RESTful web application reveals information about itself as resource information.
REST is an acronym for "representational state transfer." It's a design pattern or architectural style for APIs. A RESTful web application reveals information about itself as resource information.
REST Assured is a Java library that offers programmers a domain-specific language (DSL) to write maintainable, robust tests for RESTful APIs. It is widely used to test web applications based on JSON and XML. Additionally, it supports all methods, including GET, DELETE, PUT, POST, and PATCH.
Here are some techniques:
Here are few differences:
Scrum | Kanban | |
---|---|---|
Artifacts | Product Backlog, Sprint Backlog, Product Increment | Kanban Board |
Concept Pillars | Transparency, adaptation, inspection | Effective, efficient, predictable |
Cycle | Regular 2 or 4 weeks sprints | Continuous flow |
Change Policy | Not done within sprint | incorporate any time |
Estimation Importance | High | Low |
Ideology | Learn through experience, self organize and priortize, and reflect on wins and loses to continuous improve. | Use visual to improve work in progress |
Iterative Approach | Yes | No |
Origin | Software Development | Lean Manufacturing |
Practice | Daily Scrum, Sprint Planning, Sprint Review, Sprint Retrospective | Visualize the flow of work, limit work in progress, manage flow, incorporate feedback loops |
Problem Solver | Scrum Master. Cross-Functional Team | All member or specialized team |
Productivity Measurement | Measures production using velocity through sprints. Each sprint is laid out back-to-back and/or concurrently so that each additional sprint relies on the success of the one before it. | Measures production using “cycle time,” or the amount of time it takes to complete one full piece of a project from beginning to end. |
Roles | Product Owner, Scrum Master and Development Team | No Required Roles |
Resource Requirement | Preferred in less or more resource | Preferred when resources are limited |
Sub-Task Creation | Yes | No |
Suitable for projects | with chainging priorities | stable priorities |
Team Member Dependency | Process does not disturbed when team member leaves in between | Process disturbed |
Tools | Jira Software, Axosoft, VivifyScrum, Targetprocess | Jira Software, Kanbanize, SwiftKanban, Trello, Asana |
Here are some challenges and limitations of Selenium:
Here are some challenges or limitations with WebDriverIO:
Syntax: Syntax is typical for Beginners. e.g. async-await syntax.
Code
function isPalindrom(str) {
return str === str.split("").reverse().join("");
}
console.log(isPalindrom("madam")); // return true
console.log(isPalindrom("hello")); // return false
Code
function maxNumber(arr) {
return Math.max(...arr);
}
console.log(maxNumber([10, 40, 30])); // output - 40
Code
function sum(num1, num2) {
return num1 + num2;
}
console.log("Sum:", sum(2, 3)); // output - Sum: 5
Here are few differences:
Unlike a type alias, an interface can be defined multiple times, and will be treated as a single interface (with members of all declarations being merged).
// These two declarations become:
// interface Point { x: number; y: number; }
interface Point { x: number; }
interface Point { y: number; }
const point: Point = { x: 1, y: 2 };
Both can be extended, but again, the syntax differs. Additionally, note that an interface and type alias are not mutually exclusive. An interface can extend a type alias, and vice versa.
Interface extends interface
interface PartialPointX { x: number; }
interface Point extends PartialPointX { y: number; }
Type alias extends type alias
type PartialPointX = { x: number; };
type Point = PartialPointX & { y: number; };
Interface extends type alias
type PartialPointX = { x: number; };
interface Point extends PartialPointX { y: number; }
Type alias extends interface
interface PartialPointX { x: number; }
type Point = PartialPointX & { y: number; };
A class can implement an interface or type alias, both in the same exact way. Note however that a class and interface are considered static blueprints. Therefore, they can not implement / extend a type alias that names a union type.
interface Point {
x: number;
y: number;
}
class SomePoint implements Point {
x = 1;
y = 2;
}
type Point2 = {
x: number;
y: number;
};
class SomePoint2 implements Point2 {
x = 1;
y = 2;
}
type PartialPoint = { x: number; } | { y: number; };
// FIXME: can not implement a union type
class SomePartialPoint implements PartialPoint {
x = 1;
y = 2;
}
Both can be used to describe the shape of an object or a function signature. But the syntax differs.
Interface
interface Point {
x: number;
y: number;
}
interface SetPoint {
(x: number, y: number): void;
}
Type
type Point = {
x: number;
y: number;
};
type SetPoint = (x: number, y: number) => void;
Unlike an interface, the type alias can be used for other types such as primitives, unions, and tuples.
// primitive
type Name = string;
// object
type PartialPointX = { x: number; };
type PartialPointY = { y: number; };
// union
type PartialPoint = PartialPointX | PartialPointY;
// tuple
type Data = [number, string];