You are not logged in.

matthiass

Trainee

  • "matthiass" is male
  • "matthiass" started this thread

Posts: 117

Date of registration: Sep 30th 2009

1

Sunday, May 29th 2011, 4:03pm

SWQ, aktuelles Übungsblatt, A3b

Hallo,

weiß jemand, was diese Formulierung

Quoted

[...] auf welchen die Testfälle [...] über Nacht angewendet werden sollen.


bedeuten soll? Soll man da tatsächlich einfach prüfen, ob der Ausführungszeitpunkt in einem bestimmten Interval liegt? Ich weiß nicht so wirklich, ob dass im Sinn der Aufgabe ist. Man könnte ja sagen, dass so etwas (wie die Testzeit) auch in einem Testrahmen spezifiziert werden kann, aber das ist irgendwie etwas weit hergeholt, finde ich.

Danke.

Grüße,
Matthias

This post has been edited 1 times, last edit by "matthiass" (May 29th 2011, 4:05pm)


SunshineSunny

Sonnenscheinchen auf'm Campus

2

Sunday, May 29th 2011, 4:21pm

Hey,

also ich verstehe es so, dass ihr einfach einen Testrahmen schreiben sollt. D.h. die Methode decimalToRoman testen. Und das nicht mit JUnit sondern einer eigenen Testumgebung.

Dieses "Über Nacht angewendet werden sollen." ist wirklich komisch formuliert...
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen.
Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.

matthiass

Trainee

  • "matthiass" is male
  • "matthiass" started this thread

Posts: 117

Date of registration: Sep 30th 2009

3

Sunday, May 29th 2011, 5:18pm

Vielen Dank. Genau so habe ich die Aufgabe auch verstanden und bearbeitet.

derhaase

Praktikant

Posts: 13

Date of registration: Jun 28th 2009

4

Sunday, May 29th 2011, 7:00pm

Ich hab auch noch mal ne Frage zu Aufgabe 2b):

Vollständige Pfadüberdeckung bedeutet doch, dass jeder Weg durch den Graphen mindestens einmal abgelaufen werden muss.

Durch die erste For-Schleife (die beliebig oft durchlaufen werden kann) gibt es doch praktisch unendlich viele verschiedene Pfade durch den Graphen.

Wie ist die vollständige Pfadüberdeckung bei uns denn definiert ?

This post has been edited 1 times, last edit by "derhaase" (May 29th 2011, 7:01pm)


SunshineSunny

Sonnenscheinchen auf'm Campus

5

Sunday, May 29th 2011, 7:07pm

Ja es gibt bei einer reinen For-Schleife unendliche viele Pfade um Pfadüberdeckung zu erreichen.

Doch in SWQ ist meist ein Trick im Code, sodass die Anzahl der Durchläufe beschränkt ist.
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen.
Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.

derhaase

Praktikant

Posts: 13

Date of registration: Jun 28th 2009

6

Sunday, May 29th 2011, 7:30pm

Also ich sehe hier überhaupt keine Möglichkeit für einen Trick, ich glaube eher hier ist eine andere Variante von
vollständiger Pfadabdeckung gemeint.

Also hier ist mal der Code dazu:

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class Converter {

	/**
	 * Konvertiert eine Dezimalzahl in eine römische Zahl. Es werden nur
	 * Tausender- und Hunderteranteile konvertiert.	 * 
	 */

	public static String decimalToRoman(int n) {
		String romanNumber = "";

		if (n <= 0) {
			romanNumber = "Keine römische Zahl";
		}
		else {
			int thousands = n / 1000;
			n %= 1000;

			for (int i = 0; i < thousands; i++) {
				romanNumber += "M";
			}

			if (n >= 900) {
				romanNumber += "CM";
			}
			else {
				if (n >= 500) {
					romanNumber += "D";

					int hundreds = (n - 500) / 100;

					for (int i = 0; i < hundreds; i++) {
						romanNumber += "C";
					}
				}
				else {
					if (n >= 400) {
						romanNumber += "CD";

					}
					else {
						if (n >= 100) {
							int hundreds = n / 100;

							for (int i = 0; i < hundreds; i++) {
								romanNumber += "C";
							}
						}
					}
				}
			}
		}

		return romanNumber;
	}
}

MaxKoch

Trainee

Posts: 85

Date of registration: Oct 3rd 2008

7

Monday, May 30th 2011, 11:35am

Hm ich habe bei der pfadüberdeckung die anzahl der schleifendurchgänge komplett ignoriert, weil es da unendlich viele pfade durch gibt. Dummerweise decken sich dadurch bei mir die testfälle für pfad- und anweisungsüberdeckung.

derhaase

Praktikant

Posts: 13

Date of registration: Jun 28th 2009

8

Monday, May 30th 2011, 12:02pm

Auch wenns ein "bisschen" spät ist:

Nach dem Hinweis in Rot ist die Überdeckung der McCabe Pfade gemeint

Ich hab das jetzt so interpretiert wie es in der wikipedia steht (http://en.wikipedia.org/wiki/Cyclomatic_complexity)

Quoted

One testing strategy, called Basis Path Testing by McCabe who first proposed it, is to test each linearly independent path through the program; in this case, the number of test cases will equal the cyclomatic complexity of the program
Es geht also darum eine Basis von linear unabhängigen Pfaden zu finden und zu testen.
-> Alle anderen Pfade müssen sich aus diesen Basis-Pfaden konstruieren lassen.