Prototyping can be particularly useful in Agile development when the customer is unsure about the _______ of the system.
- Cost
- Deadline
- Functionality
- Scope
Prototyping is especially valuable in Agile development when the customer is uncertain about the "Functionality" of the system. It allows customers to see and interact with a partial system, making it easier to refine and clarify requirements as the project progresses.
What does the reliability quality attribute signify in the context of software?
- Speed of the software
- Security of the software
- Trustworthiness and consistency of the software
- Adaptability of the software
Reliability, in the context of software, signifies the trustworthiness and consistency of the software. A reliable software system performs its functions consistently and without unexpected failures, providing a dependable user experience.
_____ testing in UI design involves evaluating a product by testing it on users to directly observe and analyze how they use it.
- Usability
- Functionality
- Regression
- Performance
Usability testing in UI design is a crucial process where a product is evaluated by testing it on actual users. This allows designers to directly observe and analyze how users interact with the interface, providing insights into areas of improvement to enhance the user experience.
Consider a situation in which a security team identifies a new piece of malware. How can reverse engineering aid in understanding its functionality and mitigating its impact?
- It can permanently remove the malware without analysis
- It can identify the malware's source code and author
- It can help understand how the malware operates and how to counteract it
- It can encrypt the malware to make it harmless
Reverse engineering can help dissect malware to understand its inner workings, discover vulnerabilities, and develop countermeasures to mitigate its impact.
Suppose a development team is building a microservices-based application. Discuss the potential strategies and considerations for designing APIs that facilitate communication between different microservices.
- Use RESTful APIs
- Implement GraphQL
- Design APIs with versioning
- Utilize WebSockets
In a microservices architecture, designing APIs with versioning is crucial to maintain backward compatibility while allowing for changes and enhancements. Versioning enables different microservices to communicate without breaking existing functionality.
Which type of software maintenance deals with fixing bugs and errors after the software has been deployed?
- Corrective Maintenance
- Adaptive Maintenance
- Perfective Maintenance
- Preventive Maintenance
Corrective maintenance, also known as bug fixing, addresses and fixes errors, defects, or issues that occur after the software has been deployed. It is aimed at ensuring the software functions correctly.
How might a complex, interdependent software system pose challenges for effective Unit Testing, and what strategies might be employed to mitigate these challenges?
- Complex systems make Unit Testing easier
- Interdependencies have no impact on Unit Testing
- Complex, interdependent systems may require extensive mocking and stubbing
- Complex systems eliminate the need for Unit Testing
In complex, interdependent systems, unit testing can be challenging due to the dependencies on other units. To mitigate these challenges, extensive mocking and stubbing may be required to isolate units for testing. These techniques help create controlled environments for unit testing.
In Agile methodologies, regression testing is often automated to facilitate continuous integration throughout the development process.
- Documentation
- Integration
- Planning
- Testing
In Agile methodologies, automated regression testing is a key component of continuous integration, allowing for frequent and automated testing as new code is integrated, ensuring that changes do not introduce defects.
The ______ model of software quality assurance involves both verification and validation activities.
- Waterfall
- V-Model
- Agile
- Spiral
The V-Model of software quality assurance integrates both verification and validation activities into the software development life cycle. It is a structured approach that emphasizes the relationship between development phases and corresponding testing phases.
Which software evolution model is focused on re-creating a system from scratch?
- Waterfall Model
- Incremental Model
- Spiral Model
- Big Bang Model
The Big Bang Model focuses on re-creating a system from scratch. It's a risky approach where the old system is entirely replaced with a new one.