• Keine Ergebnisse gefunden

Assignment2:White-boxtesting Assignment1:Black-boxtesting TutorialSheet4:Testing

N/A
N/A
Protected

Academic year: 2021

Aktie "Assignment2:White-boxtesting Assignment1:Black-boxtesting TutorialSheet4:Testing"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Tutorial forSoftware Quality Management Summer Term 2010

Dr. S. Wagner L. Heinemann, S. Islam

18.05.2010 Technische Universität München

Fakultät für Informatik

Übungsblatt 1: Erfolgsfaktoren und Qualitätsprofile

 

Aufgabe 1: Erfolgsfaktoren der Softwareentwicklung

Folgende Faktoren beeinflussen die Durchf¨uhrung von Softwareeentwicklungsprojekten.

Identifizieren Sie weitere wichtige Faktoren und ordnen Sie sie nach der Gr¨oße des Einflusses an.

• Verl¨assliche Sch¨atzungen

• Angemessenes Vorgehensmodell einschließlich Qualit¨atssicherung f¨ur den gesamten Software-Life-Cycle

• Standardisierte Software-Infrastruktur

• Stabilit¨at der Anforderungen

[Antwort: Die folgenden Erfolgsfaktoren stammen aus dem Chaos­Report der Standish Group (1995, 1999). Obwohl dieser  Bericht stark kritisiert wurde, k¨onnen die grunds¨atzlich identifizierten Erfolgsfaktoren als zutreffend angesehen werden. In  Klammern der Anteil an der Erfolgswahrscheinlichkeit.

• Unterst¨utzung durch die Gesch¨aftsf¨uhrung (18%)

Einbeziehung der Nutzer (16%)

Erfahrene Projektleiter (14%)

• Eindeutige Gesch¨aftsziele und Ownership (12%)

• Minimierung der Projektgr¨oße (10%)

• Standardisierte Software­Infrastruktur (8%)

• Stabilit¨at der Anforderungen (6%)

• Angemessenes Vorgehensmodell einschließlich Qualit¨atssicherung f¨ur den gesamten Software­Life­Cycle (6%)

• Verl¨assliche Sch¨atzungen (5%)

• Motiviertes und kompetentes Team (5%) Übung zur Vorlesung Projektorganisation und Management Sommersemester 2007

Prof. Dr. Dr. h.c. M. Broy, Dr. H. Ehler, M. Fritzsche, S. Wagner 27.04.2007

Tutorial Sheet 4: Testing

A computer with internet access is required for this tutorial sheet.

Assignment 1: Black-box testing

Consider the following (simplified) rules for valid e-mail addresses.

• An e-mail address consists of two non-empty parts separated by an @-sign.

• Both parts may contain only the characters a-z, A-Z, 0-9.

• A dot is allowed, except as the first or last character of a part and there must not be any 2 consecutive dots.

Define test cases for a function that validates e-mail addresses according to these rules. It takes a string with an e-mail address as an input and returns a boolean result that indicates whether the e-mail address is valid. List pairs of inputs and expected outputs.

Example: john.doe@example.com→true

Assignment 2: White-box testing

The following function computes the solution for quadratic equations of the forma·x2+b·x+c= 0.

Design test cases by listing pairs of input values for the three parameters and expected output values. Try to cover all possible execution paths.

1 /∗ ∗

2 ∗ Computes the r e a l s o l u t i o n s of the q u a d r a t i c equation

3 ∗ a∗x∗x + b∗x + c = 0. The c o e f f i c i e n t a must not be 0 ,

4 ∗ else an {@link IllegalArgumentException} i s thrown ;

5

6 ∗ @param a the a c o e f f i c i e n t , must not be 0

7 ∗ @param b the b c o e f f i c i e n t

8 ∗ @param c the c c o e f f i c i e n t

9 ∗ @return the s o l u t i o n s f o r the equation . There can be

10 ∗ e i t h e r 0 , 1 or 2 s o l u t i o n s .

11 ∗/

12 public s t a t i c double[ ] computeRoots (double a , double b , double c ) {

1

(2)

13 i f ( a == 0 ) {

14 throw new I l l e g a l A r g u m e n t E x c e p t i o n ( ” a must n o t be 0 ” ) ;

15 }

16 double d = b ∗ b − 4 ∗ a ∗ c ;

17 i f ( d == 0 ) {

18 return new double[ ] { −b / 2 ∗ a };

19 } else i f ( d > 0 ) {

20 return new double[ ] { (−b + Math . s q r t ( d ) ) / ( 2 ∗ a ) ,

21 (−b − Math . s q r t ( d ) ) / ( 2 ∗ a ) };

22 } else {

23 return new double[ ] { };

24 }

25 }

Assignment 3: Unit Testing with JUnit

• Download and install the Eclipse IDE on your computer from the following URL if it is not already installed:http://www.eclipse.org/downloads/

Choose the packageEclipse Classic 3.5.2.

• Create a new Java project and copy the Java fileRangefrom the following URL into your pro- ject: http://www4.in.tum.de/lehre/vorlesungen/sqm/ss10/sheets/Range.java. This Java file contains the stub for an interval class over integers. In contains method stubs including their Javadoc documentation.

• Create a new JUnit Test Case RangeTest in the project. Write test cases for the Range class. Try to cover all functionality that is specified in the Javadoc and also think of corner cases.Do not yet write the implementation of the Range class.

• Implement the Java class so that all your test cases pass.

• With the implementation of theRange class at hand, reconsider your test cases. Try to find cases that may not be covered by your tests yet and complete your tests accordingly.

• Install the coverage toolEclemmaby performing the following steps: From your Eclipse menu select Help →Install New Software. In the Install dialog enter http://update.eclemma.org/ at the Work with field. Check the latest EclEmma version and press Next. Follow the steps in the installation wizard.

• After the restart of Eclipse there is a new launch button in your tool bar. Start the RangeTest test case with the new coverage launch button. Inspect the line coverage of theRangeclass in the Coverage view that opens automatically. If you encounter uncovered implementation code in the Range class, write additional test cases to cover the code.

2

Referenzen

ÄHNLICHE DOKUMENTE

With the test models generated from the classification-tree with a so-called model generator (MG, see section 3.1), we now have representative input models to cover the code

Odor quality may be encoded in the identity of the active output fibers (thus in the spatial com- ponent of the odor code), whereas stimulus properties such as concentration and

Combinations  of  histone  modification  marks  are  highly  informative  of  the   methylation  and  accessibility  levels  of  different  genomic  regions,  while  the

Combinations of histone modification marks are highly informative of the methylation and accessibility levels of different genomic regions, while the converse is not always

The specific materiality of a video is already a historical form of embodiment which defines itself through the original image and sound carriers onto which the code has

Write a function int anagram(char* firstStr, char* secondStr) which checks if a given word is an anagram of a second given word.. An anagram of a word is a letter sequence which

Write a main program, which reads the vector x and its length n from the keyboard, sorts it with mergesort and prints to the screen the sorted vector.. Test your

Check via assert if b ≤ c Write a main program which reads in the bounds and calls the function armstrong.. How did you test the correctness of