Verification is the process of checking that a software achieves
its goal without any bugs. It is the process to ensure whether the product that is developed is right or not. the reviewing of a document can be done from the first phase of software development i.e. software requirement and analysis phase where the end product is the SRS document. Verification is Static Testing. Advantages: You can expect some good results without spending any significant resources. It is very efficient and significant in its nature. It may help us to find potential faults. It may also be used for sharing documents with others. It can be very effective for finding potential faults or problems in the documents like SRS, SDD, etc. The critical inspections may also help in finding faults and improve these documents which can in preventing the propagation of a fault in the software development life cycle process Disadvantages: Lead to bad results if the reviewer doesn’t have sufficient knowledge. They take time and require discipline. It requires more cost and also needs skilled testers. The author may hide some critical areas and unnecessarily emphasize some specific areas of his / her interest. Peer Reviews – The very easiest method and informal way of reviewing the documents or the programs/software for the purpose of finding out the faults during the verification process is the peer-review method. In this method, we give the document or software programs to others and ask them to review those documents or software programs where we expect their views about the quality of our product and also expect them to find the faults in the program/document. The activities that are involved in this method may include SRS document verification, SDD verification, and program verification. In this method, the reviewers may also prepare a short report on their observations or findings, etc. Advantages: You can expect some good results without spending any significant resources. It is very efficient and significant in its nature. Walk-through – Walk-throughs are the formal and very systematic type of verification method as compared to peer-review. In a walkthrough, the author of the software document presents the document to other persons which can range from 2 to 7. Participants are not expected to prepare anything. The presenter is responsible for preparing the meeting. The document(s) is/are distributed to all participants. At the time of the meeting of the walk-through, the author introduces the content in order to make them familiar with it and all the participants are free to ask their doubts. Advantages: It may help us to find potential faults. It may also be used for sharing documents with others. Disadvantages: The author may hide some critical areas and unnecessarily emphasize some specific areas of his / her interest. Inspections Inspections are the most structured and most formal type of verification method and are commonly known as inspections. A team of three to six participants is constituted which is led by an impartial moderator. Every person in the group participates openly, actively, and follows the rules about how such a review is to be conducted. Everyone may get time to express their views, potential faults, and critical areas. After the meeting, a final report is prepared after incorporating necessary suggestions by the moderator. Advantages: It can be very effective for finding potential faults or problems in the documents like SRS, SDD, etc. The critical inspections may also help in finding faults and improve these documents which can in preventing the propagation of a fault in the software development life cycle process. Disadvantages: They take time and require discipline. It requires more cost and also needs skilled testers. Requirement Phase Testing Requirement Phase Testing also known as Requirement Analysis in which test team studies the requirements from a testing point of view to identify testable requirements and the QA team may interact with various stakeholders to understand requirements in detail. Requirements could be either functional or non-functional. Automation feasibility for the testing project is also done in this stage. Activities in Requirement Phase Testing Identify types of tests to be performed. Gather details about testing priorities and focus. Prepare Requirement Traceability Matrix (RTM). Identify test environment details where testing is supposed to be carried out. Automation feasibility analysis (if required). Deliverables of Requirement Phase Testing RTM Automation feasibility report.
Explain testing during the design phase.
The main purpose of the test design process is to structure QA routines so it becomes easier to keep track of the requirements coverage. We need test design: to develop tests that help to detect serious errors; to take a thoughtful approach to testing and avoid wasting resources; to minimize the number of tests required to validate the product. They are strategies that help to write better test cases. The benefits of using test design techniques is an opportunity to create fewer tests while ensuring broad requirements coverage. Software development verification Activities involved in verification: 1. Inspections:- Inspections are a formal type of review that involves checking the documents thoroughly before a meeting and is carried out mostly by moderators. A meeting is then held to review the code and the design. 2. Reviews:- A review is a systematic examination of a document by one or more people with the main aim of finding and removing errors early in the software development life cycle. Reviews are used to verify documents such as requirements, system designs, code, test plans and test cases. 3. Walkthroughs:- Walkthrough in software testing is used to review documents with peers, managers, and fellow team members who are guided by the author of the document to gather feedback and reach a consensus. A walkthrough can be pre-planned or organised based on the needs. 4. Desk-checking:- A desk check is an informal non-computerized or manual process for verifying the programming and logic of an algorithm before the program is launched. A desk check helps programmers to find bugs and errors which would prevent the application from functioning properly. Software Validation Validation is the process of checking whether the software product is up to the mark or in other words product has high level requirements. It is the process of checking the validation of product i.e. it checks what we are developing is the right product. it is validation of actual and expected product. Validation is the Dynamic Testing Activities involved in validation: 1. Black box testing:- Black box testing involves testing a system with no prior knowledge of its internal workings. A tester provides an input, and observes the output generated by the system under test 2. White box testing:- White box testing is an approach that allows testers to inspect and verify the inner workings of a software system—its code, infrastructure, and integrations with external systems. 3. Unit testing:- A unit test is a way of testing a unit - the smallest piece of code that can be logically isolated in a system. In most programming languages, that is a function, a subroutine, a method or property. The isolated part of the definition is important. 4. Integration testing:- Integration testing -- also known as integration and testing (I&T) -- is a type of software testing in which the different units, modules or components of a software application are tested as a combined entity. However, these modules may be coded by different programmers. Acceptance Testing Acceptance Testing is a method of software testing where a system is tested for acceptability. The major aim of this test is to evaluate the compliance of the system with the business requirements and assess whether it is acceptable for delivery or not It is a formal testing according to user needs, requirements and business processes conducted to determine whether a system satisfies the acceptance criteria or not. Acceptance Testing is the last phase of software testing performed after System Testing and before making the system available for actual use. User Acceptance Testing (UAT): User acceptance testing is used to determine whether the product is working for the user correctly. This is also termed as End-User Testing. Business Acceptance Testing (BAT): BAT is used to determine whether the product meets the business goals and purposes or not. BAT mainly focuses on business profits. Contract Acceptance Testing (CAT): CAT is a contract that specifies that once the product goes live, within a predetermined period, the acceptance test must be performed and it should pass all the acceptance use cases. The payment will be made to the company by the client only if the product passed all the acceptance use cases. Regulations/Compliance Acceptance Testing (RAT): Regulations Acceptance Testing is also known as Compliance Acceptance Testing. RAT is used to determine whether the product violates the rules and regulations that are defined by the government of the country where it is being released. Operational Acceptance Testing (OAT): OAT is used to determine the operational readiness of the product and is non-functional testing. OAT assures the stability of the product before it is released to production. Alpha Testing: Alpha testing is used to determine the product in the development testing environment by a specialized testers team usually called alpha testers. Beta Testing: Beta testing is used to assess the product by exposing it to the real end- users, usually called beta testers in their environment. Feedback is collected from the users and the defects are fixed. Also, this helps in enhancing the product to give a rich user experience. SDLC V Model The V-model is a type of SDLC model where process executes in a sequential manner in V-shape. It is also known as Verification and Validation model. Development of each step directly associated with the testing phase. The next phase starts only after completion of the previous phase i.e. for each development activity, there is a testing activity corresponding to it. Verification: It involves static analysis technique (review) done without executing code. It is the process of evaluation of the product development phase to find whether specified requirements meet. Validation: It involves dynamic analysis technique (functional, non-functional), testing done by executing code. Validation is the process to evaluate the software after the completion of the development phase to determine whether software meets the customer expectations and requirements. So V-Model contains Verification phases on one side of the Validation phases on the other side. Verification and Validation phases are joined by coding phase in V-shape. Thus it is called V-Model.