Software Development (Practical) #1 Flashcards

(43 cards)

1
Q

§ OL — Software Development Basics (PDLC & Testing)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the Program Development Lifecycle (PDLC)?

A

A structured, systematic process used to develop software. It organises development into stages, ensuring each step is documented and understood. The lifecycle is continuous — programs require updates throughout their lifespan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Name the FIVE stages of the Program Development Lifecycle.

A
  1. Analysis
  2. Design
  3. Coding
  4. Testing
  5. Maintenance
    Each stage has a specific purpose and outputs documentation for the next stage.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the purpose of the Analysis stage?

A

To define the problem the program will solve and specify its requirements. This includes a feasibility study and fact-finding, and results in a requirements specification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the purpose of the Design stage?

A

To create a blueprint of how the program will fulfil the requirements. Outputs include structure charts, pseudocode, flowcharts, and identifier tables.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the purpose of the Testing stage?

A

To verify that the program works correctly under all specified conditions. Uses a test plan with different types of test data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the purpose of the Maintenance stage?

A

To ensure the program continues to work effectively after deployment. Corrects errors, adapts to new requirements, and improves performance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a syntax error? Give an example.

A

An error in the grammar of the programming language. Caught at compile/interpret time — the program cannot run until fixed.
Example: missing a colon, wrong keyword spelling, incorrect indentation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a logic error? Give an example.

A

An error in the program’s reasoning. The program runs without crashing but produces WRONG results. Hardest type to find.
Example: using + instead of *, or using < instead of <=.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a run-time error? Give an example.

A

An error that occurs DURING execution. The program compiled successfully but crashes or behaves unpredictably at runtime.
Example: dividing by zero, accessing an array index that doesn’t exist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Normal test data?

A

Valid data within the accepted range. The program should ACCEPT and process it correctly.
Example (range 0–100): 50 → accepted.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Abnormal test data?

A

Invalid data outside the accepted range. The program should REJECT it.
Example (range 0–100): -5 or 110 → rejected.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Extreme test data?

A

Data at the very edges of the accepted range. The program should still ACCEPT it.
Example (range 0–100): 0 or 100 → accepted.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is Boundary test data?

A

Data both at the accepted limit AND just beyond it. Tests the boundary from both sides.
Example (range 0–100): -1 (reject), 0 (accept), 100 (accept), 101 (reject).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a Dry Run?

A

A manual testing method where the programmer traces through pseudocode or code step by step, using a trace table to record the value of each variable at each step. No computer is needed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a trace table?

A

A table used during a dry run. Columns are variable names; rows are each step/iteration. The tester fills in how each variable changes as the code is ‘run’ mentally.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the THREE types of maintenance?

A
  1. Corrective — fixes bugs found during real-world use.
  2. Adaptive — modifies the program to meet new or changed requirements.
  3. Perfective — improves performance or adds new features without fixing errors.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

§ AS Only — Development Lifecycle Models

19
Q

Describe the Waterfall model of software development.

A

A linear, sequential model. Each stage is fully completed and formally signed off before the next begins. No overlap between stages. Customer involvement is low (mainly at start and end). Produces comprehensive documentation at each stage.

20
Q

State TWO benefits and TWO drawbacks of the Waterfall model.

A

Benefits:
1. Simple to manage — clear stage deliverables and sign-offs.
2. Good for projects where requirements are stable and well-understood.

Drawbacks:
1. Inflexible — changes in requirements are costly once a stage is signed off.
2. Working program only delivered very late in the lifecycle.

21
Q

Describe the Iterative model of software development.

A

A basic version of the program is built first, then expanded through repeated cycles (iterations) until complete. Each iteration goes through mini-versions of design, code, and test. High customer involvement — partial programs demonstrated after each cycle.

22
Q

State TWO benefits and TWO drawbacks of the Iterative model.

A

Benefits:
1. Early user feedback reduces costly surprises.
2. Easier to test and debug — smaller segments per iteration.

Drawbacks:
1. Requires a broad system definition upfront before iterations can be planned.
2. Planning-intensive; not suitable for short/simple projects.

23
Q

Describe Rapid Application Development (RAD).

A

Different parts of the program are developed IN PARALLEL by separate teams. Prototypes are used to gather continuous user feedback. Minimal initial planning — emphasis on quickly producing functional prototypes. Very high customer involvement throughout.

24
Q

State TWO benefits and TWO drawbacks of RAD.

A

Benefits:
1. Fast delivery — a functioning system is available early.
2. Very flexible — adjustments made at any point based on feedback.

Drawbacks:
1. System must be highly modular to allow parallel development.
2. Requires skilled, experienced developers.

25
Compare Waterfall vs Iterative in terms of customer involvement and flexibility.
Waterfall: LOW customer involvement; LOW flexibility (hard to change once a stage is signed off). Iterative: HIGH customer involvement (feedback after every cycle); HIGH flexibility (requirements can evolve between iterations).
26
§ AS Only — Program Design Tools
27
What is a Structure Chart and what does it show?
A visual design tool that shows the HIERARCHY of program modules and how they interact. Each box = a module. Lines = calls from parent to child. It also shows parameters passed (arrow+circle) and boolean flags (arrow+disc). Selection = diamond. Repetition = semi-circular arrow.
28
In a structure chart, how is 'Selection' represented?
A diamond shape above a module, indicating a decision/branching point — the program chooses between two or more sub-modules (like an IF/ELSE).
29
In a structure chart, how is 'Repetition' represented?
A semi-circular arrow above a module, indicating that module is called repeatedly in a loop (e.g., until a condition is met).
30
What is a Finite State Machine (FSM)?
A mathematical model of a system that can exist in exactly ONE of a fixed set of defined states at any time. It transitions from one state to another based on an external input. Used to model systems with distinct modes (e.g., door locks, traffic lights, vending machines).
31
Name the five components of a State-Transition Diagram.
1. States — labelled circles/ovals representing each possible state. 2. Initial state — shown with an arrow from a filled dot (●). 3. Transitions — arrows between states, triggered by input. 4. Events/Inputs — the labels on the transition arrows. 5. Final/stopped state — shown as a double circle.
32
What is a State-Transition Table?
A table that lists every combination of (current state, input) and the resulting next state. It is an alternative to the diagram for documenting FSM behaviour, particularly useful for exam questions and systematic verification.
33
Describe a simple FSM example: a door lock with code 2-5-9.
State 1: Locked, waiting for first digit. State 2: Received '2', waiting for second digit. State 3: Received '5', waiting for third digit. State 4: Unlocked (received '9'). Any incorrect digit at any state returns to State 1 (locked).
34
§ AS Only — Advanced Testing Methods
35
What is a Walkthrough test?
A formal dry run where the development team collectively reviews the code or pseudocode. One person reads through the logic while others check for errors. More structured than an informal dry run — uses predefined test cases.
36
What is White-Box testing?
Testing where the tester has FULL VISIBILITY of the internal code structure and logic. Every possible execution path through each module is tested (all branches, loops, conditions). Also called structural or glass-box testing. Done by developers.
37
What is Black-Box testing?
Testing where the tester has NO knowledge of the internal code. Only inputs and expected outputs are tested — the program is a 'black box'. Can be done by testers who didn't write the code. Tests the user-facing behaviour.
38
What is Integration testing?
Testing combinations of modules TOGETHER to ensure they interact correctly. Individual modules may pass their own tests but fail when combined due to interface or communication errors.
39
What is Stub testing?
Testing used when some modules are incomplete. A 'stub' is a dummy module that outputs a predetermined placeholder value, allowing other modules that depend on it to be tested without waiting for the real module.
40
What is Alpha testing?
In-house testing by the development team on a nearly complete version of the program. The environment is controlled, developers can immediately fix issues. Goal: find and fix bugs before external release.
41
What is Beta testing?
Testing conducted by a selected group of REAL END-USERS before the public release. Provides feedback from real-world usage. Issues found are reported back to the team and fixed before the full public launch.
42
What is Acceptance testing?
Testing performed by or on behalf of the CUSTOMER to confirm the program meets the agreed requirements. The customer formally accepts or rejects the software. If rejected, further development or negotiation follows.
43
What is a Test Strategy (defined in Analysis) and how does it differ from a Test Plan?
Test Strategy (Analysis stage): The high-level approach — which modules need testing, what types of tests, how integration will be verified. Test Plan (detailed): A specific list of every test case with: test data, expected result, actual result, and remedy (the fix applied when actual ≠ expected).