Tuesday, June 17, 2014

I Failed The ISTQB Practice Exam - Part II

Series: Part IPart IIPart III & IVPart VPart VI and Final Thoughts

Welcome back, failure fans! For those following closely I'm currently on 5/7.

Next up...

Part II - Testing Throughout The Software Life Cycle

8. Which statement below BEST describes non-functional testing?

a) The process of testing an integrated system to verify that it meets specified requirements. 
b) The process of testing to determine the compliance of a system to coding standards. 
c) Testing without reference to the internal structure of a system.  
d) Testing system attributes, such as usability, reliability or maintainability.  

My Answer: D
ISTQB Says: D

There is plenty of room here for the non-functional vs quasi-functional arguments. Also D isn't the only possible answer, there's an argument for A, B and C as they are all possibly "non-functional" testing, but D just seemed like the obvious choice. A little too obvious.

Score: 6/8


9. What is important to do when working with software development models? 

a) To adapt the models to the context of project and product characteristics. 
b) To choose the waterfall model because it is the first and best proven model. 
c) To start with the V-model and then move to either iterative or incremental models. 
d) To only change the organization to fit the model and not vice versa.  

My Answer: A
ISTQB Says: A

Why would anyone just choose Waterfall or V-model just because without looking at it as a solution for their company? The organisation must change to fit the model, but obviously we don't "only change" it that way around. That leaves A. The most positive-sounding one there is.

Also why is this a foundation question for a tester? I test in the methodology I'm given, personally, maybe this is more variable than I expect.

Score: 7/9


10. Which of the following characteristics of good testing apply to any software development life cycle model? 

a) Acceptance testing is always the final test level to be applied.  
b) All test levels are planned and completed for each developed feature.  
c) Testers are involved as soon as the first piece of code can be executed.  
d) For every development activity there is a corresponding testing activity.  

My Answer: None
ISTQB Says: D

A is false (if we're applying "test levels") and is not a "characteristic of good testing", I'm not sure about B, maybe one would do such a thing in some circumstance or other, I don't think that it's important. C is false, they should probably be involved as early as possible.

D is interesting. What does "corresponding" mean? Do they mean coding, or all development? Writing the source code is a development activity - what is the corresponding testing activity? Writing test code? Yes testers can code, but if that's "corresponding" then what value does this information have? We both can drink coffee too. Here's a development activity: writing a use case document. What't the corresponding testing activity? Here's another: researching code libraries to handle file compression. What's the corresponding testing activity there? Maddening. So I say none of them are true. I am wrong, though, the answer was "D".

Score: 7/10


11. For which of the following would maintenance testing be used?

a) Correction of defects during the development phase.  
b) Planned enhancements to an existing operational system.  
c) Complaints about system quality during user acceptance testing.  
d) Integrating functions during the development of a new system.  

My Answer: C?
ISTQB Says: B

What on earth is "maintenance testing"? Here I feel that reading the material would have been helpful in answering the question. Correction of defects sounds like a coding endeavour (although what does it really mean?). Complaints during UAT sounds like it might be done during some sort of maintenance of the shipped product which why I guessed it. Planned enhancements - so testing the plans to add things to an existing system? Integrating functions during development - that's not even a testing activity.

But no, it's B. Okay, listen to this as the answer: "Maintenance testing would be used for planned enhancements to an existing operational system". Would it? What is it? Why would it be used? What makes it different to any other testing? If this is taught as part of the course it isn't tested in this exam.

I'll re-write this question's answers to show how effective I think it is:
For which of the following would maintenance testing be used?
a) Driving to school
b) Testing the user story cards for changes we want to make in the live environment
c) Testing calls we get during UAT
d) Making the tea

And guess what - the ISTQB site says Maintenance testing is "testing an existing system" - which means that ALL TESTING OF ANY EXISTING PRODUCT IS MAINTENANCE TESTING. (source: here, look at 2.4)

Gah! Damn you, marking sheet.


Score: 7/11


12. Which of the following statements are TRUE? 
A. Regression testing and acceptance testing are the same. 
B. Regression tests show if all defects have been resolved. 
C. Regression tests are typically well-suited for test automation. 
D. Regression tests are performed to find out if code changes have introduced or uncovered defects. 
E. Regression tests should be performed in integration testing. 

a) A, C and D and E are true; B is false.  
b) A, C and E are true; B and D are false.  
c) C and D are true; A, B and E are false.  
d) B and E are true; A, C and D are false.  

My Answer: None
ISTQB Says: C

Regression testing and acceptance testing are obviously different. Nothing will show if all defects have been resolved... although I question what that even means. Regression tests are typically well-suited for test automation. That doesn't even make any sense - what kind of regression tests? What kind of automation? Anyway, automation is a tool to assist all testing, and automation is often expensive and difficult, so I reason that regression tests are not typically well-suited for test automation. If you want more examples I could say that regression tests (tests to look for a backslide in quality) are not necessarily or even usually checks. I don't know about D. Is it equivalent to say "to find out if code changes have introduced or uncovered defects regression tests are performed"? If so that I could get behind D as an answer. E... well, maybe, it depends.

Score: 7/12


13. Which of the following comparisons of component testing and system testing are TRUE?

a) Component testing verifies the functioning of software modules, program objects, and classes that are separately testable, whereas system testing verifies interfaces between components and interactions with different parts of the system.
b) Test cases for component testing are usually derived from component specifications, design specifications, or data models, whereas test cases for system testing are usually derived from requirement specifications, functional specifications or use cases.
c) Component testing focuses on functional characteristics, whereas system testing focuses on functional and non-functional characteristics.
d) Component testing is the responsibility of the technical testers, whereas system testing typically is the responsibility of the users of the system.

My Answer: A
ISTQB Says: B

C and D are clearly bizarre. I imagine a written driving test with answers like "a) run him over, b) run over his child, c) run over his dog, d) stop at the red light".

A - Component testing verifies the functioning of (components), whereas system testing verifies (the system). Seemed okay to me, even if the wording was rather dodgy. Apparently not, though as the answer is "test cases for component testing are usually derived from component specifications, design specifications, or data models, whereas test cases for system testing are usually derived from requirement specifications, functional specifications or use cases". I don't really know what that means. Are they explicit or tacit? Are they specifications and models or specification and model documents? What about the other oracles for testing? Why would the model we build for testing be reliant on only one set of specifications? Aren't test cases derived from tacit contextual information as much as explicit specification? Otherwise how would you know the value of your testing? And what about test cases derived from testing, surely they're more common?

Just me being over-critical in my thinking, because it's definitely B on the score sheet.

Score: 7/13

That's it, exam fans! Meet up with me next time for "Static Techniques"!

No comments:

Post a Comment