Software Engineering 1 - words/knowledge needed for 1-4 of "multible choice" Flashcards
Name the SOLID principles of object-oriented programming
Single Responsibility Principle (SRP)
Open/Closed Principle (OCP)
Liskov Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
Explain Single Responsibility Principle (SRP)
(the S in SOLID principles of object-oriented programming)
Definition: A class should have only one reason to change, meaning it should have only one responsibility.
Goal: Keep classes focused on a single functionality to make the system more modular and easier to maintain.
Explain Open/Closed Principle (OCP)
(the O in SOLID principles of object-oriented programming)
Definition: Software entities (classes, modules, functions) should be open for extension but closed for modification.
Goal: Allow behavior to be extended without altering existing code, reducing the risk of introducing bugs in already-tested functionality.
Explain Liskov Substitution Principle (LSP)
(the L in SOLID principles of object-oriented programming)
Definition: Subclasses should be substitutable for their base classes without altering the correctness of the program.
Goal: Ensure that derived classes extend behavior without breaking the existing system.
Explain Interface Segregation Principle (ISP)
(the I in SOLID principles of object-oriented programming)
Definition: A class should not be forced to implement interfaces it does not use.
Goal: Create smaller, more specific interfaces rather than large, multipurpose ones, so that implementing classes only need to know about relevant methods.
Explain Dependency Inversion Principle (DIP)
(the D in SOLID principles of object-oriented programming)
Definition: High-level modules should not depend on low-level modules; both should depend on abstractions.
Goal: Decouple components by relying on abstractions rather than concrete implementations, enabling easier swapping and testing of components.
Explain Recovery Testing
Recovery Testing is a type of software testing that evaluates how well a system can recover from crashes, hardware failures, or other catastrophic issues. The primary goal is to ensure the system can return to a stable state after an unexpected disruption.
Explain Performance Testing
Definition: Performance testing evaluates how a system performs under various conditions, including normal and peak loads. It aims to measure responsiveness, stability, and scalability.
What are the key objectives of Perfomance Testing?
Key Objectives of Perfomance Testing:
- Identify bottlenecks in the system.
- Ensure the system meets performance benchmarks such as response time, throughput, and resource usage.
- Test the system’s behavior under stress (e.g., high user loads).
Name 4 types of Perfomance testing
Types of Performance Testing:
Load Testing
Stress Testing
Scalability Testing
Endurance Testing
Explain Load Testing
(a type of Perfomance Testing)
Load Testing: Assesses performance under expected user load.
Explain Stress Testing
(a type of Perfomance Testing)
Stress Testing: Tests limits by increasing the load beyond normal levels.
Explain Scalability Testing
(a type of Perfomance Testing)
Scalability Testing: Evaluates the system’s ability to scale up or down.
Explain Endurance Testing
(a type of Perfomance Testing)
Endurance Testing: Checks performance over an extended period.
Explain Compatibility Testing
Definition: Compatibility testing ensures that the software operates correctly across various environments, such as different operating systems, browsers, hardware configurations, or network conditions.
What are the key objectives of Compability Testing?
Key Objectives of Compability Testing:
Confirm that the application behaves consistently across diverse platforms.
Identify any platform-specific issues or limitations.
Ensure proper integration with other software components or tools.
Name 4 aspects of Compability testing
OS Compatibility: Windows, macOS, Linux, etc.
Browser Compatibility: Chrome, Firefox, Safari, etc.
Device Compatibility: Smartphones, tablets, desktops, etc.
Network Compatibility: Different bandwidths or latency levels.
Give examples of OS Compatibility
(an aspect of Compability Testing)
Windows, macOS, Linux, etc.
Give examples of Browser Compatibility
(an aspect of Compability Testing)
Chrome, Firefox, Safari, etc.
Give examples of Device Compatibility
(an aspect of Compability Testing)
Smartphones, tablets, desktops, etc.
Give examples of Network Compatibility
(an aspect of Compability Testing)
Different bandwidths or latency levels.
Explain Data Validation or Input/Output Testing
Definition: This testing ensures the accuracy, reliability, and consistency of data being input into the system, processed, and output to the user or external systems.