Software-testing
Question 1 |
The following is the comment written for a C function
/* This function computes the roots of a quadratic equation a.x^2 + b.x + c = . The function stores two real roots in *root1 and *root2 and returns the status of validity of roots. It handles four different kinds of cases. (i) When coefficient a is zero irrespective of discriminant (ii) When discreminant is positive (iii) When discriminant is zero (iv) When discriminant is negative. Only in case (ii) and (iii) the stored roots are valid. Otherwise 0 is stored in roots. The function returns 0 when the roots are valid and -1 otherwise. The function also ensures root1 >= root2 int get_QuadRoots( float a, float b, float c, float *root1, float *root2); */A software test engineer is assigned the job of doing black box testing. He comes up with the following test cases, many of which are redundant.
Which one of the following option provide the set of non-redundant tests using equivalence class partitioning approach from input perspective for black box testing?
T1, T2, T3, T6 | |
T1, T3, T4, T5 | |
T2, T4, T5, T6 | |
T2, T3, T4, T5 |
Question 1 Explanation:
Note: Out of syllabus.
T1 and T2 checking same condition a = 0 hence, any one of T1 and T2 is redundant.
T3, T4: in both case discriminant (D) = b2 – 4ac = 0. Hence any one of it is
T5 : D > 0
T6 : D < 0
T1 and T2 checking same condition a = 0 hence, any one of T1 and T2 is redundant.
T3, T4: in both case discriminant (D) = b2 – 4ac = 0. Hence any one of it is
T5 : D > 0
T6 : D < 0
Question 2 |
Which of the following statements is/are FALSE with respect to software testing ?
S1 : White-box tests are based on specifications; better at telling whether program meets specification, better at finding errors of omission.
S2 : Black- box tests are based on code; better for finding crashes, out of bounds errors, file not closed errors.
S3 : Alpha testing is conducted at the developer’s site by a team of highly skilled testers for software that is developed as a product to be used by many customers.
S1 : White-box tests are based on specifications; better at telling whether program meets specification, better at finding errors of omission.
S2 : Black- box tests are based on code; better for finding crashes, out of bounds errors, file not closed errors.
S3 : Alpha testing is conducted at the developer’s site by a team of highly skilled testers for software that is developed as a product to be used by many customers.
Only S1 and S2 are FALSE. | |
Only S1 and S3 are FALSE. | |
Only S2 and S3 are FALSE. | |
All of S1, S2, and S3 are FALSE. |
Question 2 Explanation:
FALSE: Black box tests are based on specifications; better at telling whether program meets specification, better at finding errors of omission.
FALSE: White box tests are based on code; better for finding crashes, out of bounds errors, file not closed errors.
TRUE: Alpha testing is conducted at the developer’s site by a team of highly skilled testers for software that is developed as a product to be used by many customers.
FALSE: White box tests are based on code; better for finding crashes, out of bounds errors, file not closed errors.
TRUE: Alpha testing is conducted at the developer’s site by a team of highly skilled testers for software that is developed as a product to be used by many customers.
Question 3 |
Consider the method mcq ( ):
int mcq(boolean a, boolean b, boolean c, boolean d)
{
int ans=1;
if(a) { ans = 2; }
else if (b) { ans = 3; }
else if (c) {
if (d) { ans = 4; }
return ans;
}
if
M1 = Number of tests to exhaustively test mcq( );
M2 = Minimum number of tests to achieve full statement coverage for mcq( ); and
M3 = Minimum number of tests to achieve full branch coverage for mcq( );
then (M1, M2, M3) = __________.
int mcq(boolean a, boolean b, boolean c, boolean d)
{
int ans=1;
if(a) { ans = 2; }
else if (b) { ans = 3; }
else if (c) {
if (d) { ans = 4; }
return ans;
}
if
M1 = Number of tests to exhaustively test mcq( );
M2 = Minimum number of tests to achieve full statement coverage for mcq( ); and
M3 = Minimum number of tests to achieve full branch coverage for mcq( );
then (M1, M2, M3) = __________.
(16, 3, 5) | |
(8, 5, 3) | |
(8, 3, 5) | |
(16, 4, 4) |
Question 3 Explanation:
Question 4 |
Regression testing is primarily related to
Functional testing | |
Development testing | |
Data flow testing | |
Maintenance testing |
Question 4 Explanation:
→ Regression testing is re-running functional and non-functional tests to ensure that previously developed and tested software still performs after a change. If not, that would be called a regression.
→ Changes that may require regression testing include bug fixes, software enhancements, configuration changes, and even substitution of electronic components.
→ As regression test suites tend to grow with each found defect, test automation is frequently involved.
→ Regression testing is primarily related to Maintenance testing.
→ Changes that may require regression testing include bug fixes, software enhancements, configuration changes, and even substitution of electronic components.
→ As regression test suites tend to grow with each found defect, test automation is frequently involved.
→ Regression testing is primarily related to Maintenance testing.
Question 5 |
What is the availability of the software with following reliability figures
Mean Time Between Failures (MTBF) is 20 days
Mean Time To Repair (MTTR) is 20 hours
Mean Time Between Failures (MTBF) is 20 days
Mean Time To Repair (MTTR) is 20 hours
90%
| |
96%
| |
24%
| |
50%
|
Question 5 Explanation:
Mean time between failures is not the average time something works then fail.
It’s the average time between failures Mean time between failure(MTBF)s= total uptime / number of breakdowns Mean time to repair is the average time taken to repair something. Mean time to repair(MTTR)= total time down/number of breakdowns
Availability = Total uptime/(total uptime+total downtime)
= MTBF/(MTBF+MTTR)*100
= 20*24/(20*24 + 20) * 100
= 96 %
It’s the average time between failures Mean time between failure(MTBF)s= total uptime / number of breakdowns Mean time to repair is the average time taken to repair something. Mean time to repair(MTTR)= total time down/number of breakdowns
Availability = Total uptime/(total uptime+total downtime)
= MTBF/(MTBF+MTTR)*100
= 20*24/(20*24 + 20) * 100
= 96 %
Question 6 |
Which of the following techniques are used for selection of test cases during structural testing?
Data flow based testing | |
Equivalence class partitioning | |
Cause-effect graphing | |
Boundary value analysis |
Question 7 |
Regression testing is primarily related to
function testing | |
data flow testing | |
development testing | |
maintenance testing
|
Question 8 |
Acceptance testing is done by
developers | |
customers | |
testers
| |
None of the given options |
Question 9 |
The approach to software testing is to design test cases to
break the software | |
understand the software
| |
analyze the design of sub processes in the software
| |
analyze the output of the software
|
Question 10 |
Beta testing is carried out by
users
| |
developers
| |
managers | |
None of the given options
|
Question 11 |
For a function of two variables, boundary value analysis yields,
4n+3 test cases | |
4n+1 test cases | |
n+4 test cases | |
2n+4 test cases |
Question 12 |
Alpha and Beta testing are forms of
White- Box Testing | |
Black- Box Testing | |
Acceptance Testing | |
System Testing |
Question 12 Explanation:
Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings.
Alpha testing uses both black and white box testing while Beta testing uses only black box testing.
Alpha testing is performed by testers who are usually internal employees of the organization
Alpha testing uses both black and white box testing while Beta testing uses only black box testing.
Alpha testing is performed by testers who are usually internal employees of the organization
Question 13 |
Fault base testing technique is
Unit testing | |
Beta testing | |
Stress testing | |
Mutation testing |
Question 13 Explanation:
Mutation testing is a software testing type that is based on changes or mutations.
Changes are introduced into the source code to check whether the defined test cases can detect errors in the code.
Changes are introduced into the source code to check whether the defined test cases can detect errors in the code.
Question 14 |
Which of the following is not a part of the Test Implementation and Execution Phase?
Creating test suites from the test cases | |
Executing test cases either manually or by using test execution tools | |
Comparing actual results | |
Designing the tests |
Question 14 Explanation:
TRUE: Creating test suites from the test cases
TRUE: Executing test cases either manually or by using test execution tools
TRUE: Comparing actual results
FALSE: Designing the tests
TRUE: Executing test cases either manually or by using test execution tools
TRUE: Comparing actual results
FALSE: Designing the tests
Question 15 |
Black Box Software Testing method focuses on the:
Boundary condition of the software | |
Control structure of the software | |
Testing of User Interface only | |
Cyclomatic Complexity |
Question 15 Explanation:
Black Box Software testing method focuses on the functional requirement of the software.
Note: The question is ambiguous. We marked the answer according to official key.
Question 16 |
Which of the following is/are behavioral testing technique(s)?
(A) Equivalence Partitioning
(B) Graph-Based Testing Method
(C) Boundary Value Analysis
(D) Data flow Testing
(E) Loop Testing
Choose the correct answer from the options given below:
(B) and (D) only | |
(A), (B) and (C) only | |
(D) and (E) only | |
(A), (C) and (E) only |
Question 16 Explanation:
Black-box testing, also called behavioral testing, focuses on the functional requirements of the software. That is, black-box testing enables the software engineer to derive sets of input conditions that will fully exercise all functional requirements for a program. The following are behavioral testing techniques
(1) Graph-Based Testing Methods
(2) Equivalence Partitioning
(3) Boundary Value Analysis
(4) Comparison testing
(5) Orthogonal Array Testing
(1) Graph-Based Testing Methods
(2) Equivalence Partitioning
(3) Boundary Value Analysis
(4) Comparison testing
(5) Orthogonal Array Testing