What is difference between QA, QC and Software Testing?
Quality Assurance (QA): QA refers to the planned and systematic way of monitoring the quality of process which is followed to produce a quality product. QA tracks the outcomes and adjusts the process to meet the expectation.
Quality Control (QC): Concern with the quality of the product. QC finds the defects and suggests improvements. The process set by QA is implemented by QC. The QC is the responsibility of the tester.
Software Testing: is the process of ensuring that product which is developed by the developer meets the user requirement. The motive to perform testing is to find the bugs and make sure that they get fixed.
A good time to start the QA is from the beginning of the project startup. This will lead to plan the process which will make sure that product coming out meets the customer quality expectation. QA also plays a major role in the communication between teams. It gives time to step up the testing environment. The testing phase starts after the test plans are written, reviewed and approved.
SDLC stands for Software Development Life Cycle
- Feasibility Study
- Requirements gathering
- Design
- Coding
- Testing
- Implementation
- Maintenance
Can you briefly explain each SDLC phases?
Requirement Phase
- This is the phase where the client requirements for the project will be gathered.
- Objective is to produce a document that specifies all requirements of Client Software.
- Business Analyst will be the primary anchor in this phase who will understand the requirements and prepare the Business Requirement Document (BRD), based on which the software will be developed and tested.
- Business Analyst will involve required stakeholders (like Developers / System Architects / Testers) to better understand the system and make effective documentation.
- Client will review and provide the sign-off / approval on the BRD.
Design Phase
- This is the phase where business requirements / specifications are converted into technical specifications.
- There are 2 level of design performed. They are,
High Level Design- List of modules and a brief description of each module.
- Interface relationship among modules.
- Dependencies between modules
- Database tables identified along with key elements.
- Overall architecture diagrams along with technology details.
Low Level Design- Detailed functional logic of the module, in pseudo code.
- Database tables, with all elements, including their type and size.
- All interface details.
- Complete input and outputs for a module
- Error message listings
Coding and Unit Testing
- This is the phase where software is developed based on the business requirements and technical specifications.
- This stage produces source code, executables, databases etc. for appropriate coding standards
- Development team performs the unit testing as and when each modules are developed.
Testing Phase
- This is the phase where the developed software is tested to make sure the software meets the business requirements.
- There are several types of testing conducted which are identified based on the scope of the project and nature of the requirements.
NOTE:Testing Phase of SDLC is the Test Execution phase of STLC (Software Testing Life Cycle). So, by the time testing phase begins, testing team will already be ready with the test cases to be executed to validate the system. This implies that testing activities starts well ahead in the software lifecycle and in parallel to the development activities.
Implementation Phase
- This is the phase where the completed product is installed in production environment and made available for the end users to use.
Maintenance Phase
- This phase begins once the software is released and the client starts using the software.
- 3 types of maintenance are typically carried out, they are,
i. Bug fixing: bugs arrived due to some untested scenarios.
ii. Upgrade: Upgrading the application to the newer versions of the software.
iii. Enhancement: Adding some new features into the existing software.
ii. Upgrade: Upgrading the application to the newer versions of the software.
iii. Enhancement: Adding some new features into the existing software.
No comments:
Post a Comment