# Software Testing - Software Review
# Definition
**review:** product is distributed to reviewers who examine it and give feedback.
*find the error **in review make the cost less** to fix than they would cost **if they were found in test.***
---
**Software Review:** systematic inspection of a software to find and resolve errors and defects in the software during the early stages of Software Development Life Cycle (SDLC).
*All work products in a software project should be either **reviewed (Static Test)** or **tested (Dynamic Test)***
**Static Test:** usually performed manually to verify any type of documents (requirements , specifications ...etc)
**Dynamic Test:** use dynamic execution as a tool to detect defects and to evaluate quality ,**only work with code** (example -> not applicable on requirements documents).
# Standard for Software Reviews and Audits
## Management Review
**Evaluation of if management systems are performing as supposed and producing the desired results.**
*purpose is monitor progress, determine the status of plans and schedules*
**EXAMPLE**

| Management Review | Technical Review | Software Audit |
| -------- | -------- | -------- |
| reviews any decisions related to project management. | evaluates the technical quality of software products | externally conducted audit into a project's compliance to specifications, contractual agreements, and other criteria |
1. **The decision maker:** the person for whom the management review is conducted.
2. **Review leader:** ensure that administrative tasks pertaining to the review are completed
3. **Recorder:** document anomalies, action items, decisions, and recommendations made by the review team.
4. **Management staff:** carry out management reviews
5. **Technical staff:** provide the information necessary for the management staff to fulfill its responsibilities.
6. **Customer or user representative:** the role is determined by the review leader prior to the review.
## Technical Review
**software quality assurance activity performed mainly by software engineer to determine to determine its suitability for its intended suitability for its intended.**
### Objectives of Technical Review
* uncover errors in function, logic, or implementation
* software under review meets its requirements.
* software represented according to predefined standards
* make software projects more manageable.
### Requirement Review
**software testing depends on good requirements**
#### **8 Characteristics of Good User Requirements:**
1. **Verifiable:** As you write a requirement, determine how you will verify it.
2. **Clear and Concise:** Simple sentences, easily read and understood by non technical people,unambiguous.
3. **Complete:** contains all the information that is needed to define the system function.
4. **Consistent:** does not conflict with other requirements in the requirement specification, uses the same terminology.
5. **Traceable:** has a unique identity,cannot be separated or broken into smaller requirements,easily be traced
6. **Feasible:** can be met using existing technology, achieved within the budget and met within the schedule.
7. **Necessary:** must be present to meet system objectives,leads to a deficiency in the system if it is removed.
8. **Implementation free:** A requirement that is free of implementation details (what functions are provided NOT specify how).
***review slides examples***
### Design Review
**is a process whereby a design is tested against its requirements prior to implementation.**
**Software design reviews:** systematic, comprehensive, and well-documented inspection of design aims to check if the design meets all the specified requirements.