General Questions Flashcards
- What is software?
o Collection of computer programs, procedure, rules, associated documentation and data
o Describe various views of a system for various stakeholder
- Whom is it developed for?
o General – general market to be sold to multiple customers
o Customized – single customer according to their specifications
- Commonly accepted challenges in large software systems
o Complexity – software represents knowledge
o Non-functional requirements – work and documentation distribution
o Team development – work and documentation distribution
o Long-lived – reusable documentation
o Lay-users – they are not CS
- Goal Software Testing
o Increase quality of the software by o Match requirements o Few Faults o Reliable o Usable
- Role of Thumb cost of defect
o Specification 1x
o Implementation 10x
o Test 100x
o Production 1.000x
- Test requirements
o Specific things that must be satisfied or covered during testing
o Every statement might be a test requirement and must cover every functional requirement
- Test criterion
o Collection of rules and Processes that define test requirements over every statement and cover every functional requirement
- Validation
o Process of evaluating software at the end of software development to ensure compliance with intended usage
- Verification
o The process of determining whether the products of a given phase of the software development process fulfil the requirements established during the previous phase
- What is software testing
o Process of executing a software system to determine whether it matches its specification and executes in its intended environment
- Types of Testing
o Acceptance testing
Fulfil users and customers expectations
o Reliability testing
Tests reflect frequency of user input and reliability estimation
o Usability testing
Checks usability point of view
o Defect testing
Tests designed to discover system defects
o Compatibility testing
Application works with different configurated systems
o Performance testing
Evaluate and understand application scalability
o Stress testing
Test system beyond maximum designed load
- Testing levels
o Component (unit) testing
Testing individual program components
o Integration testing
Testing groups of components integrated to create a system or subsystem
o System testing
Testing the entire software in its expected environment
- Approaches to integration testing
o Top-Down testing
Start with high level system and replace individual components by stubs
o Bottom-up testing
Integrate individual components in levels until complete system is created
- Software fault:
o A static defect in the software
- Software error:
o An incorrect internal state that is the manifestation of some fault
- Software failure:
o External, incorrect behaviour with respect to the requirements or other description of the expected behaviour
- Fault and Failure Model
o RIPR – conditions necessary for failure to be observed
o Reaches:
Location or locations in the program
o Infects
The state must be incorrect
o Propagates
Infected state must couse some output or final state to be incorrect
o Reveals
Must observe the part of the incorrect portion of the program state
- Software Observability
o How easy it is to observe the behaviour of a program in terms of its outputs, effect and other hardware and software components
- Software Controllability
o How easy it is to provide a program with the needed inputs, in terms of values, operations and behaviours
- Types of Test Activities
o Test Design (Criteria based and Human based)
o Test Automation
o Test execution
o Test evaluation
- Test activity 1A)
o Test Design – Criteria Based
o Design test values to satisfy coverage criteria or other goal
o Knowledge of discrete maths, programming and testing
- Test activity 1B)
o Test Design – Human Based
o Design test values based on domain knowledge of the program and human knowledge of testing
- Test activity 2
o Test Automation
o Embed test values into executable scripts
- Test activity 3
o Test execution
o Run tests on the software and record the results
- Test activity 4
o Test evaluation
o Evaluate results of testing, report to developers
- Other test activities
o Test management: set policies, organize team, interface with development
o Test maintenance: save test for reuse as software evolbes
o Test documentation: keep documentation, ensure traceability
- Coloured Box testing
o Black box testing – derive tests from external description of the software, including specifications, requirements and design
o White Box testing – derive tests from the source code internals of the software, specifically including branches, individual conditions and statements
o Model based testing – derive tests from a model of the software (UML)
- Advantages of coverage criteria
o Search for input space
o Minimize overlap in the tests
o Maximize the bang for the buck
o Provide traceability from software artefacts to tests