Briefly explain how low coupling and high cohesion enables


Assignment: Software QA and Testing

Part I: Conceptual Questions

1.: Objective of this question is for you to revisit common terminologies and concepts use in software testing

a) Briefly explain how low coupling and high cohesion enables modular design.

b) In the class we discussed three basic approaches in Integration testing: Top down, bottom up and sandwich. Explain each technique in detail highlighting pros and cons of each technique.

c) Junit is a framework. What is the main difference between a framework and a toolkit?

d) Junit provides four annotations @Before, @After, @BeforeClass, @AfterClass. Explain how you can use those testing OO applications (try to give examples)

Part II: OO Application Design/Architecture/ and Testing

Objectives: This question will help you in understanding designing stubs and driver program for testing. Also, how to perform integration testing. Finally, designing and implementing test cases (Using a tool, JUnit in our case) to test OO applications.

2. Download the BagleHouse program posted. It was developed as two-layered software where UI and computation related classes have being separated. They interact with each other through interfaces. BagleHouse application UI will let users select a type of a Bagel, toppings (up to 4), and a type of coffee as shown below. Once the calculate button is pressed amount due will be displayed.

a) Study the code and draw the class diagram that clearly shows the class relationships implemented. Make sure to use correct UML notations.

Submit: class diagram. No need to use a tool. Handwritten is fine as long as it's legible.

b) In testing this application, it make sense to test the calculations.java class first before integrating it with UI classes. Design test cases to test the calculations class (Explain your strategy). Then, develop a test driver program using JUnit to implement your test cases. Run test cases and make sure it the implementation of calculations class is correct.

Submit: Your JUnit test driver program and the test plan.

c) Then, we need to test the Presentation Layer before integrating it to the Application Layer. Explain your approach in testing the Presentation Layer using stubs to represent the Application Layer. Develop 3 test cases to show your strategy. Use MockItO framework to generate stubs.

Submit: Your test plan and three sample test cases.

3. [State Based Testing] In the class we have discussed the windshield wiper program and developed test cases based on the StateChart for lever and a Use Case. In this question you will revisit the program design and develop two set of test cases.

StateChart Based Testing:

The following StateCart represent the behavior of the Wiper of the winshield wiper case study discussed in the class.

a) Design test cases based on the segment of the StateChart shown below. Your test cases should cover all state transitions shown in the given state diagram. Represent your test cases in a table.

b) Implement Junit test cases to implement your test cases designed above (a)

c) Use case based testing: Consider the following usage scenario.

i.) Design test cases to test the scenario given.
ii.) Implement Junit test cases to implement your test cases designed above (c)

Assume that when lever and dial changes, they do not need to follow any sequential order. For example, dial can go from 1 to 3 without staying at level 2.

Attachment:- Assignment.rar

Request for Solution File

Ask an Expert for Answer!!
Database Management System: Briefly explain how low coupling and high cohesion enables
Reference No:- TGS02743147

Expected delivery within 24 Hours