Professional Documents
Culture Documents
Software Construction Assignment
Software Construction Assignment
ROLLNO: b-25912
SUBJECT: Software Construction
ASSIGNMENT
Static Testing:
1. **Reviews**: This involves manual examination of code, requirements, design, and documentation.
Types of reviews include:
- **Code Review**: Reviewing source code for errors, compliance with coding standards, and
optimization.
- **Requirement Review**: Examining requirements documents to ensure they are clear, complete,
and consistent.
- **Design Review**: Evaluating system architecture and design for flaws, feasibility, and adherence
to design principles.
2. **Static Analysis**: Automated analysis of the software code or documentation without executing it.
Types of static analysis include:
- **Syntax Checking**: Ensuring code follows the syntax rules of the programming language.
- **Code Metrics Analysis**: Measuring code complexity, size, and other metrics to assess
maintainability and quality.
- **Static Code Analysis**: Identifying potential defects, security vulnerabilities, and coding standards
violations using specialized tools.
Dynamic Testing:
1. **Unit Testing**: Testing individual units or components of the software in isolation. It's often
automated and focuses on verifying the correctness of small code segments.
3. **System Testing**: Testing the entire system as a whole to ensure it meets specified requirements.
It may include functional and non-functional testing to assess overall system behavior.
4. **Acceptance Testing**: Confirming that the system meets the user's requirements and is ready for
deployment. It includes:
- **User Acceptance Testing (UAT)**: End-users validate the system to ensure it meets their needs.
- **Alpha Testing**: Testing conducted by the development team before releasing the software to the
end-users.
- **Beta Testing**: Testing conducted by a selected group of end-users in a real environment before
the official release.
5. **Regression Testing**: Re-testing modified parts of the software to ensure that existing
functionalities are not affected by changes. It prevents the introduction of new defects.
6. **Performance Testing**: Evaluating the responsiveness, throughput, reliability, and scalability of the
software under various conditions. Types of performance testing include:
- **Load Testing**: Assessing system behavior under normal and peak load conditions.
- **Stress Testing**: Evaluating system behavior under extreme conditions to determine its breaking
point.
- **Scalability Testing**: Testing the system's ability to scale up or down to handle varying loads.
7. **Security Testing**: Assessing the security vulnerabilities of the software to ensure it is protected
against potential threats and attacks.
8. **Usability Testing**: Evaluating the software's user interface and overall user experience to ensure
it is intuitive and easy to use.
Each category of testing plays a crucial role in ensuring the quality, reliability, and security of software
applications.