chapter 8 Flashcards

1
Q

What is the role of programmers in software implementation?

A

Programmers are responsible for converting the design into language-specific code, requiring knowledge of programming languages, frameworks, and APIs.

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

What are some aspects of implementation that are language independent.

A
  • reuse
  • Configuration management
  • Host-target development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Why is reuse important in software implementation?

A

Reuse is crucial at various levels (abstraction, object, component, and system levels) to :

  • leverage existing functions and objects in programming language libraries,
  • and promote efficiency and consistency.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is configuration management in software implementation?

A

involves using version control and general-purpose IDEs to manage and control changes in the software.

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

What is host-target development in software implementation?

A

involves using simulators, to simulate the behavior of the target system during the development process.

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

What are the Implementation Methodologies?

A
  • Direct cutover
  • Pilot implementation
  • Parallel operation
  • Phased implementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the direct cutover implementation methodology?

A

involves turning off the old system and turning on the new system simultaneously, being the riskiest but least expensive approach.

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

What is pilot implementation in software development?

A

introduces the new system to a small group, minimizing the impact on the organization and allowing a fallback to the old system if needed.

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

What is parallel operation as an implementation methodology?

A

involves entering transactions in both the new and old systems simultaneously, providing a less risky approach with the ability to identify bugs and revert to the old system if necessary.

very expensive

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

How does phased implementation work in software development?

A

Involves gradually implementing new functions while parts of the old system are turned off, allowing a slow transition from the old system to the new one.

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

What is software reliability?

A

the likelihood that a system won’t fail under specific conditions.

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

How is software reliability measured?

A
  • uptime,
  • MTTF (mean time till failure),
  • MTTR (mean time to recovery),
  • crash data.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How common are bugs in software development?

A

Bugs are common, with industry estimates ranging from 10 to 50 bugs per 1000 lines of code.

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

_______ is A systematic attempt to reveal errors.

A

*testing

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

testing does not show absence of errors in software

A

t

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

_______ is an incorrect software behavior

A

error

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

How do you differentiate between faults and errors in software development?

A
  • Error is incorrect behavior (e.g., a message box saying “Welcome, null!”).
  • Fault is the underlying cause of the error, like a misconfigured account name field.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

List the Quality control techniques

A
  • fault avoidance
  • fault tolerance
  • fault detection
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

_______ Prevent errors before system is released.

A

fault avoidance

20
Q

What are methods of fault avoidance:

A

– reviews,
- inspections,
- walkthroughs

21
Q

rollbacks & redundancy are examples of _______ ?

A

fault tolerance

22
Q

debugging & testing are examples of ______ ?

A

fault detection

23
Q

What is the difference between testing and verification in software development?

A
  • Testing detects bugs by running code on selected inputs
  • Verification confirms the absence of bugs on all possible inputs.
24
Q

_______ Looks for errors in subsystems in isolation.

A

unit testing

25
Q

________ find errors when connecting subsystems

A

integration testing

26
Q

what are the 2 types of integration testing?

A

– bottom-up: integrate upward into double, triple, quadruple test

– top-down: test UI first, then add layers

27
Q

What is system testing

A
  • It tests entire system behavior as a whole, with respect to scenarios and requirements
28
Q

What are the Two rules of unit testing

A
  • Do it early and do it often
  • Be systematic
29
Q

What are the Four basic steps for a test?

A
  1. Choose input data
  2. Define the expected outcome
  3. Run on the input to get the actual outcome
  4. Compare the actual and expected outcomes
30
Q

What are the two key ideas when Choosing Input?

A

*Partition the input space
*Boundary values

31
Q

explain Boundary values as input choice?

A

– Picks inputs at the edges of the subdomains.
– Effective to find corner case bugs

32
Q

explain Partition the input space as input choice?

A

– Identifies subdomains with the same
behavior
– Picks one input from each subdomain

33
Q

_____ Explores alternate paths through the specification.

A

Black box testing

34
Q

______ Explores alternate paths through the implementation

A

White box testing

35
Q

what are the 3 Main White Box Testing Techniques?

A
  1. Statement Coverage
  2. Branch Coverage
  3. Path Coverage
36
Q

______ checks whether each and every line of the code is executed at least once.

A

Statement Coverage test

37
Q

explain Branch Coverage test?

A
  • In case of an “IF statement”, there will be
    two test conditions:
  • One to validate the true branch and,
  • Other to validate the false branch.
38
Q

______ tests all the paths of the program

A

Path Coverage Test

39
Q

explain black box testing in detail

A

Focus: Concentrates on the external behavior of the system.

Performed by: Carried out by testers.

Usage: Applied in System Testing or Acceptance Testing.

Time Consumption: Generally the least time-consuming.

Testing Approach: Emphasizes behavioral testing of the software.

Also Known As: Data-driven testing, functional testing, and closed box testing.

Algorithm Testing: Not typically considered for algorithm testing.

40
Q

explain white box testing in detail

A

Focus: Considers the internal functioning of the software.

Performed by: Carried out by software developers.

Usage: Employed in Unit Testing or Integration Testing.

Time Consumption: Generally the most time-consuming.

Testing Approach: Emphasizes logic testing of the software.

Also Known As: Clear box testing, code-based testing, structural testing, and transparent testing.

Algorithm Testing: Well suitable for algorithm testing.

41
Q

what are the pros and cons of black box testing?

A

Pros:
- Simulates real-world user scenarios.
- Testers don’t need knowledge of internal code.
- Ideal for system and acceptance testing.

Cons:
- Limited coverage of code internals.
- May miss certain edge cases.
- Less effective for algorithm testing.

42
Q

what are the pros and cons of White Box Testing?

A

Pros:
- Comprehensive coverage of internal logic.
- Effective for unit and integration testing.
- Suitable for algorithm testing.

Cons:
- Time-consuming, requires coding knowledge.
- May overlook real-world user scenarios.
- Developers’ bias may impact testing.

43
Q

give examples of Tools for testing.

A
  • JUnit
  • SoapUI
44
Q

explain JUnit?

A

JUnit is a popular Java testing framework that allows developers to write and run tests for their Java code. It provides annotations, assertions, and test runners for executing the tests.

45
Q

explain SoapUI?

A

SoapUI is a testing tool specifically designed for testing web services, including SOAP and REST APIs. It allows users to create, execute, and automate functional, security