Inno VII- Testing and Messeging Flashcards

1
Q

General Overview of AMQP and MQTT

A
  • AMQP is a wire-level protocol designed for message-oriented middleware, providing features like queuing, routing, reliability, and security. It is commonly used in enterprise environments for reliable message delivery between applications.
  • MQTT is a lightweight protocol primarily used in IoT (Internet of Things) applications. It employs a publish/subscribe model, making it suitable for low-bandwidth, high-latency environments.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is AMQP?

A

AMQP is an open standard application layer protocol for message-oriented middleware. It ensures interoperability between different vendor implementations, similar to protocols like SMTP and HTTP[^3].

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Key Features of AMQP:

A
  • Message Orientation: AMQP is designed to handle messages efficiently, providing features like queuing and routing.

Queuing and Routing: Messages are published to exchanges, which then distribute them to queues based on bindings. This allows for both point-to-point and publish-and-subscribe patterns[^1][^3].

  • Reliability and Security: AMQP supports message-delivery guarantees such as at-most-once, at-least-once, and exactly-once delivery. It also includes authentication and encryption capabilities using SASL and TLS[^3].
  • Wire-Level Protocol: AMQP defines the format of data sent across the network, allowing tools from different vendors to interoperate if they conform to the protocol[^3].
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

AMQP Entities

A
  • Exchanges: These act as post offices where messages are sent.
  • Queues: Messages are stored here until they are consumed.
  • Bindings: Rules that determine how messages are routed from exchanges to queues[^1].
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

AMQP Versions

A
  • AMQP 0-9-1: This version is widely used in message brokers like RabbitMQ. It includes a broker-centric model where messages are routed through exchanges and queues[^1].
  • AMQP 1.0: This is a standardized version used in environments like Azure Service Bus. It focuses on framing and transfer capabilities without requiring a specific broker topology[^2].
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is MQTT?

A

MQTT is a lightweight, open-source messaging protocol designed for efficient communication in IoT environments. It uses a publish/subscribe model to decouple publishers from subscribers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Key Features of MQTT:

A
  • Publish/Subscribe Model: Devices (clients) publish messages to topics, and other devices subscribe to these topics to receive messages. This model is handled by an MQTT broker[^4][^6].
  • Low Bandwidth and High Latency: MQTT is optimized for environments with limited bandwidth and unreliable network connections, making it ideal for IoT applications[^5][^8].
  • Reliability: MQTT supports Quality of Service (QoS) levels to ensure message delivery reliability, including QoS 0 (at-most-once), QoS 1 (at-least-once), and QoS 2 (exactly-once)[^5].
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

MQTT Components:

A
  • MQTT Broker: Acts as a central server that filters and distributes messages to subscribed clients.
  • MQTT Clients: Devices that publish or subscribe to messages via the broker[^7].
  • IoT Applications: MQTT is widely used in smart homes, industrial automation, and other IoT environments for real-time data exchange[^6][^8].
  • Telemetry: MQTT facilitates the collection and transmission of data from remote devices for monitoring and analysis[^6].
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Unit Testing

A
  • Definition: Unit testing involves testing individual components (units) of a software application. These units can be functions, methods, or classes.
  • Purpose: To ensure each unit performs as expected and meets requirements.
  • Example: Testing a calculator’s add function to verify it returns the correct sum.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Integration Testing

A
  • Definition: Integration testing involves combining multiple units and testing them as a group to ensure they work together seamlessly.
  • Purpose: To verify that different components interact correctly and that data flows as expected between them.
  • Example: Testing how a login module interacts with a database to authenticate users.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Load Testing

A
  • Definition: Load testing is a type of performance testing that evaluates how a system behaves under expected and unexpected loads.
  • Purpose: To identify bottlenecks and ensure the system can handle real-world usage without compromising performance.
  • Example: Testing an e-commerce site to see how it handles a large number of concurrent users during a sale.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

End-to-End (E2E) Testing

A
  • Definition: E2E testing involves testing the entire workflow of an application from start to finish, simulating real user interactions.
  • Purpose: To verify that all components of the system work together as expected from the user’s perspective.
  • Example: Testing an e-commerce site by simulating a user searching for a product, adding it to cart, and completing checkout.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Regression Testing

A
  • Definition: Regression testing involves re-running tests after changes to ensure that updates haven’t introduced new bugs or affected existing functionality.
  • Purpose: To maintain software quality by identifying unexpected issues introduced by code changes.
  • Example: After adding a new feature, running tests on existing features to ensure they still work correctly.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Arrange-Act-Assert (AAA) Pattern

A
  • Definition: A structured approach to writing tests, consisting of three steps:
    • Arrange: Set up the necessary conditions for the test.
    • Act: Perform the action being tested.
    • Assert: Verify the expected results.
  • Purpose: To organize tests clearly and ensure they are easy to understand and maintain.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

FIRST Principles

A
  • Definition: FIRST is an acronym that stands for principles guiding how tests should be written:
    • Fast: Tests should run quickly.
    • Independent: Tests should not depend on each other.
    • Repeatable: Tests should produce consistent results.
    • Self-Validating: Tests should clearly indicate pass or fail.
    • Timely: Tests should be written in a timely manner, ideally before the code they test.
  • Purpose: To ensure tests are efficient, reliable, and maintainable.
  • Example: Writing unit tests that run quickly and independently, providing clear pass/fail results.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly