Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

NAME: Shafa Fatima

ROLLNO: b-25912
SUBJECT: Software Construction

ASSIGNMENT

Q#:1 What are different categories of static


and dynamic testing?
Static testing and dynamic testing are two broad categories of software testing, each with its own
subsets. Here's an overview:

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.

- **Document Review**: Inspecting project documentation such as user manuals, technical


specifications, and design documents.

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.

- **Consistency Checking**: Verifying consistency across different artifacts such as requirements,


design, and code.

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.

2. **Integration Testing**: Verifying interactions between different components/modules of the


software. It ensures that integrated units work together as expected.

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.

You might also like