Design principles and Strategies
Software design is an iterative process through which requirements are interpreted into a blueprint for creating the software. The design is represented at a high level of abstraction due to design iterations arise. Here subsequent refinement principals to design representation at much lower levels of abstraction. A set of principles for software design are mention below,
- The design should be structured to accommodate change.
- The design should be structured to degrade gently.
- The design process should not suffer from “tunnel vision”.
- The design should be traceable to the analysis model.
- The design should “minimize the intellectual distance” between the software and the problem in the real world.
- The design should exhibit uniformity and integration.
- The design should not reinvent the wheel.
- Design is not coding.
- The design should be assessed for quality.
- The design should reviewed to minimize conceptual errors.
Q Describe test strategy testing techniques and strategy in software engineering.
Software testing techniques and strategy in software engineering. Software Testing is comprises of Validation and Verification appraisal of the software contrary to requirements gathered from users and system specifications. This is conducted at the phase level in software development life cycle either module level in program code.
Software Testing Validation is process of investigative satisfies the user requirements which is carried out at the end of the SDLC. If the software matches supplies for which it was made, it is validated.
- Validation safeguards the product under development is as per the user requirements.
- Validation answers the question Are we developing the product which attempts all that user needs from this software?
- Validation highlights on user requirements.
Software Verification is the process of confirming if the software is meeting the business requirements, and is developed following to the proper specifications and methodologies.
- Verification guarantees the product being developed is according to design specifications.
- Verification answers the question Are we developing this product by firmly following all design specifications?
- Verifications focusses on the design and system specifications. Target of the test are errors. These errors are actual coding mistakes made by developers. Additionally, there is a variance in output of software and desired output, is considered as an error. Fault refers when error exists fault occurs. A fault, also known as a bug, is a result of an error which can cause system to fail. Failure is thought to be the inability of the system to perform the desired task. Failure occurs when fault exists in the system.
Manual testing is testing of the software where tests are executed manually by a QA Analyst to discover bugs in software under development. Automation software testing tools where classical method of all testing types and helps find bugs in software systems. It is generally conducted by an experienced tester to accomplish the software testing process.
- Manual – This testing is performed without taking help of automated testing tools. The software tester prepares test cases for different sections and levels of the code, executes the tests and reports the result to the manager. Manual testing is time and resource consuming. The tester needs to confirm whether or not right test cases are used. Major portion of testing involves manual testing.
- Automated This testing is a testing procedure done with aid of automated testing tools. The limitations with manual testing can be overcome using automated test tools.