BE Computer (2012 Course)
Semester-2, Dec 2016
Software Design methodologies and Testing
Time: 2:30 hour Marks: 70
Q1) a) Explain different views of software architecture? What is 5+1 architecture view model? Explain with suitable diagram?
- Software architecture views cover different aspects of system that implemented and also look it from different way.
Fig. 4+1 Architecture view
- Logical view: It is related to functionalities offered to end user of system. Module can be represented by sequence, class and communication diagram.
- Development view: It is also called as component design view. This is the developer’s view who contributes in project development. Module can be represent by component and package diagram.
- Process view: It is related to runtime aspects of the system which describe program structure at runtime. It also deals with concurrency, performance and scalability.
Module can be represents by activity diagram.
- Physical view: It is system engineer point of view and related to deployment, administration and environment of system. This view represents tools and its interaction, supporting software. Module can be represents by deployment diagram.
- Scenarios: Scenario at the centre represents fifth view which refers as use case view.
It has four views which are:
- Conceptual view: Primary design elements are described in this view.
- Module view: It describes module and its interaction.
- Execution view: It describes run time, concurrent execution perspective.
- Code view: It describes structure of source code and their classification into objects.
Q1) b) Explain activity diagram for ATM system. (5 marks)
- Automated teller machine validates user ATM card and connects to bank server to perform transactional operational.
- Interaction is done using control panel. User can validates card, pin withdraw cash etc. We consider dynamic view of system using activity diagram.
Fig. Activity diagram for ATM system
Q2) a) Explain the broker pattern for design of service oriented architecture? (5 marks)
In SOA, there is an intermediary between client and server called broker. Broker hides all the complexities related to obtaining the broker from client.
The facilities provided by broker are:
- Location transparency
- Platform transparency
Let discuss them one by one:
- The client should get the same service irrespective of the change in location of client.
- If service is moved from one location to another then client should not be aware of this move and client does not have to make configuration changes.
- When such situation happens, only broker should get the notification and only it has permission to take necessary action.
- In this, Client does not need to know the platform details such as software and hardware services.
- There is no need of customization by client based on service platform. Also, we can execute services on different software and hardware and client does not need to maintain the information about each service platform on which service get executed.
Q2) b) Explain intent, motivation, structure and consequence of observer pattern. (5 marks)
- Observer pattern is used in software application development. It uses object state and interaction.
- Observer get notify when there any state change occurs. It is also called as Publish-subscribe pattern.
- Intent: One to many dependency is implemented in between objects hence when there is change in state of one object then all the dependents are notified and updated automatically.
- Motivation: Mobile and web based application make use of observer pattern where mobile application considers as observer which gets notified for state change on subject. To design such system by simply partitioning the classes in not enough. Consistency need to be maintained between objects.
Fig. Class diagram for Observer Pattern
Subject: It is observed by any no of observers for any state change.
Observer: An updating interface is declared by observer for objects who wants to be notified.
ConcreteSubject: It stores the state which needs to be observed by observers.
ConcreteObserver: It maintains a reference to concrete subject object.
- Notifications are broadcasted to all objects who subscribed for state change event.
- If subject state change depends on other object states then, in that case, subject play the role of observer and other object becomes subject. In this manner, the updates and notifications can be cascaded to different levels of observers and subject.
- A subject does not have the knowledge of the concrete class of observer which can cause loose coupling between observer and subject.
Q3) a) Explain the modified V- model? (6 marks)
Modified V- model:
- V model separates the design and execution part of various types of tests.
- V model assumes that test execution can only be performed once the entire system is ready for execution.
- If one component is completed then it is ready for component testing and other components are still being developed. Such type of parallelism is not allowed in V model.
- Modified V model allows the parallel testing. It identifies different components of system which are in different stages of evolution and design test strategy accordingly.
- In modified V model, when specified criteria is meet then each component enters in suitable testing phase.
- Entering and exit criteria are defined for every module base on which module passes to subsequent testing stages.
- Modified V model specifies various phases of testing.
- Each type of testing is directly mapped with corresponding phase of testing. For unit testing, there is unit testing phase, for component testing, there is component testing phase.
Fig. Modified V model
- Figure shows how different phases of testing are performed in parallel.
- When intermediate product such as module or program enters in given phase of testing, then it is important to verify whether that intermediate product ready for that phase of testing or not. This is decided by set of entry criteria.
- For next phase to start, it is important for intermediate product to complete its previous phase of testing.
Q3) b) Discuss the generic steps in defect management process. (6 marks)
Steps in defect management process:
- Defect Identification:
It is process of detecting the defect. A person detecting the defect belongs to testing team and in practical case that may be development team member, system analyst.
- Defect categorization:
When defect is identified and reported, it is given to team to ensure its existence and identify its nature.
- Defect Prioritization:
Defect is prioritized on the basis of relative effort to fix and severity of impact on end user.
- Defect Assignment:
Defect is assigned to developer to fix it. Developers make use of defect management tool for tracking the activities.
- Defect Resolution:
After resolving defect, responsive actions are taken by organization to propagate the fix to environment where defect occur.
- Defect verification: After fixing the defect, testing team verifies that fix has exactly cures the defect. After verification it is applied on the system.
- Defect Closure:
After fixing and verifying the defect, it is marked as closed.
- Management reporting and analysis:
Reports are generated for fixed bug and send to the stockholders as needed.
Q3) c) Is complete testing possible? When to stop testing? What are the test resumption criteria? (6 marks)
- Practically complete testing is not possible in software application development.
- Condition where to stop testing:
- When no any dependent system is available to test existing system.
- When occurred defect does not allow further testing.
- When testing resources are not available.
All the above cases describe the condition to stop testing.
- Test resumption criteria:
- When time is remaining in software delivery and there is commitment of best quality product.
- When failure occurs in similar parallel product which make influence on current software system.
- When development system is available which causes earlier suspension.
Q4) a) Discuss the test defect metrics. Provide the sample metrics for priority and severity of defects? (6 marks)
- It helps in understanding how the identified defects can be used to improve the quality of product and testing.
- Organization classifies defects based on their priority and severity. Defect priority order is D1, D2, D3 then D1 defect should fix first before D2.
- While some organization give more priority to defect severity which decided by testing team.
- Defect severity is the degree of impact of defect at hand on software development system.
- For ex., If customer not able to book his match ticket because of defect then it may categories into highest priority. Here severity is comparatively less.
- Sample of defect priority and severity is as:
|Interpretation of priority
|The highest priority should fix as soon as possible.
|High priority defect should fix before next cycle of test.
|Priority of bug is medium and should fix at any suitable time.
|Priority of bug is low and can be fixed at next release cycle.
|Interpretation of severity
|Has highest severity so the product is of no use without fix.
|High severity. Some functionality is not working.
|Medium severity. Some functionality is not working in specific environment.
|Low severity. Minimizes the system performance.
Q4) b) State and explain different software testing principles. (6 marks)
Principles of software testing:
- Objectives of testing should be clearly defined before starting the test.
- Defects may contain a fix pattern and may occur in clusters so the testing should be aimed to find out such pattern and should focus on clusters.
- Defect prevention and detection is addressed by testing.
- Understanding of test methodologies and process should be clear and verified before starting the test.
- The main aim is to find the defect in software before customer finds them.
- Testing is not the end of development cycle but it is applied at all stages of development life cycle of software.
Q4) c) Discuss the essential features of modern defect management tools? (6 marks)
- Defect lifecycle is managed by defect management tools.
- Defect management can be done by having combination of well-defined defect management process in place and efficient defect management tool in support.
- It provides uniform platform and centralized repository for tracking defect across project.
- It provides support of management reporting and defect analysis.
- It provides ability to link and list all related defects with current defect.
- It facilitates the task of resource allocation and automated notification of defect state change.
- When defect fix is submitted to code repository then tool update the status as submitted and ready for verification.
Q5) a) Explain Integration testing. What are different types of integration testing? (8 marks)
- In this, individual units are combined and tested as a group.
- The aim of integration testing is to find out faults in interaction between integrated units.
- Any of black box, grey box, white box testing methods are used in integration testing.
- It is performed after unit testing and before system testing.
- Developers themselves or testers perform integration testing.
- It defined by 4 methods:
- Top Down Integration:
- It describes the testing of top most interfaces first and other component interfaces are tested in top to bottom order.
- For example, component 1 and 2 are available, so interfaces between those are tested.
Fig. Example of Top down integration
- Bottom-Up Testing:
- Testing starts from bottom and takes the bottom-up approach.
- Arrows pointing up describes integration path. Testing starts from component 1 and goes up covering all components till 8th
Fig. Example of Bottom-up integration
- Bi-directional Integration testing:
- In this testing, top-down and bottom-up approaches are combined.
- Components 1, 2, 3, 4, 5 are tested individually by using drivers and stub.
Fig. Bidirectional Integration
- System Integration:
- When all the components are integrated and tested together as single unit, then it is called as system integration testing.
- It further classified into components and system integration testing.
Q5) b) What is performance Testing? Explain performance testing process. (8 marks)
- In this, system is evaluated by developers and users.
- Performance of product has high impact on business of organization.
- Factors that affect performance of system are scalability, reliability, speed, latency etc.
- Throughput: It defines the capabilities of system of handling multiple request in given period of time.
- Latency: It is a delay caused by factors external to the system. Delay may be from operating system or external environment.
- Response Time: It is the time duration between request and first response from the system.
- Performance: Often competitor’s product is evaluated for performance testing. Performance of product is very important.
Q6) a) Explain graph based testing with suitable example. (8 marks)
- It belongs to block box testing and useful when system is represented in the form of data flow model, where data flows from one state to another.
- Also when system is a language processor like compiler and interpreter and represented in the form of state machine.
- It is useful when system transaction can be depicted as state transitions.
- Let’s take an example of admission system where the steps to be performed are:
- Fill online admission form.
- Student appears in admission test.
- Based on exam performance result declared as selected or rejected.
- Student reaches to CAP centre for admission.
Fig. Example of state graph
Q7) a) Explain the generalized architecture of automation tool. Draw the suitable diagram to show different components. (8 marks)
- In generalized architecture of automation tool, different modules are interacting with each other for their operations.
- The framework is connected to two external components Defect DB and TCDB.
- Defect DB is a defect database which includes information about all the defects detected I product of an organization.
- TCDB is a test case database which contains all related information about test cases of product developed by organization.
- Test frameworks obtain the required test case from TCDB and carry out the test case execution.
Fig. Architectural overview of test automation
Q7) b) What are different components of selenium testing tool? (8 marks)
Components of selenium testing tool
- Selenium IDE:
- It is complete integrated development environment for design and executing test cases.
- We can install it on Firefox web browser and serves as simple record and playback interaction for Firefox.
- It is a multi-feature IDE available as browser add-on.
- It supports recording, editing and debugging of tests.
- Selenium remote control:
- Its functionality is available as Selenium web driver in selenium 2.0.
- It is a server and has the capability of accepting command for browsers through HTTP.
- Local and remote test automation is supported by Selenium remote control.
- Selenium client API:
- Test writers can use client selenium API in their programs to communicate with selenium.
- Web driver also offers service through client selenium API.
- Selenium Grid:
- It is a server in selenium automation suite framework which makes use of remote browsers for running test cases easy.
- By using grid, one server can act like hub and other can communicate it to obtain remote browser instances.
- Hub allows web browser instance to run test case and maintain list of all web driver nodes.
- Selenium Web Driver:
- It is a collection of language specific binding to automate and control the operation of browser.
- It is a successor of selenium remote control.
- It exists in the form of object oriented API.
- It sends commands o web browser remotely and locally and obtain the required result.
Q 8) a) Write a short note on Monkey Talk and highlight its features. (8 marks)
- It is functional testing platform for mobile applications.
- It is easy to use and fast to test.
- It can be conducted on real devices or simulator.
- It supports HTML 5, hybrid and flex apps.
- Monkey talk IDE, monkey talk agent, monkey talk script are three components of monkey talk.
- It is interactive test platform to conduct automated testing for application developed for android and iOS.
- Tool is available in beta version for non-commercial use and limited free version for commercial use.
- Monkey talk agent command can be executed, recorded as required.
- Native monkey talk script or java script is used to write test.
- Complete automation testing can be implemented using monkey talk.
- Monkey talk allows integrating eclipse based development environment.
Q8) b) Explain different methods of mobile testing. (8 marks)
Methods of mobile testing:
- Usability testing:
- The components are verified whether user experience of application is uniform across all platforms.
- It is important testing from business perspective of organization.
- It verifies all functionality directly visible to user.
- Functional Testing:
- This testing verifies the functionality of system as per specified requirements.
- It involves testing of user interface and operation of application.
- It is performed b sing user interface and call flows.
- Interrupt Testing:
- Mobile application continuously listen the interrupt from various sources and takes action accordingly.
- Interrupts are incoming messages, calls, low battery No network connectivity, Wi-Fi turned on or off etc.
- Performance Testing:
- It checks the performance of system in specified condition.
- It also tests performance of serving application.
- Performance of application is tested under condition like low battery, low storage etc.
- Memory Leakage testing:
Improper handling of device memory leads to poor performance of application and may affect performance of entire mobile device. Therefore, it is important to perform this testing.
- Security testing:
It checks system vulnerabilities to hacking, authentication and authorization data confidentiality etc.
- Laboratory testing:
It is performed to ensure proper functionality in real life environment along with network and data connectivity.
- Certificate standard and compliance testing:
Organizations make sure that their product is compliant with guidelines and standards designed and implemented by different mobile platform.