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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly