SWE Chapter 8 - Software Testing
what is regression testing?
Regression testing involves repeating previously run tests to ensure that known failures of prior versions do not appear in new versions of the software. it is testing the system to check that changes have not broken previously working code
the objective of interface testing is to detect faults what is the reason for these faults?
1. Interface errors 2. invalid assumption about interfaces
beta testing
A release of the software is made available to users to allow them to experiment and to raise problems that they discover with the system developers.
release testing is a form of system testing(True/False)
True
Alpha testing
Users of the software work with the development team to test the software at the developer's site.
are we building the right Product? Is an example of (Validation/Verification)
Validation
Are we building the product right? Is an example of(Validation/Verification)
Verification
what is the cause of interface misunderstanding?
a calling component embeds assumptions about the behavior of the called component which is incorrect
what should we use in order to test check the problems?
abnormal inputs to check that there is no crashing
in custom software there should be ..... one test for every requirement 1. at least 2. at most
at least
why is it difficult to design object classes tests?
because the information to be tested is not localized
inspection and testing should be used during the ..... process? 1. validation 2. verification 3. both 4. none
both
what is the cause of timing errors?
called and calling components operate at different speeds and out-of-date information is accessed
what is the cause of interface misuse?
calling a component and making an error in its use (e.g. parameters in the wrong order)
exhaustive system testing is known as 1. use case testing 2. policies testing 3. complete testing 4. system testing
complete testing
the stage where the system is tested to discover bugs
development testing
defect test
discover program defects before it is put into use
software testing is also called
dynamic verification
what is the function of procedural interface? 1. request services 2. share memory 3. pass data 4. encapsulate procedures to be called
encapsulate procedures to be called
validation test
ensuring that the program does what it is intended to do
testing is a part of a ........ verification and validation process 1. specific 2. general 3. both 4. non of the above
general
reflecting on previous experience with specific kinds of errors
guideline based testing
parameters in the wrong order is an example of? 1. interface Misunderstanding 2. timing errors 3. interface misuse
interface misuse
what is the function of a sequence diagram in use case testing?
it documents interactions and components being tested
what is dynamic verification concerned with?
it is concerned with exercising and observing product behavior while the system is executed with its test data
what is static verification concerned with?
it is concerned with the analysis of the static system representation to discover problems - it may be supplemented by tool-based document and code analysis
what does black-box testing process mean?
it means that tests are only derived from system specification
what is the service that parameter interface provides?
it passes data from one procedure to another
what is the service that shared memory provides?
it shares a block of memories from one sub-system to another sub-system
what does reflection on normal operation show?
it shows that the components works as expected
what is the goal of release testing?
it's goal is to convince the supplier that the system is good enough for use and delivers specified functionality, reliability, dependability
testing composite functions focuses on showing that the component interface behaves according to .......
its specification
identifying a group of inputs that have common characteristics and choosing from within these groups
partition testing
performance testing( Stress testing)
planning a series of tests where the load is steadily increased until the system performance becomes unacceptable
the stage where a separate testing team test a complete version of the system before it is released to users.
release testing
what is the function of Message passing interface? 1. request services 2. share memory 3. pass data 4. encapsulate procedures to be called
request services from other sub systems
Component Testing
several individual units are integrated to create a composite component.
software inspections are also called
static verification
......... testing should focus on testing components interactions 1. system testing 2. unit testing 3. component testing 4. validation testing
system testing
unit testing
test individual units or object classes of code for a system
Verification
the software should conform to its specification
User Testing
the user's working environment has a major effect on reliability, performance, usability, robustness
what are composite components?
they are components that are made up of several interacting objects
what are testing policies?
they define the required system test coverage
what is the primary goal of release testing?
to convince the supplier that the system is good enough for use
........ testing should focus on the functionality of objects or methods 1. system testing 2. unit testing 3. defect testing 4. component testing 5. validation testing
unit testing
the stage where users of the system test the system in their own environment
user testing
what are the interface testing guidelines?
- design : * test parameters to a called procedure are at the extreme ends of their ranges * tests that cause the component to fail * stress testing in message passing systems - test pointer parameters with null pointers - in shared memory systems, vary the order in which components are activated
what are the possible interface errors?
- interface misuse - interface misunderstanding - timing errors
what are the broader quality attributes that software inspection considers?
- searching for program defects - Maintainability - portability - compliance with standards
what are the 2 types of regression testing?
1. Automated testing > simple and straightforward 2. manual testing > expensive
types of user testing
1. alpha 2.beta 3. Acceptance
what are the general testing guidelines?
1. choose inputs that force the system to generate all error messages 2. design inputs that cause input buffer to overflow 3. repeat the same input or series of inputs numerous times 4. force invalid outputs to be generated 5. force computation results to be too large or too small
system testing checks that ..
1. components are compatible 2. interact correctly 3. transfer right data at right time across their interfaces
validation test is made upon 2 types of software which are?
1. custom software 2. generic software
what are the stages of testing?
1. development testing 2. release testing 3. user testing
units may be ..
1. individual functions or methods 2. object classes with several attributes 3. composite components with defined interfaces used to access functionality
what are the types of interface?
1. parameter 2. message passing 3. procedural 4. shared memory
what are the 2 types of testing strategies?
1. partition testing 2. guideline-based testing
release testing involves testing 2 types of the properties of system which are?
1. performance 2. reliability
what are the 2 types of unit test case?
1. reflection on normal operation(reflection) 2. testing experience of where common problems arise(experience)
what are inspections applied on?
1. requirement specification 2. software architecture 3. UML design models 4. data schemas 5. program generally, they me applied to any representation of the system
what are the Advantages of software inspections?
1. since inspection is static, interaction between errors are not concerning. therefore, errors are easier to be detected since they are not masked 2. incomplete versions of a system can be inspected without any additional cost 3. inspections considers broader quality attributes
what is testing applied on?
1. system prototype 2. program
state the testing guidelines >
1. test with zero length sequence 2. different size sequences in different test 3. single value sequence 4. tests with first, middle and last elements of a sequence are accessed
what does complete test coverage involve?
1. testing all operations associated with an object 2. setting checking all object attributes 3. exercising the object in all possible states
development testing is divided into 3 types
1. unit testing 2. component testing 3. system testing
what are the goals of program testing?
1. validation test > to demonstrate that the software meets the requirements 2. defect test > to discover situations in which the behavior is incorrect
Acceptance Testing
Customers test a system to decide whether or not it is ready to be accepted from the system developers and deployed in the customer environment. Primarily for custom systems.
In a automated testing process, regression testing is expensive but, with manual testing, it is simple and straightforward(True/False)
False
software inspection is a non-effective technique for discovering program errors(True/False)
False
system inspections do not require involvement of people in discovering anomalies(True/False)
False
when executing a program during a test, real data is used(True/False)
False -> Artificial data
release testing is a defect testing process(True/False)
False -> Black-Box
in partition testing, test cases should be chosen randomly(True/False)
False -> chosen for each partition
inspection and testing are incompatible(True/False)
False -> complementary
in component test, one can access functionality through undefined component interface(True/False)
False -> defined
in partition testing, I/O results fall into same classes, where all members of a class are related(True/False)
False -> fall into different classes
in custom software there should be tests for all of the system features and the combinations for these features(True/False)
False -> generic software
inheritance makes it easier in designing object classes tests(True/False)
False -> more difficult
use case testing is a basis for component testing(True/False)
False -> system testing
component testing is a defect testing process(True/False)
False -> unit testing
system testing
Testing the entire system as one entity to ensure that it is working properly
inspection does not require the execution of a system and maybe used before implementation(True/False)
True
Inspection cannot check conformance with non-functional requirements(True/False)
True
Inspections can check conformance with a specification but not conformance with the customer's real requirements(True/False)
True
System testing tests the emergent behavior of a system(True/False)
True
component testing should focus on testing components interfaces(True/False)
True
each class represents an equivalent partition/domain, where the program behaves in a equivalent way for each class member(True/False)
True
exhaustive system testing is impossible, therefore testing policies may be developed(True/False)
True