Software Testing Presentation in Cegonsoft Pvt Ltd...


Published on

The process of executing and verifying whether the application or a program or system meets the customer requirements with the intent of finding errors.

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Allows you to connect eye-to-eye with your audience in a meaningful way.
  • Software Testing Presentation in Cegonsoft Pvt Ltd...

    1. 1. Software Testing Presented by: Chithra & Sureka
    2. 2.                 What is Software Types of Software and SDLC Spectacular Software Failures and Why software usually has faults? Quality  Testing Software Testing and BUG Software Testing Types, Techniques, Classifications, Levels and STLC Difference Between Manual & Automation Automation Testing Tools Software Testing Job Market Role of Software Tester Skills required to Become a Software Tester 10 reasons why you are not getting job in software testing ? Specialization has come to stay in testing career Why Testing in cegonsoft? How we Different form Others? How Saturdays Classes will be helpful for Testers to get a Job? Launch Plan
    3. 3. Software Set of rules / programs that provides instructions to computer to tell What to do, when to do, how to do Software Engineering Study of applying engineering to build software Types of Software System Software System software is any computer software which manages and controls computer hardware so that application software can perform a task. Application Software Application that we develop for others
    4. 4. •Project Based Companies •TCS, CTS, Infosys, Wipro •Product Based Companies •IBM, HP, Temenos, First American •Example •2 shops – pillow shop, tailor shop
    5. 5. Software Development Life cycle – The process of developing a software product formally& logically. It describes stage of software development process with different methodologies.
    6. 6. Plan Organize Design Develop Test
    7. 7. Car - manufactured and given to the customer
    8. 8. What is Software Testing  The process used to identify the correctness, completeness and quality software application & executing under positive and negative conditions by manual or automated means.  It checks for the: • Specification • Functionality • Performance Generate high quality test cases, perform effectivete tests, and issue correct and helpful problem reports.
    9. 9. History • The separation of debugging from testing was initially introduced by Glenford J Myers in 1979. “a successful test is one that finds a bug” • Debugging Oriented (until 1956) • Demonstration Oriented (1957-1978) Testing done to check if software is satisfying requirements- debugging and testing was distinguished separately • Destruction oriented (1979-1982) process of executing the Program with intent of finding errors
    10. 10. • Evaluation Oriented (1983-1987) Detect faults -finding errors in requirement, design and implementation • Prevention Oriented From 1988 Prevent faults -finding errors in requirement, design and implementation Testing Debugging Finding and Locating a defect Fixing the defect Done y testing team Done by Development team Intension behind it is to find as Intension is to remove those many as defects as possible. defects.
    11. 11. Software Testing Life Cycle (STLC)
    12. 12. Software Quality • Confirms the Functional and nonfunctional requirements • providing the defect free products • meeting the customer satisfaction.
    13. 13. QUALITY ATTRIBUTES There are 6 quality attributes:  Functionality  Reliability  Usability  Efficiency  Maintainability  Portability
    14. 14. • Functionality The ability of the product to function (to work efficiently) as per the user requirements. Example: bike Consider a bike, Verify the start functionality works as expected. • Reliability The ability of the product to continue to function, over time and over its full range of use, without failing or causing failure. Example Verify the start functionality works how long like it worked in the beginning
    15. 15. • Usability Simply define as User friendliness and Whether the application is fit for use Verifying the application is able to access by the end users Example: mobile phone • Efficiency Processing Speed, Time Taken to execute the task. Example How fast the web page is loading How fast the data gets retrieved
    16. 16. • Maintainability The ability of the system to undergo changes easily. Also includes the data manipulation Example How easy the features can be added and updated in the application • Portability The ability of the system to adapt in various operating systems. Example C Programming can be executed in Microsoft windows OS and Unix OS
    17. 17. Software quality is further divided into  Quality Assurance  Quality control Quality Assurance Quality Control Defect Prevention. Defect Detection. Process Oriented Product Oriented Identifies weaknesses in processes and improves them. Identifies defects for the primary purpose of correcting defects.
    18. 18. What Do We Test  We will perform testing first on major, important, critical and popular features and after we will test minor functionalities
    19. 19. Testing Methodologies • Functional Testing • Non Functional Testing • Black box testing • White box testing
    20. 20. Black box testing • • No knowledge of internal program design or code required. Tests are based on requirements and functionality. White box testing  White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application which is testing the source code / program developed.  Performed to verify the Non Functional requirements of the application
    21. 21. Functional Testing types  The identification of functions that the software is expected to perform and verifying whether the software is working as per the requirement  Functions are tested by feeding them input and examining the output  It can be done both Manually or automated using tools.  Smoke testing  Sanity testing  Exploratory testing
    22. 22. • Smoke Testing: smoke testing is to verify the major functionalities of the application Eg:login, inbox, compose mail • Sanity Testing: sanity testing is to verify minor or each functionality in the particular application Eg: check box radio button etc in inbox . • Compatablity Testing: It is done to verify how the system is compatible in various operating system, platforms and browsers
    23. 23. • Explora tory Testing: how the software works and to ask questions about how it will handle easy and difficult situations the tester should know more about the product and he wants to explore more number of test cases to find out how the software is working • AD HOC Testing: This is not structured testing method and also it is a least formal method it is used to do testing as soon as possible
    24. 24. NON- FUNCTIONAL TYPES  Performance  Stress  Load  Scalability  Usability  Security  Portability  Reliability
    25. 25. Performance testing • Performance testing allows testers to judge how well an application or website performs under specific circumstances. Measuring the time taken, the scalability and reliability of an action is key to performance testing. • There are three objectives (three S) of Performance testing to observe and evaluate; Speed, Scalability and Stability
    26. 26.  Load testing- Testing an application under heavy loads. Example: If the capacity of the lift is 10 people testing it with 10 people is called load testing  Stress testing- Stress Testing help us to observe the stability of the application.  Endurance Testing- Endurance testing reveals about memory utilization when you load your test for prolong executions.  Spike Testing- Spike Testing is performed by sudden increase/decrease in load and observing the behavior of the application. 
    27. 27.  Scalability Testing-is the testing of a software application for measuring its capability to scale up/ out- in terms of any of its non-functional capability - be its user load supported, the number of transactions, the data volume etc.  Recovery testing-Testing how well a system recovers from crashes, HW failures or other problems.  Install/uninstall testing-Testing the application is able to install and un install in various operating system and platforms
    28. 28. Testing Levels •Unit testing •Integration testing •System testing •Acceptance testing
    29. 29. UNIT TESTING • Tests each module individually. • Follows a white box testing (Logic of the program). • Done by developers. Lowest level of testing
    30. 30. INTEGRATION TESTING • • • Once all the modules have been unit tested, integration testing is performed. It is systematic testing. Produce tests to identify errors associated with interfacing
    31. 31. Component integration testing • Ensures that the individually unit work together as whole and the data flow across unit as per the requirement • Done after two are more models are developed and successfully unit tested • Both black box and white box testing can be used • Performed by both developers and testers • Entry criteria is after completing the unit testing • Exit criteria If the integration between the modules are working fine
    32. 32. Approaches in component integration testing • Top down approach • Bottom approach • Big bang approach
    33. 33. Top-down approach • Here the top level modules are tested first and lower level modules are tested separately • Here Stubs are used to stimulate if some lower level modules are not available • Stubs wont communicate
    34. 34. Bottom-Up Approach • In this approach bottom most modules are tested first and then moving upward step by step • Here Drivers are used to stimulate if some higher level modules are not available • Drivers will communicate
    35. 35. Big Bang Approach • Here all the units are most of the unit are tested at one go • Most of the defects can be uncovered early in the test process • Used when testing team receives entire software in a bundle
    36. 36. SYSTEM TESTING • In this level we are going to validate the entire system is working as per the requirement after completing the Integration testing • This level involves testing the whole application • This is done by testers • Individual module may work as desired but it may fail as system • Some of the scenarios will be covered only in this level
    37. 37. • • • • In this level both Black Box and White Box technique can use Performed by independent Testing team Entry Criteria is after completing unit and integration testing Exit Criteria is after the whole system is working as per the requirement Example • Consider yahoo mail website after completing unit and integration testing here we are going to test the application in whole whether all the modules are as per requirement like verifying after completing login we are able to compose a mail and we are able to access the inbox
    38. 38. SYSTEM INTEGRATION TESTING • In this level we are going to verify the interface of the application with other systems is working • Some of the external devices and system  Lan /van communications middleware  Intranet / Internet  Printers
    39. 39. In this level we are following two approaches Risk based • Identifying the system integration points which are critical to business • Prioritize them and perform sequentially Divide and Conquer • Test the other applications first • Test the connections • Combine incrementally
    40. 40. USER ACCEPTANCE TESTING • •   Testing done by clients and end users There are two types Alpha testing Beta testing • Alpha testing In this process client will come to our place and validate the application is working as per the brs (business requirement specification)
    41. 41. • Beta testing Here the application developed is tested in client location and validate the application is working as per the brs (business requirement specification)  Validates Whether the application is fit for use  Performed after st , sit or in parallel  Done by customer, Business user and Independent testing team
    42. 42. Manual &Automation testing  Manual Testing • It is the process of testing the application manually by creating test case • This process is done by executing the test case manually • It is cost effective • Mostly preferred for one time testing
    43. 43.  Automation This process is done using tools Tools will create test script and it will execute the test It is not cost effective &some special training is required This process is useful when functionality is to be repeatedly tested • Save lot of time • Sometimes few defects may miss • • • •
    44. 44. What …???? …is an ”ERROR”?? ….is a ”Bug”?? ….is Fault, Failure ??
    45. 45. Bug, Fault & Failure.. A person makes an Error That creates a fault in software That can cause a failure in operation • Error : An error is a human action that produces the incorrect result that results in a fault. • Bug : The presence of error at the time of execution of the software. • Fault : State of software caused by an error. • Failure : Deviation of the software from its expected result. It is an event.
    46. 46. Bug Life Cycle Tester finds the bug and report it to Test Lead Bug Test Lead confirms that it is a valid Bug New Deferred Assigned Resolved Re-open Verified Closed
    47. 47. When to Stop testing The Important factors to decide when to stop testing are  Critical and key Test cases are completed  Testing budget of the project  Functional coverage and Code coverage meeting the Requirement as per the Benchmark  Defects rate level falls below the specified level  High priority bugs are solved
    48. 48. Role of a SoftwareTester. • Find bugs as early as possible and make sure they get fixed. • To understand the application well. • Study the functionality in detail to find where the bugs are likely to occur. • Study the code to ensure that each and every line of code is tested. • Create test cases in such a way that testing is done to uncover the hidden bugs and also ensure that the software is usable and reliable