Functional System Testing
-
Upload
pranavd2008 -
Category
Documents
-
view
232 -
download
0
Transcript of Functional System Testing
-
7/29/2019 Functional System Testing
1/25
Functional System Testing
Written by
Aishwarya Bisht
-
7/29/2019 Functional System Testing
2/25
Black Box Testing2
Outline
Goal of testing
Test cases, test suites and test data
What is functional system testing?
Coverage
Functional testing techniques:
Functional analysis
Equivalence partitioning
Boundary value analysis
-
7/29/2019 Functional System Testing
3/25
Black Box Testing3
The goal of software testing
The process of uncovering evidence of defects insoftware systems
Does not include efforts associated with tracking downbugs and fixing them
No amount of testing will improve the quality of acomputer program
The more testing we do of a system, the moreconvinced we might be of its correctness
Testing cannot in general prove a system works 100%correctly
-
7/29/2019 Functional System Testing
4/25
Black Box Testing4
Test cases
The basic component of testing is a Test Case
In its most general form: (inputs, expected-result)
inputs include system state, user commands and datavalues to be processed
expected resultincludes visible/audible interface
changes or changes in the system state
Test cases are organized into Test Suites functionality, security, performance,
-
7/29/2019 Functional System Testing
5/25
Black Box Testing5
Test case execution
A running of the software (under test) that
provides the inputs specified in the test case
and observing the results and comparingthem to those specified by the test case
If the actual result varies from the expected
result, then a failure has been detected
-
7/29/2019 Functional System Testing
6/25
Black Box Testing6
Test data
An effective test strategy requires careful acquisition andpreparation of test data prior to testing
Testing can suffer if test data is poor
Test data concerns: Depth: quantity and size of data
Breadth: variance of data values and data types
Scope: completeness, relevance and accuracy of data
Result of a query should be valid for the specific purpose of the
query, and not due to a missing or inappropriate value Conditions: data should reflect specific conditions in the domain
Data that would otherwise arrive after performing specific operationsover time
Test data and test results are expensive to construct
-
7/29/2019 Functional System Testing
7/25
Black Box Testing7
Example: Test data for TVRS
Name:test1.db
Description:Violation records designed for validating violation lookup
Violation IDOffenders first name
Offenders last name
Issuing policeman ID
243567 Rachel Josef 8700342
237812 Dan Levi 6386541
264683 Dan Porat 1346329
255245 Dina Josef 8245731
000345 longFirstN longLastN 8700342
-
7/29/2019 Functional System Testing
8/25
Black Box Testing8
Specification Vs. Implementation
The basic approaches to testing software are based on its
specification and implementation
White box testingtest cases and data are constructed
based on the code that implements the software
Quality and correctness of computations is validated
Will not be further discussed in this tutorial
Black box testingtest cases and data are constructed
based solely on the softwares specification
-
7/29/2019 Functional System Testing
9/25
Black Box Testing9
Functional System Testing
Testing of a completed application to determine
that it provides all of the behaviors required of it
Testing of completed increments that provide somedegree of end-user functionality
Search for defects that are variances between the
actual operation of the system and the
requirements for the system System is treated as a black box
-
7/29/2019 Functional System Testing
10/25
Black Box Testing10
How much testing is adequate?
Completely validating IEEE 754 floating-point division requires 264 test-cases!
float divide(float x, float y)
From practical and economic perspectives,exhaustive testing is usually not possible
Which software pieces should we test?
Which test cases should we choose?
-
7/29/2019 Functional System Testing
11/25
Black Box Testing11
Coverage
Coverage is a measure of how completely a test
suite exercises the capabilities of a piece of
software Each line of code should be executed at least once
One test case should be constructed from each
specified requirement
It is necessary to use testing techniques thatnarrow down the number of test cases allowing the
broadest testing coverage with the least effort
-
7/29/2019 Functional System Testing
12/25
Black Box Testing12
Technique: Functional Analysis
Analyze the expected behavior of the system
according to its functional specification
Generate a test procedure for each of the possibleusage scenarios
Corresponds to use case scenarios
Analyze how a change in one part of the system affects
other parts
Grand tour test cases: the result of one test case
produces the data that is the input to the next test case
-
7/29/2019 Functional System Testing
13/25
Black Box Testing13
Example: Functional Analysis I
Use Case: Remove Traffic Violation
1. Supervisor calls for deletion of the chosen Traffic Violation
2. TVRS prompts Supervisor for confirmation
3. Supervisor confirms
4. TVRS requests OffendersDB to delete the Traffic Violation
from the offenders record
5. OffendersDB approves that the Traffic Violation has beendeleted
6. TVRS allows Supervisor to look up a new Traffic Violation as
described in the Lookup Traffic Violation UC
-
7/29/2019 Functional System Testing
14/25
Black Box Testing14
Example: Functional Analysis IITest case ID: 134543
Pre-conditions: 1. TVRS initialized with test1.db database
2. Violation 243567 displayed in the Lookup Violation dialog
Related use cases: Lookup Traffic Violation, Remove Traffic Violation
Expected resultActionConfirmation dialog is displayedPress Delete button
Lookup Violation dialog is displayedPress the Yes button
A message dialog stating that violation
243567 is not stored in TVRS
Enter 243567 at Violation ID text field
and press the Search button
Test results
Actual results:Passed
Failed
Defect diagnosis:
-
7/29/2019 Functional System Testing
15/25
Black Box Testing15
Example: Functional Analysis III
Verify effects
of change
Filled when
the test case
is executed
How do we know that
violation 243567 is
stored in the system?
Can a tester
diagnose the cause
of a defect?
In addition, a querycould be run on the
Offenders database
-
7/29/2019 Functional System Testing
16/25
Black Box Testing16
Technique: Equivalence
Partitioning Identifies ranges of input and initial conditions
that are expected to produce the same result
A group of test cases form an equivalence class if: They test the same feature/scenario
If one test reveals a fault, the other ones (probably) willtoo
If a test does not reveal a fault, the other ones(probably) will not either
It is adequate to use only a single representative ofthe equivalence class
-
7/29/2019 Functional System Testing
17/25
Black Box Testing17
Example: Equivalence Partitioning I
Input value specification for Lookup Violation form:
Valid valuesField name
[0-9]{0, 9}Violation ID
[a-zA-Z]{0, 10}Offenders first name
[a-zA-Z]{0, 10}Offenders last name
-
7/29/2019 Functional System Testing
18/25
Black Box Testing18
Example: Equivalence Partitioning II
Field Valid
equivalent
classes
Valid
representative
values
Invalid
equivalent
classes
Invalid
representative
values
Violation ID Known violation 00243567 ID < 0 or ID >
999999999
-1, 1234567890
Unknown violation 32456720 Non numeric ID 23ab@
Empty
Offenders
first name
Unknown violation David Character# > 10 Hasalongname
Single known
violation
Rachel Invalid character ad0@am
Many known
violations
Dan
Empty
-
7/29/2019 Functional System Testing
19/25
Black Box Testing19
Example: Equivalence Partitioning III
The number of test cases to choose from is reduced to(3 + 2) (4 + 2) (4 + 2) = 180
The actual number can be further limited
Single invalid field per test case (3 4 4 + 6 = 54) Importance of use case
Resources available
Most frequent input
Life-critical software
Infeasible test cases
Randomly
...
-
7/29/2019 Functional System Testing
20/25
Black Box Testing20
Technique: Boundary Value
Analysis Based on experience / heuristics
Testing boundary conditions of equivalence classes is
more effective Choose input boundary values as equivalence
classes representatives
Choose inputs that invoke outputboundary values
Examples: (0, 10] validate using 0, 1, 2, 9, 10, 11
Read up to 5 elements validate reading 0, 1, 4, 5, 6 elements
-
7/29/2019 Functional System Testing
21/25
Black Box Testing21
BVA as an equivalence
partitioning extension Choose one (or more) arbitrary value(s) in
each equivalence class
Choose valid values exactly on lower andupper boundaries of equivalence class
Choose invalid values immediately below
and above each boundary (if applicable)
-
7/29/2019 Functional System Testing
22/25
Black Box Testing22
General purpose test-suite
construction technique May be used to obtain reasonable coverage with little
effort Use cautiously!
Unsuitable when values of different fields are related
1. While test cases can be added
Each new test case should include as many un-included valid non-boundary
equivalence class representatives as possible
2. While test cases can be added
Each new test case should include as many un-included valid boundary
equivalence class representatives as possible3. While test cases can be added
Each new test case should include a single invalid equivalence class
representative that has not been included before
4. Manually replace/remove redundant or infeasible test-cases
-
7/29/2019 Functional System Testing
23/25
Black Box Testing23
Example: Country Club I
Day Sunday - Thursday Friday - Saturday
Guest
status
Visitor Member Student Visitor Member Student
Age
(years)
Admission fee
[0, 16) 25 10 20 35 10 30
[16, 60) 50 25 45 70 25 65
[60, 120] 35 15 30 50 15 45
Specification
-
7/29/2019 Functional System Testing
24/25
Black Box Testing24
Example: Country Club II
Field Valid
equivalent
classes
Valid
representative
values
Invalid
equivalent
classes
Invalid
representative
values
Day Sun - Thu Mon, Sun, Thu
Fri - Sat Fri, Sat
Guest
status
Visitor Visitor
Member Member
Student Student
Age [0, 16) 2, 0, 15 Non-numeric
value
14@a
[16, 60) 34, 16, 59 Age < 0 or
Age > 120
-1, 121
[60, 120] 100, 60, 120
A combo box is used
for choosing the day
and guest status
-
7/29/2019 Functional System Testing
25/25
Black Box Testing25
Example: Country Club IIITest case ID Day Guest status Age Result
1 Mon Visitor 2 25
2 Fri Member 34 25
3 Mon Student 100 30
4 Sun Visitor 0 255 Sat Member 16 10
6 Thu Student 60 30
7 Sun Member 15 10
8 Sat Student 120 45
9 Thu Visitor 59 50
10 Mon Member 14@a Invalid age
11 Fri Student -1 Invalid age
12 Fri Visitor 121 Invalid age
valid
valid
(boundary)
invalid