Thursday, May 11, 2023

Exploring the Common API Terminology You Need to Know

  1. REST (Representational State Transfer): An architectural style for designing networked applications, typically using HTTP as the underlying protocol.
  2. SOAP (Simple Object Access Protocol): A protocol for exchanging structured information in web services using XML-based messages.
  3. JSON (JavaScript Object Notation): A lightweight data-interchange format that is easy for humans to read and write, and easy for machines to parse and generate.
  4. OAuth (Open Authorization): An open standard for authorization that allows users to grant access to their protected resources without sharing their credentials.
  5. SDK (Software Development Kit): A set of tools, libraries, and documentation that developers use to build applications for a specific platform or programming language.
  6. SDK Client: A software component or library that provides an interface for interacting with an API from within an application.
  7. API client: A program or tool that interacts with an API on behalf of a user or system.
  8. API key: A secret token or credential to authenticate a user or system when accessing an API.
  9. Authentication: The process of verifying the identity of a user or system attempting to access an API.
  10. Authorization: The process of determining whether a user or system has permission to access a specific resource or perform a particular action.
  11. Endpoint: A URL that represents a specific resource or action within an API.
  12. HTTP verb/method: The type of request being made (e.g., GET, POST, PUT, DELETE) that determines the action to be taken on a resource.
  13. Rate Limiting: The process of restricting the number of requests a client can make to an API within a given time period to prevent abuse or ensure fair usage.
  14. Webhooks: A mechanism for receiving real-time notifications from an API by sending HTTP requests to a specified URL when a specific event occurs.
  15. CORS (Cross-Origin Resource Sharing): A mechanism that allows resources (e.g., fonts, JavaScript) on a web page to be requested from another domain outside the domain from which the resource originated.
  16. API Gateway: A server that acts as an entry point for client requests and provides various features such as routing, authentication, and rate limiting for backend APIs.
  17. Bearer Token: A type of access token used in authentication, where the token is presented by the client to access protected resources.
  18. GraphQL (Graph Query Language): A query language and runtime for APIs that provide a flexible and efficient approach to request and manipulate data.
  19. Versioning: The practice of assigning a version number to an API to manage changes, additions, or removals of functionality over time.
  20. Payload: The data transmitted in a request or response body, typically in formats like JSON or XML.
  21. Pagination: The process of dividing a large data set into smaller pages or chunks to improve performance and limit the amount of data transferred in a single response.
  22. Content-Type: An HTTP header that specifies the media type of the data being sent or received in a request or response.
  23. API Documentation: Comprehensive and structured information about an API, including endpoints, request/response formats, parameters, and example usage.
  24. API Key: A unique identifier or token provided to a client application for authentication and authorization purposes when making API requests.
  25. Query parameter: A way to pass additional information to an API endpoint through the URL query string.
  26. Asynchronous API: An API design pattern where the client can send a request to the server and receive a response at a later time, without blocking the client's execution until the response is received.


Thursday, May 4, 2023

What is the difference between Mistake, Error, Bug, Defect, Fault and Failure?

Testing is the process of identifying defects, where a defect is any variance between actual and expected results. “A mistake in coding is called an Error, an error found by a tester is called a Defect, a defect accepted by the development team then is called Bug, build does not meet the requirements then it Is Failure.”

Although the terms "mistake," "error," "bug," "defect," "fault," and "failure" are often used interchangeably in everyday language, in the world of software development and quality assurance, they have distinct meanings. Here are some definitions to help differentiate between them:

1. Mistake: 

  • A mistake is a human action that produces an incorrect result. In software development, this could be a coding mistake, such as a typo or a logic error, made by a developer.

2. Error: 

  • An error is a deviation from the expected behaviour of a program, which can occur due to a mistake made by a developer or because of some other external factor, such as hardware malfunction or network failure.

3. Bug: 

  • A bug is a specific type of error that is caused by a fault in the code, which can be as simple as a missing semicolon or as complex as a race condition. Bugs are typically discovered during testing or after the software has been released.

4. Defect: 

  • A defect is a flaw in the software that causes it to deviate from its intended behaviour. This could be due to a design flaw, a coding mistake, or an error in the requirements specification.

5. Fault: 

  • A fault is a defect that exists in the software but has not yet been activated or triggered. For example, a race condition in the code may not cause a problem until the software is run on a specific hardware configuration.

6. Failure: 

  • A failure is an event in which the software does not behave as expected, resulting in a loss of service or data. Failures can be caused by errors, bugs, defects, or faults, and can occur at any stage of the software development process.

What Is The Difference Between Regression Testing And Smoke Testing?

Regression testing and smoke testing are both types of software testing, but they serve different purposes and have different characteristics.

Regression Testing:

  • Regression testing is the process of testing a software application to ensure that any new changes or modifications to the code have not introduced new defects or broken existing functionality. 
  • It involves running a set of previously executed test cases to check if any new errors have been introduced or if the changes made to the code have affected the existing functionality. Regression testing is usually done after code changes or bug fixes.

Smoke Testing:
  • Smoke testing, on the other hand, is a preliminary level of testing that checks the basic functionality of an application. 
  • It is usually performed to ensure that the build or the application is stable and ready for further testing. 
  • Smoke testing is done to ensure that the most critical functionalities of the application are working fine, and the application is not completely broken.

Sanity Testing:
  • Sanity testing is similar to smoke testing, but it is performed after smoke testing to verify that the defects found in smoke testing have been fixed and that the critical functionalities are still working fine. 
  • Sanity testing is also used to ensure that the new features added to the application are working as expected, and the application is ready for further testing.
In summary, regression testing checks for any new errors or defects that might have been introduced after code changes, while smoke testing and sanity testing ensure that the basic and critical functionalities of the application are working fine. Smoke testing is done before further testing, while sanity testing is done after smoke testing to ensure that the application is ready for further testing.