4-d

Werbung
Abteilung für Telekooperation
Übung Softwareentwicklung 1
für Wirtschaftsinformatik
UE02 C - Handtest
Dr. Wieland Schwinger
[email protected]
http://www.tk.uni-linz.ac.at/teaching/
http://www.tk.uni-linz.ac.at/blackboard/
Abteilung für Telekooperation
Testpunkte
Sum()
Eingabe:
1 9 6 8 0
Schritt Stelle
number sum
sum = 0
Pos A
read(number)
Pos B
while number>0
sum = sum + number
read(number)
Pos C
Pos D
write(sum)
Pos E
Softwareentwicklung I • UE • Schwinger
Zumindest an jeder Stelle, an
der sich Werte von Variablen
ändern!
Folie-2
Abteilung für Telekooperation
Testpunkte
Sum()
sum = 0
Pos A
read(number)
Pos B
while number>0
sum = sum + number
read(number)
Pos C
Pos D
write(sum)
Pos E
Softwareentwicklung I • UE • Schwinger
Eingabe:
Schritt
1
2
3
4
5
6
7
8
9
10
11
Stelle
A)
B)
C)
D)
C)
D)
C)
D)
C)
D)
E)
1 9 6 8 0
number
?
1
1
9
9
6
6
8
8
0
0
sum
0
0
1
1
10
10
16
16
24
24
24
Wie sieht der Durchlauf mit
folgenden Eingaben aus?
a) 9 3 0
b) 2 9 7 4 0
c) 0
Folie-3
Abteilung für Telekooperation
Primfaktorenzerlegung
Primfaktorenzerlegung
Gesucht ist ein Alogrithmus, der von einer eingelesenen ganzen Zahl die
Primfaktoren ermittelt und diese ausgibt.
Eingabe: positive ganze Zahlen
Ausgabe: aufsteigend die Primfaktoren der eingegebenen Zahl
Aufgaben
1) Erstellen Sie den Algorithmus und beschreiben Sie diesen in einem
Ablaufdiagramm
2) Bestimmen Sie die Beobachtungspunkte für den Algorithmus
3) Fuehren Sie eine Handsimulation des Algorithmus für die Eingabe der Zahlen
10 bzw. 360 durch
Softwareentwicklung I • UE • Schwinger
Folie-4
Abteilung für Telekooperation
Ablaufdiagramm
PrimeFactors()
A
B
C
D
E
F
write(“Input number: “)
read(↑number)
i=2
while number > 1
while (number modulo i) == 0
G
H
write(↓i)
number = number / i
ja
i=i+1
i == 2
nein
i=i+2
I
J
K
Softwareentwicklung I • UE • Schwinger
ANMERKUNG:
Dieser Algorithmus testet
nicht nur Primzahlen! Er
funktioniert dennoch korrekt,
da Nichtprimzahlen bereits
durch die zuvor getesteten
Primfaktoren berücksichtet
wurden. Das Testen von
Nichtprimzahlen ist nicht
notwendig, wird jedoch hier
zur Vereinfachung
angenommen.
Folie-5
Abteilung für Telekooperation
Schreibtischtest
Testfall: 10
Nr Pos
number
i
EINGABE
AUSGABE
Vergleich
1
A
?
?
2
B
10
?
3
C
10
2
4
D
10
2
5
E
10
2
6
F
10
2
7
G
10
2
8
H
5
2
9
F
5
2
(5 modulo 2 == 0) => FALSE
10
I
5
2
(2 == 2) => TRUE
Softwareentwicklung I • UE • Schwinger
Input number:
10
(10 > 1) => TRUE
(10 modulo 2 == 0) => TRUE
2
Folie-6
Abteilung für Telekooperation
Schreibtischtest cont.
Nr
Pos
number
i
11
J
5
3
12
D
5
3
13
E
5
3
14
F
5
3
(5 modulo 3 == 0) => FALSE
15
I
5
3
(3 == 2) => FALSE
16
J
5
5
17
D
5
5
18
E
5
5
19
F
5
5
20
G
5
5
21
H
1
5
22
F
1
5
(1 modulo 5) => FALSE
23
I
1
5
(5 == 2) => FALSE
24
J
1
7
25
D
1
7
26
K
1
7
Softwareentwicklung I • UE • Schwinger
EINGABE
AUSGABE
Testfall: 10
Vergleich
(5 > 1) => TRUE
(5 > 1) => TRUE
(5 moludo 5 == 0) ==> TRUE
5
(1 > 1) => FALSE
Folie-7
Abteilung für Telekooperation
Sonderfälle
Grenzen / Sonderfälle
1
0
2
3
4
5
6
8
256
8085
1031
ANMERKUNG:
Der gezeigte Algorithmus berücksichtigt nicht die Eingabe von
negativen Zahlen. Diese sind "per Definition" nicht zulässig.
Für die Erstellung von Programmen nehmen Sie bitte sehr wohl
auf "unzulässige" Eingaben Rücksicht!
Dh. für Ihre zukünftige Programme sollten Sie auch Eingaben wie:
-1, "Einen Test statt einer Zahl" usw. testen!
=> hat keine Primfaktoren
=> hat keine Primfaktoren
=> kleinster Wert mit einem Primfaktor
=> zweitgrößter Wert mit einem Primfaktor
=> kleinster Wert mit zwei (gleichen) Primfaktoren
=> kleinster Wert vor dem eine Zahl mit
mehreren Primfaktoren existiert
=> kleinster Wert mit zwei unterschiedlichen Primfaktoren
=> kleinster Wert mit mehr als 2 Primfaktoren
=> größere Anzahl an (gleichen) Primfaktoren
=> größere Anzahl an unterschiedlichen Primfaktoren
=> größere Zahl mit nur einem Primfaktor (=> Primzahl)
Softwareentwicklung I • UE • Schwinger
Folie-8
Abteilung für Telekooperation
Testfälle
Nr
Zweck
Eingabewert
Erwartete Ausgabe
1
Kleinste positive Zahl ohne Primfaktoren
0
2
3
Erste Zahl größer 0, die per Definition keine Primzahl ist
Kleinster Wert mit einem Primfaktor
1
2
"0
hat
keine
Primfaktoren"
keine Primfaktoren
2
4
Zweitgrößter Wert mit einem Primfaktor
3
3
5
Kleinster Wert mit zwei gleichen Primfaktoren
4
22
6
Kleinerer Wert mit mehreren Primfaktoren existiert
5
5
7
Kleinster W. mit zwei unterschiedlichen Primfaktoren
6
23
8
9
9
Kleinster Wert mit mehr als 2 Primfaktoren
Kleinster Wert mit mehr als 2 Primfaktoren ungleich erstem Primfaktor 2
Größere Anzahl an (gleichen) Primfaktoren
8
27
256
222
333
22222222
10
Größere Anzahl an unterschiedlichen Primfaktoren
8085
3 5 7 7 11
11
Größere Zahl mit nur einem Primfaktor
1031
1031
Softwareentwicklung I • UE • Schwinger
Folie-9
Abteilung für Telekooperation
Testfälle
Nr
Zweck
Erwartete Ausgabe
Allgemeiner Fall
Eingabew
ert
6534
12
13
Allgemeiner Fall
13332
2 2 3 11 101
14
Allgemeiner Fall
10
25
15
Negative Zahl
-10
keine Primfaktoren
16
Größte Negative Zahl
-1
keine Primfaktoren
17
Ungültige Eingabe eines Textes
hallo
eine
ein:
18
Ungültige Eingabe einer Zahl gefolgt von einem Text
123hallo
19
Ungültige Eingabe einer Gleitkommazahl
123.789
19
Keine Eingabe (eine Eingabe muss natürlich mit '\n' beendet werden
20
Größte mögliche Zahl (Grenzwert des Datentyps)
Bitte geben Sie
gültige
Zahl
<zahleneingabe>
Bitte geben Sie
gültige
Zahl
<zahleneingabe>
Bitte geben Sie
gültige
Zahl
<zahleneingabe>
Bitte geben Sie
gültige
Zahl
<zahleneingabe>
2147483647
21
Um eins zu große Zahl (Grenzwert des Datentyps+1)
eine
ein:
22
Kleinste negative Zahl
Bitte geben Sie
gültige
Zahl
<zahleneingabe>
Bitte geben Sie
gültige
Zahl
<zahleneingabe>
Softwareentwicklung I • UE • Schwinger
214748364
7
214748364
8
214748364
8
2 3 3 3 11 11
eine
ein:
eine
ein:
eine
ein:
eine
ein:
Folie-10
Abteilung für Telekooperation
Testplan
Vor dem Testen eines Programms (welches einen bestimmten
Algorithmus implementiert) überlegen Sie:
•
WAS Sie testen wollen: welches Verhalten und welche (Sonder-)Fälle
Sie untersuchen wollen.
•
WIE Sie diese Tests durchführen, und zwar durch Festlegung
geeigneter Eingabewerte
Ein Testplan sollte daher folgendes beinhalten:
• WAS Sie testen wollen (Zweck)
• WIE Sie diese Tests durchführen (Eingabewerte)
• erwartetes Resultat (Ausgabewerte)
Ab nun ist zu jeder Übung ein Testplan zu erstellen
und des Programm entsprechend zu testen!
Softwareentwicklung I • UE • Schwinger
Folie-11
Abteilung für Telekooperation
Project Pläne und IEEE 829
 The 16 clauses of the IEEE 829 test plan standard are:
■
■
■
■
■
■
■
■
■
■
■
■
■
■
■
■
1. Test plan identifier.
2. Introduction.
3. Test items.
4. Features to be tested.
5. Features not to be tested.
6. Approach.
7. Item pass/fail criteria.
8. Suspension criteria and resumption requirements.
9. Test deliverables.
10. Testing tasks.
11. Environmental needs.
12. Responsibilities.
13. Staffing and training needs.
14. Schedule.
15. Risks and contingencies.
16. Approvals.
Softwareentwicklung I • UE • Schwinger
Folie-12
Herunterladen