Final Exam Questions

1. Software fault: static error in the code. Software error: internal, not a normal behavior of the program due to a fault. Software failure: external, visible failure of the program. That it doesn't work basically. 2. Beizer discussed the goals of testing in terms of the “test process maturity levels” of an organization, where the levels are characterized by the testers’ goals. Level 0: Testing and debugging are the same. (Worst level) Level 1: Testing is only to find that your code doesn't work. Level 2: Get defensive or make an issue personal with testers because they broke your code. Level 3: Understand the job of a tester and take feedback as constructive criticism. Level 4: Become an expert software tester and make extreme good quality software. Work in harmony with testers. 3. Static Code Analysis is usually performed as part of a Code Review (also known as white-box testing). is a method of debugging by examining source code before a program is run . It’s done by analyzing a set of code against a set (or multiple sets) of coding rules. This type of analysis addresses weaknesses in source code that might lead to vulnerabilities within 'static' (non-running) source code by using Static Code Analysis Tools. 4. All software should be testable but it's not due to: Observability: refers to ease of determining if specified inputs affect the outputs. Controllability refers to the ease of producing a specified output from a specified input. Inheritance, that has resulted in some issues involved in testing of object-oriented software. 5. DevOps Is the blending of the roles of developers and operations support. Deploying an updated production application is a very tedious task to be performed manually, this is very time consuming and error prone. That is why DevOps plays a very important role: to make the best use of tools and to ensure that they are integrated to achieve a high level of automation. 6. There is Functional testing that involves Unit Testing and other types such as Interface Testing or Sanity Testing. And there is Non-functional testing that involves performance testing, Security Testing, among other types. 7. Testing for exceptional behavior of a system allows the global reasoning of the exception flows of an application, in other words, it allows the developer to specify and examine the paths traveled by exceptions from the points where they are thrown to their destinations.

11.
test coverage is defined as a technique which determines whether our test cases are actually covering the application code and how much code is exercised when we run those test cases.

Coverage Criteria are used to decide which test inputs to use. dividing input space to maximize number of faults found per test case.+

Rule or collection of rules that impose test requirements on a test set

Function coverage, branch coverage, statement coverage , condition coverage

12.
Is the process of re-testing software that has been modified.

13.
Domain for each input parameter is partitioned into regions.
Boundry, balance, normal use (happy path), sub-partitioning.

14.
Stubs are used to validate the state of a method, whereas mocks are used to evaluate the behavior. 

Questions

  1. Explain the differences between software fault, software error and software failure.
  2. Discuss Beizer’s “test process maturity levels”, where you are personally and your thoughts on the topic. Where were you at the beginning of the semester?
  3. What is static code analysis and how can it help us improve software quality?
  4. Is all software testable? Is some simpler or more difficult? Discuss.
  5. Discuss what DevOps is and how and why it is important in the context of software quality?
  6. What types of testing can we perform? We stressed unit testing in the course but what other forms are there?
  7. What does it mean to test for exceptional behaviour?
  8. Why do we not just test all possible values in testing? How do we deal with this?****
  9. What most surprised you in your learning of software quality and testing?
  10. 10.Are you convinced of TDD (Test Driven Design) and the test first mentality/process? Discuss.
  11. Explain test coverage, coverage criterions and different approaches to coverage.
  12. What is regression testing?
  13. What is input space partitioning? What are the different approaches to partitioning?
  14. Discuss the benefits of stubs and mocks. Also what can be the problems? Remember that Kent Beck talked about this in the podcast assignment we listened to.
  15. Give a discussion in general of what you learned about software quality and testing during the semester and more importantly what is next in your learning process in this area.
Note, the following are more open on interpretation and not so rigorous on the grading.
  1. Give your thoughts on your short experience with JUnit or other practical tools that you learned (or re-learned) this semester.
  2. Give your thoughts on our textbook “Introduction to Software Testing, 2nd Edition”. What was great, what wasn’t. What are your thoughts on this choice as a textbook for the course. Could we teach the course without a textbook? Did you purchase it?
  3. Give your thoughts on the grading system for this course and policy for grading and late assignments. What would you change? What would you keep the same?
  4. 19.Give your thoughts on assignments in this class. Should it include a project? More reading? More “hands-on” assignments? More writing assignments? What worked best, what did not work for you? What are your thoughts of the open blogging system used for this class (although we used it less than other classes I have taught) Hopefully you knew that you could post privately, did you know? Did writing your thoughts help your learning in your opinion? Did you look at the posts from other students? Any other thoughts?
  5. 20.Give your thoughts on the Canvas Learning Management System. What did you like? What was confusing or difficult? What would you keep and what would you change?

Comments

Popular posts from this blog

Chapters 6.1 & 6.2

Course evaluation