Semaine 3 : Test Flashcards
What is testing?
Testing is the process of executing a program with intention of finding errors. Testing is static and dynamic analysis.
What is the definition of testing?
● Quality assurance activities performed by running code.
● All techniques that execute the software system and compare the observed behaviour with the expected behaviour.
● Testing is always dynamic quality assurance technique.
● Testers define test cases consisting of inputs and the expected outputs to systematically analyse all requirements.
What are software testing objectives?
● To identify and reveal as many errors as possible in the tested software.
● To bring the tested software, after correction of the identified errors and retesting, to an acceptable level of quality.
● To perform the required tests efficiently and effectively, within budgetary and scheduling limitations.
● To compile a record of software errors for use in error prevention (by corrective and preventive actions).
● Reduce the risk of failure
● Reduce the cost of testing
● Dijkstra: “Testing can only reveal the presence of errors, never their absence”
● Bug-free software is still a utopian aspiration!
What are testing activities?
● Identify an objective to be tested ○ A clear purpose must be associated with every test case ● Select inputs ● Compute the expected outcome ● Set up the execution environment of the program ● Execute the program ● Analyze the test result ○ pass, fail , and inconclusive
What is system integration testing?
● A software module, or component, is a self-contained element of a system.
● Modules have well-defined interfaces with other modules.
● Constructing a working system from the pieces is not a straightforward task, because of numerous interface errors.
● Integration testing is to assemble a reasonably stable system in a laboratory environment such that the integrated modules and components in the actual environment of the system.
● System integration testing is a systematic technique for assembling a software system while conducting tests to uncover errors associated with
interfacing.
What are the different types of system testes?
Basic, Functionnality, Robustness, Interoperability, Performance, Scalability, Stress, Load and Stability, Reliability, Regression, Documentation, Regulatory.
What are Reliability tests for?
Reliability tests are designed to measure the ability of the system to remain operational for long periods of time
What are Robustness tests for?
Robustness tests determine how well the system recovers from various input errors and other failure situations.
What are Interoperability tests?
Interoperability tests determine whether the system can interoperate with other third-party products.
What are performance tests?
Performance tests: measure the performance characteristics of the system, for example, throughput and response time, under various conditions.
What are Scalability tests?
Scalability tests: determine the scaling limits of the system in terms of user scaling, geographic scaling, and resource scaling.
What are Stress tests?
Stress tests: put a system under stress in order to determine the limitations of a system and, when it fails, to determine the manner in which the failure occurs.
What are load and stability tests?
Load and stability tests: provide evidence that the system remains stable for a long period of time under full load.
What are regression tests for?
They determine that the system remains stable as it cycles through the integration of other subsystems and through maintenance tasks.
What is Agile testing?
● Adapts to changes very fast
● Not plan-driven, but lives with the project
● Testing is done from the beginning of the project, not just in the end of it
● Emphasizes the team, humanity/human-centeredness and cooperation
● Tests iteratively piece by piece
● Customer is involved even in all testing phases
● Continuous integration
● Automation of testing at least in unit-testing
It is more important to find bugs than to write comprehensive documents.