420 likes | 668 Views
Software Test Methodology – An Introduction. By: Girish Krishna K STS. Software Testing – An Introduction. What is testing? Testing is the Process of Certifying a product to be bug free and verifying its compliance with User Requirements.
E N D
Software Test Methodology – An Introduction By: Girish Krishna K STS Software Test Methodology - An Introduction
Software Testing – An Introduction • What is testing? • Testing is the Process of Certifying a product to be bug free and verifying its compliance with User Requirements. • It is the process of running a system with the intention of finding errors. Software Test Methodology - An Introduction
Software Testing – Why To Test • Why Test ? • In any project 50 % of the project costs goes in testing related activities. • The cost to company in solving errors reported by the client is huge. • The legal implications following the delivery of an under tested product is un imaginable. Software Test Methodology - An Introduction
Software Testing – Problem Scenario • Typical Problem scenario in a development project. • Communication gaps between the developer and the business decision maker. • Time provided to a developer to complete the project. • Over commitment by the developer. • Insufficient testing and quality control. • Inadequate requirements gathering. Software Test Methodology - An Introduction
Software Testing – Way Out • How can we over come these problems? • Issues like communication gaps, time constraints and commitment details can be resolved by having regular interactions with the client. • Issues like quality control and inadequate requirements gathering can be got to the lime light if the testing process is more defined. Software Test Methodology - An Introduction
Software Testing – V Model Software Test Methodology - An Introduction
Software Testing - Process Software Test Methodology - An Introduction
Software Testing – Services • What are the Different Services that we offer? • Functionality Testing. • Performance Testing. • Usability Inspections. • Test Automation Services. Software Test Methodology - An Introduction
Software Testing – Functionality Tests • What do u mean by Functionality Testing? • Functionality tests verify that the Product under test complies with the working requirements laid down by the client / customer. • Functionality testing is a 3 stage process that helps in improving the quality of the product. The 3 stages being the UNIT, INTEGRATION and the SYSTEM TEST phases. Software Test Methodology - An Introduction
Software Testing – Unit Tests • What do we understand by Unit Testing? • Unit testing looks at the product as a programmatic unit such as a class. • Like a box with a set of inputs and a set of outputs through which all communication between the box and its environment must flow. • In simple terms the code flow is known to the developer. • Also known as White Box Testing. Software Test Methodology - An Introduction
Software Testing – Integration Tests • Integration Testing? • Integration tests target the program interfaces between the various modules of an application. • There are 2 types of integration test techniques that can be adopted. • Top Down Approach. • Bottom Up Approach. Software Test Methodology - An Introduction
Software Testing – Top Down • Top Down – In Top Down we test the High level control routines, with the middle level control routines present only as stubs. • In this case we test Class A first by having stubs for Class B and Class C. • Class B is tested by having stubs for Class D and Class E. • Similarly Class C is testing by stubbing Class F and Class G. Software Test Methodology - An Introduction
In the Bottom Up approach the lowest level modules are tested first. In this Example Class D and Class E are tested with the help of a driver simulating the interface of Class B. Similarly Class F and G are tested. Now the drivers for Class B and Class C is replaced with the working code and these classes are tested with the driver simulating the interface of Class A. Finally the driver for Class A is replaced with the original working code and the block is tested for its complete functionality. Software Testing – Bottom Up Software Test Methodology - An Introduction
Software Testing – System Tests • System Tests are carried out to check for compliance of the product with user requirements. • The primary objective of the system tests are to ensure that the software will operate as intended in the production environment without problems. • It corresponds with the SRS phase in the V model diagram. • System testing is more Black box oriented as the code flow is not visible to the tester. Software Test Methodology - An Introduction
Software Testing – Regress a System • What does one mean by Regressing the System? • A system can be regressed in 2 ways- • First to check that the bugs reported are fixed or not. • Second to check that existing functionality is not altered when the bugs reported are being fixed. Software Test Methodology - An Introduction
Software Testing – Acceptance Tests • What does one mean by Acceptance tests? • Targets the compatibility, interoperability, usability etc • Evaluation of the product by the customer / client • Usually not a complete test but a part execution • Customer satisfaction and certification Software Test Methodology - An Introduction
Time for a Break Isn’t It We meet again in 15 minutes. Software Test Methodology - An Introduction
Software Testing – Recap… • What is Testing? • Why do we need to test ? • What are the different types of testing? • What is Unit Testing? • What is Integration testing? • What are the 2 types of Integration testing? • What is Top down approach? • What is Bottom Up Approach ? Software Test Methodology - An Introduction
Software Testing – Recap… • What is System Testing? • What is Regression Testing? • What is Acceptance testing? • What is black box testing? • What is white box testing? Software Test Methodology - An Introduction
Software Testing – Performance Tests • Performance Tests assess the performance of the software by simulating the real-world use of the application. • This will help identify, isolate, and analyze performance bottlenecks anywhere in the application. • ensures that the application will perform as required once deployed. Software Test Methodology - An Introduction
Software Testing – Performance Tests • How can one bench mark the performance of any application? • Bench marking of any application is not a single step process. • It involves performing a series of tests on the application and comparing the results with the accepted bench marks defined by the client. Software Test Methodology - An Introduction
Software Testing – Types of Performance Tests • When we talk about bench marking the performance of an application we need to subject the system to a number of tests like · Load tests · Stress tests · Duration Tests Software Test Methodology - An Introduction
Software Testing – Load Test • Load tests are designed to test client or server response times under varying load conditions. • load tests also help to compute the maximum number of transactions a server can handle in a given time period. • when a client/server system uses load balancing or a distributed architecture, load testing can help ensure that the load balancing or distribution methods work as designed. Software Test Methodology - An Introduction
Software Testing – Stress Tests • Stress testing is the process of running your client application under extreme conditions to see if they or the server "break." • Extreme conditions mean denying the resources that the application needs for normal functionality. • We test the application for its stress bearing capacity by: Continuously running a client application for many hours. Software Test Methodology - An Introduction
Software Testing – Stress Tests Cont. Performing a large number of transactions. Having hundreds of users perform the same operation or a specific combination of operations at virtually the same moment. We also test the performance of your application by subjecting it to following conditions: · Insufficient memory. · Unavailable services or hardware, · Diminished shared resources on the system-under-test. Software Test Methodology - An Introduction
Software Testing – Duration Tests • In Duration Tests the application under test is made to run for days. • The main objective is to test the system for robustness across a prolonged period and also to check for internal programmatic errors. • Also to check the error handling mechanism of the application. Software Test Methodology - An Introduction
Software Testing - Usability Tests • What is this Usability Testing? • Usability is the degree to which a user can successfully learn and use a product. • When we evaluate the product, the main focus rests on the compliance of the application to user requirements. Software Test Methodology - An Introduction
Software Testing - Usability Tests • The different aspects that get addressed by usability inspections are: • Global usability: Measuring as to how usable the application or web site is. • Affect: Measuring the comfort level of the user while using the application or web site. • Helpfulness: The help offered when the user faces difficulties while using the application or web site. Software Test Methodology - An Introduction
Software Testing - Usability Tests • Learnability: Measuring the time factor to get familiarized with the application or web site. • Efficiency: Measuring the user inputs required for user action. • Control: Measuring the response of the application or web site when the user performs an action on a continuous basis. Software Test Methodology - An Introduction
Software Testing – Test Automation Services • Automated testing can provide several benefits when it is implemented correctly and follows a rigorous process. • the potential benefits of automation are: • Building of a reliable system. • Improvement of the quality of the test effort. • Reduction of the test effort and schedules. • Maintaining a central repository of all test assets. • Reusability of programming efforts . Software Test Methodology - An Introduction
Software Testing – When to Automate The different factors that help u to decide as to when to automate are: • The test sequence of actions can be defined • The test sequence of actions is repeated • A non-UI aspect of the program needs to be tested • The same tests need to be executed on multiple hardware platforms The behavior of the software under test remains the same with and without the automation Software Test Methodology - An Introduction
Software Testing – Automation Tools The different tools that we use for automation are: Rational Robot, Rational Visual Test, Mercury Win Runner, Seague Silk Test. Software Test Methodology - An Introduction
Test Documentation Documents • Test Plan for the Project • Test Case Documents One for each Requirement to be Tested (as mentioned in SRS) for instance functionality testing and/or performance testing Records • Test Reports One for each Requirement • Defect Log • Review Reports Software Test Methodology - An Introduction
Test Plan • Identifies the features covered during testing • Each feature in the SRS mapped to a Test Case ID • The test cases are designed and documented in the Test Report format • Deliverables at Testing Phase shall be identified in Test Plan Software Test Methodology - An Introduction
Test Report • Each test report has a unique ID as mentioned in the test plan • Each test report covers • Test Prerequisites • Execution Details • Wrap-up Details • Test Cases • Test Results Software Test Methodology - An Introduction
Test Case Design • Test Case ID • Unique identification number which relates to individual elements of SRS • Test Case Structure • Serial No. • identifies unique serial no. of sub test case related to individual test category • Data Input (and Description) • Expected Result • Output to be produced • Actual Result • Actual result after executing the test case Software Test Methodology - An Introduction
Defect Overview Severity of the defect shall be determined as follows • H - High severity defect System crash / Incorrect data which impacts other regions / etc.) • M - Medium severity defect (Execution can continue / Incorrect data which does not impact other regions / etc.) • L - Low severity defect (Aesthetics / Message wording / Menu options / Wrong alarms / Help problems / etc.) Software Test Methodology - An Introduction
Defect Tracking Tools • The various defect tracking tools used are: • Rational DDTS • Rational Clear Quest • PVCS Online Tracker Software Test Methodology - An Introduction
Software Testing – Recap… • What have we learnt in this session? • Why are performance tests important? • What is benchmarking? • What is the difference between load and stress tests? • How does usability help in improving the quality of the product? • Why do we need to automate testing? Software Test Methodology - An Introduction
Software Testing – Recap… • When will automation be more effective? • What are the various automation tools availing in the market? • What are the different Documents in a Test Project? • What does a Test Plan Contain? • What is a Test Report? • How to design a test case? • What are the category of Defects? Software Test Methodology - An Introduction
Q & A Software Test Methodology - An Introduction
Thanks a lot for u’r Patience & All the Best. Contact : girish_krishna@bla.satyam.com Software Test Methodology - An Introduction