SDLC / STLC Flashcards
1
Q
What is Software Development Life Cycle?
A
- process used by developers to design, develop, and test high-quality software.
- aims to produce software that meets customer expectations, reaches completion within times and cost estimates, and is efficient and fault-free in operation.
- 6 distinct phases:
Planning, Analysis, Design, Implementation, Testing & Integration, Maintenance
2
Q
SDLC Phases
A
- Planning - plan the entire project
- Analysis – understand requirements to map software onto that set of requirements
- Design – design a software solution to meet the requirements
- Implementation– build the software
- Testing and Integration – install into target environment and test
- Maintenance – adapt software to changing requirements and environment
3
Q
Waterfall Model
A
- first model of the software lifecycle
- Requirements > Analysis & Design > Implementation > Testing > Maintenance
- Must start with planning phase and ends with the maintenance phase
- No overlap: cannot move to the next phase until the current phase is complete.
- Forward direction only: no revisiting previous phases to fix problems.
- Achilles heel: rigidity and inability to address issues discovered in later phases.
- Results: potential for unresolved issues to cause project failure.
4
Q
Iterative Model
A
- Requirements > Design > Build > Test
- allow for revisiting and refining parts of the project through repeated cycles.
- project can be divided into subprojects with each focusing on specific parts or levels of the architecture.
- supports gradual development, starting from a high-level architecture to more detailed components.
- It enables addressing and fixing issues as they arise during testing of specific features or segments.
- restrictive for requiring a full cycle completion to address problems
- Recognized design issues during implementation could not be immediately fixed but required a new cycle, highlighting the model’s rigidity for modern development needs.
4
Q
Agile methods
A
- Respond to change quickly
- does not require completing one phase before moving to the next
- promote continuous work for the entire team leading to higher productivity and shorter delivery times.
- accommodate changes smoothly, even if parts of the software need to be re-implemented
-Phases can happen simultaneously- Design can start once some requirements are finalized
- Implementation can start once some design is finished
- Test design can start once design is complete
- Testing can start as soon as some coding is done
5
Q
Testing in the SDLC
A
You can test
During requirements – test plan
During design – unit test design
During implementation – unit test implementation
During testing
During Delivery – acceptance tests
During maintenance – regression testing and testing new features
6
Q
Incremental Development
A
- technique that builds software in pieces
- Other parts are constructed and added into the core
- Testing is done as new components are built and integrated into the whole
7
Q
Continuous Integration
A
- practice that enables developers to integrate their code changes into a central repository frequently.
- Developers:
- Check it out to add features or fix bugs
- Test it to make sure it is bug-free
- Push it to the repository
-The goal is to make sure that the code in the repository is bug-free
- CI flow ensures that the software being developed is robust, that bugs are caught early, and that the product remains in a state that is always ready for deployment. It emphasizes the importance of testing in maintaining software quality and efficiency in the development lifecycle.
8
Q
Test Driven Development
A
- writes the tests first and then the code to be tested
- test team usually gets together with the developers and
-agrees on functions or classes and what they should do - advantage of test driven development is that there are no surprises for the
developers - can be used as part of continuous integration
9
Q
The Software Testing Life Cycle
A
- series of steps to create and execute software tests
- Benefits of using the STLC :
- provides a guide for the testing process, increasing efficiency and consistency,
- clearly defines the expectations of each part of the project,
- provide time constraints on the testing,
- Ensures that software meets requirements before more software is developed,
- Ensures that all project requirements are met.
10
Q
STLC Phases
A
- Requirement Analysis > Test Planning > Test Case Development > Test Environment Setup > Test Execution > Test Cycle Closure
- Requirements Analysis – requirements are examined to identify their testable aspects
- Entry: A set of requirements and acceptance criteria
- Exit: Requirements traceability matrix and an automation feasibility report
- Test Planning - produces the test plan document
- Entry: the requirements analysis and requirements test matrix,
- Exit: an approved test plan.
- Test Case Development - the actual test cases are created
- Entry: an approved test plan.
- Exit: approved test cases, test data, and automation scripts
- Test Environment Setup – the test environment is set up
- Entry: system design and project architecture.
- Exit: a functional test environment.
- Test Execution – tests are deployed to the testing environment and executed
- Entry: all of the exit criteria from the previous steps.
- Exit: the tests have been performed and test reports generated
- Test Cycle Closure - results in a report which summarizes the results of the tests
- Entry: test results and reports.
- Exit: test closure report
11
Q
A