- What is SDLC?
Software Development Lifecycle describes the types of activities that are performed in different phases/stages of a software development project.
There are six phases:
- Planning – This is where project goals and high level project plans are established. Feasibility Analysis are often carried out along with risk analysis to identify any potential project risks which will prevent successful completion of the project.
- Defining – This is where the client’s business requirements are analysed and documented. This document contains all the intended functionalities that the new system that needs to do to solve the client’s business problems in the form of process diagrams use cases. This document needs to be approved by the client.
- Designing – This is where Functional Specification Document (FSD) is created and reviewed by all the important stakeholders of the project. Based on the document created in Defining phase, FSD describes the system’s functionalities and its interactions with other systems, if any.
- Building/Development – This is where the actual development of the system takes place.
- Testing – This is where testing activities take place to verify and validate the newly developed system.
- Deployment & Maintenance – This is where the system is released to the client. The client will start using the system and report any bugs found which need to be fixed.
- What is STLC/Testing Process?
Software Testing Life Cycle is a set of activities that are carried out to ensure that the quality software is delivered.
There are 6 activities in STLC:
- Requirement Analysis -This is where the analysis of the requirement specification documents are done to determine what feature(s) of the system that needs to be tested. If there are any requirements which are unclear or wrong, QA team must follow up with various stakeholders to understand better or correct those requirements.
- Test Planning – This is where typically a test manager determines a test strategy. It includes things such as testing effort estimation, resource allocation and testing tools.
- Test Designing – This is where test cases are developed and any necessary test data to support test cases are identified.
- Environment Setup – This is where the testing environment is created and any necessary data that was identified during the Designing stage are set up.
- Test Execution – This is where the developed test cases are actually tested. Any failed test cases are logged into the defect management system. Any defects that are fixed by the developers are also retested during this stage.
- Test Closure – This is where the testing team will meet and perform retrospective. This involves evaluating what went well, and what went not so well as well as identifying any process improvements.
- What are different environments in software development team? (local environment, test environment, production environment)
- Local Development Environment – This is typically a developer’s machine where the developer can make changes, build and test them without impacting the testing environment.
- Test Environment – This is where the QA team will run the test cases to test the changes made by developers. This environment is built to mimic the client’s production environment to identify any possible defects related to the environment.
- Production Environment – This is the client’s (end user) environment where they will be testing the system/software that was deployed.