Abschließende Überprüfung der Softwaretests (1), Testfragen und -antworten

1. Multiple-Choice-Fragen (2 Punkte für jede Lücke, insgesamt 40 Punkte)

1. Der Zweck des Softwaretests: (c)
A. Fehler in der Softwareentwicklung vermeiden
B. Fehler in der Softwareentwicklung entdecken
C. Potenzielle Fehler in der Software so weit wie möglich finden und beseitigen, um die Softwarezuverlässigkeit zu verbessern
D. Software ändern, die auftritt Fehler
2. Software Unter Testen versteht man die Tätigkeit (a) der Ausführung von Software.
A. Testfall
b. Eingabedaten
c. Testumgebung
d. Eingabebedingung
3. Die häufigste Ursache für Softwarefehler ist: (a)
A. Spezifikation der Softwareanforderungen
b. Gestaltungsplan
C. Codierung
D.Wartung
4. In der folgenden Beschreibung lautet die Fehlerbeschreibung über die vollständige Änderung eines Softwarefehlerstatus (d)
A. Öffnen – Reparieren – Schließen
B, Öffnen – Schließen
C, Öffnen – Reservieren
D, Aktivieren – Reparieren — —Erneut öffnen
5. In der folgenden Beschreibung ist die Aussage über Testen und Debuggen falsch (d)
A. Testen ist der Akt des Aufzeigens von Fehlern; Debuggen ist der Prozess des Denkens;
B. Testen zeigt Fehler von Entwicklern auf. Beim Debuggen müssen sich Entwickler verteidigen.
C: Das Testen kann erwartet und kontrolliert werden. Das Debuggen erfordert Vorstellungskraft, Erfahrung und Denkvermögen.
D. Der Test muss gestartet werden, nachdem der detaillierte Entwurf abgeschlossen ist. Ohne detaillierte Entwurfsinformationen ist ein Debuggen nicht möglich.
6. Das Debuggen eines bestimmten Programms hat nicht zum erwarteten Ergebnis geführt, und Folgendes (b) kann nicht die Ursache des Fehlers sein.
A. Die Variable ist nicht initialisiert. b. Das Schreibformat der schriftlichen Stellungnahme ist nicht standardisiert
C. Regelkreisfehler D. Falsche Codeeingabe
7. Die teuerste Phase der Softwarefehlerbehebung ist (a)
A, Releasephase B, Anforderungsphase
C, Designphase D, Codierungsphase
8, die nicht zur Logikabdeckungsmethode (d) gehört.
A. Kombinierter Versicherungsschutz b. Urteilsberichterstattung
C. Zustandsabdeckung d. Schnittstellenabdeckung
9. (d) besteht darin, mehrere Testfälle auszuwählen und das zu testende Programm so auszuführen, dass jede ausführbare Anweisung im Programm mindestens einmal ausgeführt wird.
A. Bedingungsabdeckung B. Kombinationsabdeckung
C. Entscheidungsabdeckung D. Anweisungsabdeckung
10. (a) besteht darin, genügend Testfälle zu entwerfen, damit alle Situationen (wahr/falsch) jeder in jeder Entscheidung im Programm enthaltenen Bedingung mindestens einmal auftreten , und das eigene Entscheidungsergebnis (wahr/falsch) jeder Entscheidung kommt ebenfalls mindestens einmal vor.
A. Beurteilung – Bedingungsabdeckung B, Kombinationsabdeckung
C, Entscheidungsabdeckung D, Bedingungsabdeckung
11. Softwaretests stellen ein wichtiges Mittel zur Softwarequalitätssicherung dar. Welcher der folgenden Tests ist der grundlegendste Teil des Softwaretests? (b)
A. Funktionsprüfung
b. Unit-Test
c. Strukturprüfung
d. Abnahmetest
12. Die Hauptaufgabe des Unit-Tests umfasst nicht (b).
A. Fehlerbehandlung b. globale Datenstrukturen
c. unabhängiger Pfad d. Modulschnittstelle
13, das in der folgenden Abbildung dargestellte NS-Diagramm, mindestens (b) Testfälle sind erforderlich, um die Logikabdeckung zu vervollständigen.

A. 12 B.48
C.27 D.18
14. Der Unit-Test wird verwendet, um andere Funktionsmodule zu simulieren, die vom zu testenden Modul aufgerufen werden müssen (b).
A. Antriebsmodul b. Pfahlmodul
C. Hauptsteuermodul D.Das tatsächlich aufgerufene Modul
15 und der Integrationstestplan sollten am Ende von (b) Phase eingereicht werden.
A. Anforderungsanalyse B. Entwurfsentwurf
C. Detaillierter Entwurf D. Unit-Test abgeschlossen
16. Welche der folgenden Beschreibungen zur Programmeffizienz ist falsch (c).
A. Durch Erhöhen der Ausführungsgeschwindigkeit des Programms kann die Effizienz von Programm
B verbessert werden. Durch die Reduzierung des vom Programm belegten Speicherplatzes kann die Effizienz des Programms
C verbessert werden. Die Effizienz des Quellprogramms ist unabhängig von der Effizienz des in der Detailentwurfsphase
D ermittelten Algorithmus. Ein gutes Programmdesign kann die Effizienz verbessern
17. Das Folgende (b) wird durch Vereinfachen des Programmflussdiagramms erhalten, das die Struktur des Programmkontrollflusses deutlicher darstellen kann und keine zusammengesetzten Bedingungen enthält.
A. DD-Pfaddiagramm B. Kontrollflussdiagramm
c. MM-Wegekarte D. Modulaufruf Abbildung
18, Bottom-up-Inkrementeller Integrationstest, die folgende (c) Beschreibung ist korrekt.
A. Der Test wird vom Stub-Modul
B gesteuert. Das oberste Modul wird zuerst getestet
C. Die Elterneinheit wird mit der getesteten Untereinheit
D getestet. Berücksichtigen Sie den Tiefen- oder Breitendurchlaufprozess des Baums
19. Die Anzahl der nach dem Testen im Programm verbleibenden Fehler ist proportional zur Anzahl der im Programm gefundenen Fehler (d).
A. Unbekannt B.UmkehrverhältnisC
. gleich D.Proportional
20. Um festzustellen, ob ungültige Daten getestet werden sollen, kann der Äquivalenzklassentest in (b) unterteilt werden.
1) Standard-Äquivalenzklassentest (allgemein)
2) Robuster Äquivalenzklassentest
3) Schwacher Äquivalenzklassentest
4) Starker Äquivalenzklassentest
A. 3) 4) b. 1) 2)
C.1) 3) D.2) 4)

2. Wahre oder falsche Fragen (1 Punkt für jede Lücke, insgesamt 20 Punkte)

1. Die Anzahl der in einem Programm enthaltenen Pfade steht in direktem Zusammenhang mit der Komplexität des Programms. ( ∨ )
2. Beim Strukturtest werden Testfälle gemäß Softwarespezifikationen entworfen. (x)
3. Die falsche Schätzmethode besteht darin, Testfälle entsprechend der Abhängigkeit der Ausgabe von der Eingabe zu entwerfen. (x)
4. Zu den Softwarefehlerattributen gehören Fehleridentifizierung, Fehlertyp, Fehlerschwere, Fehlermöglichkeit, Fehlerpriorität, Fehlerstatus, Fehlerursprung, Fehlerquelle und Fehlerursache. (∨)
5. Für ein Programm mit n Variablen werden durch die Verwendung der Grenzwert-Robustheitstestmethode zum Testen des Programms 6n+1 Testfälle generiert. (∨)
6. Der Datenflusstest wird hauptsächlich zur Authentizitätsprüfung des Pfadtests verwendet. Die beiden Formen sind Definitions-/Verwendungstests und programmbasierte Tests. (∨ )
7. Solange die Software strenge und strenge interne Tests bestanden hat, kann sie frei von Mängeln sein. (x)
8. Der Testfall sollte aus zwei Teilen bestehen: Testeingabedaten und entsprechenden tatsächlichen Ausgabeergebnissen. (x)
9. Der Test kann ausgeschöpft werden. (x)
10. Testautomatisierung ist allmächtig. (x)
11. Softwaremängel können repariert, zurückbehalten oder gekennzeichnet werden. (∨)
12. Jedes Softwareprojekt hat ein optimales Testvolumen. ( ∨ )
13. Black-Box-Tests führen häufig zu schwerwiegenden Redundanzen und ungetesteten Funktionslücken zwischen Testfällen. (∨)
14. Die Codeüberprüfung ist ein statischer Test. (∨)
15. Softwaretests sind ein Prozess, der mehrere Aktivitäten umfasst, und das Ausführen von Software zum Testen ist nur eine dieser Aktivitäten. (∨ )
16. Regressionstests sind Testfälle, mit denen das Programm ausgeführt wird, um Fehler zu finden, bevor es erneut ausgeführt wird, nachdem die Software geändert wurde. ∨
17. Integrationstests dienen dazu, festzustellen, ob das Softwaresystem die Akzeptanzkriterien erfüllt, und den Kunden darüber zu entscheiden um es zu akzeptieren. Formaler Test für . ( x )
18. Der Test kann je nach Teststufe in Unit-Test, Integrationstest und Systemtest unterteilt werden. (∨)
19. Solange eine Logikabdeckung von 100 % erreicht werden kann, kann die Korrektheit des Programms garantiert werden. (x)
20. Immer fehlerhafte Typen werden auf einer Testebene gefunden und können sich auf einer anderen Ebene der Entdeckung entziehen. (∨ )

3. Fragen mit kurzen Antworten (5 Punkte für jede Lücke, 20 Punkte insgesamt) Bewerten Sie die Prüfer

1. Welche Eigenschaften sollte ein guter Software-Testingenieur mitbringen?
Antwort: Haben Sie den Geist der Erforschung, haben Sie eine gute Grundlage in der Computerprogrammierung, seien Sie gut in der Fehlerbehebung, haben Sie Durchhaltevermögen, haben Sie den Geist der Innovation und fördern Sie das Bewusstsein, streben Sie nach Perfektion, fällen Sie genaue Urteile, haben Sie ein Gesamtkonzept, seien Sie sensibel für Details Sie verfügen über Teamgeist und Kommunikationsfähigkeit

2. Es gibt eine binäre Funktion f(x,y), wobei x∈[1,12], y∈[1,31]; bitte schreiben Sie einen Testfall für diese Funktion, der mit der grundlegenden Methode der Grenzwertanalyse entworfen wurde.
Antwort: { <1,15>, <2,15>, <11,15>, <12,15>, <6,15>, <
6,1>, <6,2>, <6,30> , <6,31> }

3. Was sind die Vor- und Nachteile von Black-Box-Tests und White-Box-Tests und wie sollten sie kombiniert werden, um die Probleme von Lücken und Redundanz zu lösen?
Antwort: Funktionstests haben zwei Vorteile: Funktionstests haben nichts damit zu tun, wie die Software implementiert wird; die Testfallentwicklung kann parallel zur Implementierung durchgeführt werden, sodass die gesamte Projektentwicklungszeit komprimiert werden kann. Nachteile: Es kann zu erheblichen Redundanzen zwischen Testfällen kommen und es treten Softwareschwachstellen für Bittests auf. Strukturtests beschränken sich auf das Verhalten des fertigen Codes und kommen dem Code zu nahe. Daher können strukturelle Testindikatoren verwendet werden, um das Problem der Redundanz und Anfälligkeit zu lösen. Wenn festgestellt wird, dass derselbe Programmpfad von mehreren Funktionstestfällen durchlaufen wird, kann davon ausgegangen werden, dass diese Redundanz keine neuen Fehler verursacht. Wenn eine bestimmte DD-Pfadabdeckung nicht erreicht wird, kann davon ausgegangen werden, dass Lücken vorliegen der Funktionstestaufwand. Pfadtests können daher eine Reihe von Metriken bereitstellen, die durch Funktionstests abgeglichen werden.

4. Es gibt ein Programm wie folgt. Bitte entwerfen Sie einen Testfall, um die Anforderungen an die Anweisungsabdeckung zu erfüllen.

void  DoWork (int x,int y,int z)
{
    
    
   int  k=0,j=0;
   if ( (x>3)&&(z<10) )
   {
    
       k=x*y-1;  
       j=sqrt(k);  
   }               //语句块1 
   if ( (x==4)||(y>5) )d
   {
    
      j=x*y+10;   } //语句块2 
   j=j%3;          //语句块3
}

Antwort: Um die Anweisungsabdeckung der DoWork-Funktion zu erreichen, müssen Sie lediglich einen Testfall entwerfen, der alle ausführbaren Anweisungen im Programm abdeckt. Die Testfalleingabe ist: { x=4, y=5, z=5 }

4. Umfassende Fragen (10 Punkte für jede Lücke, 20 Punkte insgesamt) Bewerten Sie die Prüfer

1. Verwenden Sie die grundlegende Pfadtestmethode, um Testfälle für die folgenden Programmsegmente zu entwerfen.
(1) Zeichnen Sie das Kontrollflussdiagramm des Programms, die Nummer wurde angegeben.
(2) Berechnen Sie die zyklische Komplexität des Programms und leiten Sie die Anzahl unabhängiger Pfade im Basispfadsatz des Programms ab.
(3) Ableitung des Basispfadsatzes zur Bestimmung des unabhängigen Pfads des Programms.
(4) Entwerfen Sie gemäß dem unabhängigen Pfad in (3) die Eingabedaten und die erwartete Ausgabe des Testfalls (um die Ausführung jedes Pfads im Basispfadsatz sicherzustellen).

       void Do (int X,int A,int B)
       {
    
    
 1       if ( (A>1)&&(B=0) )
 2           X = X/A;
 3       if ( (A=2)||(X>1) )
 4           X = X+1;
 5    }

Da das Kontrollflussdiagramm von einer einzelnen Bedingung ausgeht, kann es bei zusammengesetzten Bedingungen in mehrere Einzelbedingungen zerlegt und in einem Kontrollflussdiagramm abgebildet werden.
1: A>1; 2: B=0; 3: X = X/A; 4: A=2; 5: X>1; 6: X = X+1; 7: }

Antwort:
1. Zeichnen Sie ein Kontrollflussdiagramm: wie in der Abbildung unten gezeigt
Fügen Sie hier eine Bildbeschreibung ein

2. Berechnen Sie die zirkuläre Komplexität:
10 (Kanten) – 7 (Knoten) + 2 = 5
3. Ableitung eines unabhängigen Pfads (angegeben durch die Anweisungsnummer)
Der unabhängige Pfad bezieht sich auf die mehrfachen Ausführungen vom Einstieg bis zum Ausgang des Programms , jede Mindestens eine Anweisung ist neu und wurde nicht jedes Mal wiederholt, dh es gibt mindestens einen Bogen, der nie jedes Mal durchlaufen wurde.
Pfad 1: 1→2→3→4→5→6→7
Pfad 2: 1→4→5→6→7 Pfad
3: 1→2→4→6→7
Pfad 4: 1→2→4→5 →7
Pfad 5: 1→2→3→4→5→7
4. Testfälle
Fügen Sie hier eine Bildbeschreibung ein

2. Szenarioanforderungen: „... Für Maschinen mit einer Leistung von mehr als 50 PS, unvollständigen Wartungsaufzeichnungen oder Maschinen, die länger als 10 Jahre in Betrieb waren, sollte eine vorrangige Wartungsbehandlung erfolgen ...“ . Dabei wird davon ausgegangen, dass sowohl „unvollständige Reparaturaufzeichnungen“ als auch „vorrangige Reparaturabwicklung“ an anderer Stelle strenger definiert wurden. Bitte erstellen Sie eine Entscheidungstabelle.
(1) Bestimmen Sie die Anzahl der Regeln.
(2) Listen Sie alle Bedingungs- und Aktions-Stubs auf.
(3) Füllen Sie die Bedingungselemente aus.
(4) Füllen Sie die Aktionselemente aus, um die anfängliche Entscheidungstabelle zu erhalten.
(5) Vereinfachen Sie die Entscheidungstabelle und führen Sie ähnliche Regeln zusammen.
Antwort:
(A && B)|| C
①Bestimmen Sie die Anzahl der Regeln: Hier gibt es drei Bedingungen, und jede Bedingung hat zwei Werte, daher sollte es 2 2 2=8 Arten von Regeln geben.
② Listen Sie alle Bedingungsstapel und Aktionsstapel auf:
Fügen Sie hier eine Bildbeschreibung ein

③ Füllen Sie das Bedingungselement aus. Es kann beginnend mit der Konditionsposition in der letzten Zeile zeilenweise aufgefüllt werden.
Die dritte Zeile lautet beispielsweise: YNYNYNYN.
Die zweite Zeile lautet: YYNNYYNN
und so weiter.
④ Füllen Sie das Aktionselement aus. Auf diese Weise erhält man die anfängliche Entscheidungstabelle in Form der Abbildung.

Fügen Sie hier eine Bildbeschreibung ein

⑤ Vereinfachen. Der resultierende Graph wird nach dem Zusammenführen der Ähnlichkeitsregeln erhalten.

Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/L6666688888/article/details/128479691
Recomendado
Clasificación