chapter 8 Flashcards
What is the role of programmers in software implementation?
Programmers are responsible for converting the design into language-specific code, requiring knowledge of programming languages, frameworks, and APIs.
What are some aspects of implementation that are language independent.
- reuse
- Configuration management
- Host-target development
Why is reuse important in software implementation?
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.
What is configuration management in software implementation?
involves using version control and general-purpose IDEs to manage and control changes in the software.
What is host-target development in software implementation?
involves using simulators, to simulate the behavior of the target system during the development process.
What are the Implementation Methodologies?
- Direct cutover
- Pilot implementation
- Parallel operation
- Phased implementation
What is the direct cutover implementation methodology?
involves turning off the old system and turning on the new system simultaneously, being the riskiest but least expensive approach.
What is pilot implementation in software development?
introduces the new system to a small group, minimizing the impact on the organization and allowing a fallback to the old system if needed.
What is parallel operation as an implementation methodology?
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 does phased implementation work in software development?
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.
What is software reliability?
the likelihood that a system won’t fail under specific conditions.
How is software reliability measured?
- uptime,
- MTTF (mean time till failure),
- MTTR (mean time to recovery),
- crash data.
How common are bugs in software development?
Bugs are common, with industry estimates ranging from 10 to 50 bugs per 1000 lines of code.
_______ is A systematic attempt to reveal errors.
*testing
testing does not show absence of errors in software
t
_______ is an incorrect software behavior
error
How do you differentiate between faults and errors in software development?
- 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.
List the Quality control techniques
- fault avoidance
- fault tolerance
- fault detection
_______ Prevent errors before system is released.
fault avoidance
What are methods of fault avoidance:
– reviews,
- inspections,
- walkthroughs
rollbacks & redundancy are examples of _______ ?
fault tolerance
debugging & testing are examples of ______ ?
fault detection
What is the difference between testing and verification in software development?
- Testing detects bugs by running code on selected inputs
- Verification confirms the absence of bugs on all possible inputs.
_______ Looks for errors in subsystems in isolation.
unit testing
________ find errors when connecting subsystems
integration testing
what are the 2 types of integration testing?
– bottom-up: integrate upward into double, triple, quadruple test
– top-down: test UI first, then add layers
What is system testing
- It tests entire system behavior as a whole, with respect to scenarios and requirements
What are the Two rules of unit testing
- Do it early and do it often
- Be systematic
What are the Four basic steps for a test?
- Choose input data
- Define the expected outcome
- Run on the input to get the actual outcome
- Compare the actual and expected outcomes
What are the two key ideas when Choosing Input?
*Partition the input space
*Boundary values
explain Boundary values as input choice?
– Picks inputs at the edges of the subdomains.
– Effective to find corner case bugs
explain Partition the input space as input choice?
– Identifies subdomains with the same
behavior
– Picks one input from each subdomain
_____ Explores alternate paths through the specification.
Black box testing
______ Explores alternate paths through the implementation
White box testing
what are the 3 Main White Box Testing Techniques?
- Statement Coverage
- Branch Coverage
- Path Coverage
______ checks whether each and every line of the code is executed at least once.
Statement Coverage test
explain Branch Coverage test?
- 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.
______ tests all the paths of the program
Path Coverage Test
explain black box testing in detail
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.
explain white box testing in detail
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.
what are the pros and cons of black box testing?
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.
what are the pros and cons of White Box Testing?
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.
give examples of Tools for testing.
- JUnit
- SoapUI
explain JUnit?
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.
explain SoapUI?
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