Send a link to your students to track their progress
59 Terms
1
New cards
What is the purpose of testing?
Testing is used to detect errors, bugs and defects by executing software and observing its behaviour
2
New cards
What does testing not show?
it does not show the absence of errors.
3
New cards
What does testing do?
Testing validates and verifies correctness, consistence and completeness to ensure the software is fit for purpose and meets expectations
4
New cards
What is the focus of testing?
The modern focus of testing is preventative, ensuring it is completed early to ensure quality and save time and money in the long run.
5
New cards
What are the 5 steps in the testing process?
planning Designing Setting up Executing Recording and reporting
6
New cards
What needs to be considered in the planning portion of the testing process?
-What needs to be tested -Whos involved -When will it take place and how long will it last -How is it preformed -What recourses are needed
7
New cards
What is involved in the design portion of the testing process?
Someone will need to design and plan the tests or test cases and predict the results of each test
8
New cards
What is involved in the setting up portion of the testing process?
The testing environment needs to be prepared meaning that hardware and software needs to be set up along with test data and databases being created
9
New cards
What is involved in the execution portion of the testing process?
someone needs to run the tests
10
New cards
What is involved in the recording and reporting portion of the testing process?
the testers need to store the results in a common format and in a specified location as various stakeholders in the project will be interested in the results of these tests.
11
New cards
In the waterfall model, when was testing implemented?
Testing was not implemented until the end of the project.
12
New cards
What was a consequence of testing at the end of the waterfall model?
Errors were not discovered until very late in the development process, leading to increased costs and time for corrections.
13
New cards
What was suggested to improve the testing process in software development?
Testing should take place earlier in the process.
14
New cards
What model was developed to allow earlier testing in the software development process?
The 'V-model'.
15
New cards
What does the 'V-model' show?
Different levels of testing could start as soon as each project phase was complete.
16
New cards
Draw the V-model
17
New cards
Who creates the test plan?
The analyst or another person with a similar role, who understands the analysis and design of the system
18
New cards
What 6 things need to be considered in a test plan?
Items Software tools Approach Test data Environment Schedule
19
New cards
Name the 8 types of testing?
Acceptance Alpha Beta Black box integration program system white box
20
New cards
What is program testing?
A small item e.g., a class or menu screen is being tested
21
New cards
What is the purpose of program testing?
-Test each component independently to identify errors easily. -Focus on internal behavior of each class/unit, -Verify that the code performs all required functions correctly as specified. -Reduce hard-to-detect and fix defects early.
22
New cards
How is program testing performed?
When testing a class alone, testers may need to create additional code (test harness) to simulate missing parts of the system. The test harness can create instances, set attributes, provide inputs, and capture outputs. Use both black box testing and white box testing
23
New cards
when is program testing preformed?
In XP, tests are written before the code, guided by the design spec (test-driven development).
24
New cards
Who preforms program testing?
-Writing and reviewing unit tests requires programming experience. -Typically, programmers perform unit tests themselves while coding. -Ideally, an independent tester should do this, but it rarely happens in practice. -Programmers work in pairs to check each other's code.
25
New cards
What is tested in integration testing?
Several associated, interdependent modules or classes are tested together in a group or subsystem.
26
New cards
What is the purpose of integration testing?
-To ensure that code units or classes work together as intended and error-free. -Focus on the flow of data, messages, and control between classes or modules. -Verify that the code matches the high-level design specification or architecture.
27
New cards
How is integration testing carried out?
-Create temporary code to replace missing parts of the system. -Focus on black box testing to check interfaces and message/data exchange between modules/classes. -Less focus on internal code details at this stage.
28
New cards
When is integration testing carried out?
-Test cases are created early from design specifications using sequence and class diagrams
29
New cards
Who carries out integration testing?
Responsibility for integration tests depends on integration level: High-level integration (system-wide): the system analyst may design/run tests. Low-level integration (few classes): the programmer may handle tests.
30
New cards
Why is integration testing important for object orientated languages?
classes often depend on each other.
31
New cards
What is the best practice for integration testing?
Best practice: perform integration tests incrementally, integrating classes as they are unit tested, rather than waiting until the end.
32
New cards
What is being tested during system testing?
A whole complete software system (all subsystems are integrated together) including documentation.
33
New cards
What is the purpose of system testing?
-Check if the software meets all functional requirements -Ensure it also meets non-functional requirements as detailed in the system requirements specification. -Determine if the system was developed correctly.
34
New cards
How is system testing preformed?
-Treat the whole system as a black box—do not analyze internal code. -Functional tests focus on input/output behavior. -Non-functional tests cover performance, reliability, usability, security, and recovery. -Tests should run in an environment that simulates the real-world production system. -No extra code is needed since the entire system is complete.
35
New cards
When is system testing preformed?
Test cases are created early as soon as the system requirements specification is available.
36
New cards
Who preforms system testing?
-Tests are run by team members who did not write the code, e.g the analyst or independent testers. -Execute tests after integration testing is completed and before acceptance testing begins.
37
New cards
What is tested during acceptance testing?
A whole, complete system
38
New cards
What is the purpose of acceptance testing?
-Focus on the customer/user perspective: Is the system complete, accepted, and approved for use? -Confirm the system meets the customer's needs. -Check if it is fit for operational use. -Verify that it meets the contract or Terms of Reference criteria.
39
New cards
How is acceptance testing carried out?
-Acceptance testing is like system testing but designed and run by users or customers, with developers assisting if needed. -Conducted in either the developer's simulated environment or the customer's real work environment. -Uses black box testing—users won't see the source code. -Users are encouraged to test all functionality, including unexpected use cases with valid/invalid data. -Alpha testing -Beta testing
40
New cards
What is Alpha testing?
-Done by test engineers or selected user groups. -Conducted in a controlled environment at the developer's site with access to developers and test tools. -Test data may be created by the developers.
41
New cards
What is beta testing?
-Done by general users in real-world environments. -Conducted at the user's site using their own hardware, software, and data. -Users may download software, with no selection process.
42
New cards
When is acceptance carried out?
Design test cases at the start of the project, based on business requirements.
43
New cards
Who carries out acceptance testing?
-Design test cases in collaboration with the customer. -Users execute tests after system testing and before installation/deployment. -Different user groups may participate in testing.
44
New cards
What level is white box testing?
Mainly at unit test level using programmers who have knowledge of internal logic.
45
New cards
Who is responsible for white box testing?
Developer/Programmer
46
New cards
What is the purpose of white box testing?
Purpose Analysis of algorithms, logic and internal workings.
47
New cards
What required information is needed for white box testing?
Access to code and algorithms.
48
New cards
How is white box testing carried out?
-White box testing ensures all execution paths in the code are covered. Ensure: -Every statement/path is executed at least once. -All branches in conditional statements (e.g., IF) are tested. -Loops are tested: skipped, executed once, and multiple times.
49
New cards
White box testing advantages?
-Can check every line of code. -Easy to know which input values should be used to test the application. -Helps to determine how the code should be fixed/debugged. -Can tidy up the code and optimise it.
50
New cards
White box testing disadvantages?
-Testers need programming expertise and their time is more expensive. -In large systems it is difficult to test every line of code and a defect may be missed.
51
New cards
What level is black box testing?
-Whole system level (Acceptance and System Testing). -Subsystem level (Integration Testing). -Single unit level (Unit Testing).
52
New cards
Who is responsible for black box testing?
Depends on Level: e.g. Developer (Unit Test Level), Analyst (System Test Level), and User (Acceptance Test Level).
53
New cards
What is the purpose of black box testing?
Input/Output behaviour tested. What is inside the box is not a concern.
54
New cards
What information is required for back box testing?
Base tests on the functional requirements/Use Cases at System Test level or the detailed design specification at unit testing level.
55
New cards
How is black box testing carried out?
-Testers provide inputs and inspect outputs to check correctness and appropriate error handling. -Inputs include both those expected to succeed and fail. -Exhaustive testing is usually impractical; selected inputs are used instead. -A common approach is Equivalence Partitioning: -Use Boundary Value Analysis to test values at and around the boundaries where errors often occur: Lower boundary: 0, 1, 2. Upper boundary: 11, 12, 13.
56
New cards
What is Exhaustive testing
trying all possible inputs
57
New cards
What is Equivalence Partitioning?
Divide inputs into valid and invalid ranges. Example: For month input (1-12), choose inputs from valid (e.g., 4), invalid below range (e.g., -3), and invalid above range (e.g., 17).
58
New cards
black box testing advantages
-Tester may not need any programmer knowledge and testing may be performed by independent testers. -As it tests the behaviour of the system it highlights any missing functionality. -Test cases can be designed as soon as the functional specifications are complete.
59
New cards
black box testing disadvantages
-Wide range of possible inputs; impractical to do exhaustive testing. -Impossible to know if every single line of code is executed as inside the 'box' is not visible. If it has not been executed it is not tested!