O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Software testing methods

It's a quick

  • Entre para ver os comentários

Software testing methods

  1. 1. Software TestingMethodsA quick review on existingapproaches, their benefitsand pitfalls.
  2. 2. Basic Testing MethodsBasically, testing methods can be classified in thisfields: Dynamic or Static The Box Approach  White Box  Black Box  Gray Box Visual Testing
  3. 3. Testing Levels classificationsBased on which level of software you want to test, we canimplement the testing methods in these levels: Unittesting Integration testing System testing
  4. 4. Testing Goals and Aims Performance testing Usability testing Scalability testing Software Stress testing Recovery testing Security testing Conformance testing Smoke testing Compatibility testing System testing Alpha testing Beta testing
  5. 5. Basic Testing MethodsDynamic or Static The Box Approach  White Box  Black Box  Gray Box Visual Testing
  6. 6. Static Testing It is generally not detailed testing, but checks mainly for the sanity of the code, algorithm, or document. primarily syntax checking of the code and/or manually reviewing the code or document to find errors. Mainly implemented in black-box point of view Bugs discovered at this stage are less expensive to fix them later.
  7. 7. Dynamic Testing Dynamic Testing involves working with the software, giving input values and checking if the output is as expected. Unit Tests, Integration Tests, System Tests and Acceptance Tests are few of the Dynamic Testing methodologies. In the dynamic testing, testing begins before the software becomes completed.
  8. 8. Basic Testing Methods Dynamic or StaticThe Box Approach  White Box  Black Box  Gray Box Visual Testing
  9. 9. White box testing the internal of the software, the methods and it’s components to specify it can meet the needs of the end user. The following types of testing fall under the white box testing technique - Unit Testing, Integration Testing
  10. 10. Black-Box examining the functionality without knowing any information about how it is made. The tester is only aware of what the software is supposed to do, not how it does it. The following types of testing fall under the Black box testing technique - System Testing, Acceptance Testing.
  11. 11. Gray Box Testing Involves having knowledge of internal data structures and algorithms for purposes of designing tests The tester is not required to have full access to the softwares source code
  12. 12. Basic Testing Methods Dynamic or Static The Box Approach  White Box  Black Box  Gray Box Visual Testing
  13. 13. Visual Testing Recording of the entire test process – capturing everything that occurs on the test system in video format. It is suitable to apply in agile projects, since agile methods require greater communication between testers and developers and collaboration within small teams.
  14. 14. Testing Levels classificationsUnit testing Integration testing System testing
  15. 15. Unit testingA unit test is a procedure used to verify that a particular module of source code is working properly. The test cases should be written for each peace of code, functions and methods This type of testing is mostly done by the developers and not by end-users.
  16. 16. Testing Levels classifications Unit testingIntegration testing System testing
  17. 17. Integration testing Integration Testing involves with verifying the interfaces of system components in software design. Tries to show the mistakes in interactions and interfaces between system modules. To approaches is suggested for Integration Testing* :  Bottom-Up  Top-Down * Refer to the documents for further information(Integration Testing.pdf)
  18. 18. Testing Levels classifications Unittesting Integration testingSystem testing
  19. 19. System Testing Mainly testing the system to meet its requirements. Elaborating that how the third-party systems or any external system is interacting with the system.
  20. 20. Section 2 :Software Testing PracticesIn this section, we’ll take a look at how testing canbe implemented in popular project managementmethodologies:1. Waterfall development2. Extreme Programming3. Scrum4. Agile
  21. 21. Waterfall Development Positive Points  The software is ready, and every step of testing process will be completely mature and sensible.  The test reporting results are clear and enables the management to specify which decision should be taken.
  22. 22. Waterfall Development Negative Points  It assumes that the system is completely ready, So It happens pretty late.  Fixing the errors found can be so expensive.  Running a script for one user without errors doesnt prove anything.  Running all scripts together make it very difficult to tune and troubleshoot  Running a single large test (or even a few of them) gives minimal information about the system behavior.
  23. 23. Section 2 :Software Testing Practices1. Waterfall development2. Extreme Programming3. Scrum4. Agile
  24. 24. Extreme Programming Rather than designing whole of the system at the start of the project, the preliminary design work is reduced to solving the simple tasks that have already been identified. The developers communicate directly with customers and other developers to understand the initial requirements. During the XP, developers usually work in pairs to test the code.
  25. 25. Extreme Programming Benefits  The best method when the customer doesn’t have a clear understanding of the details of the new system.  When the technology used to develop the system is new compared to other technologies.  When the team size is not very large (usually 2 to 12 people).
  26. 26. Extreme Programming Pitfalls:  All code must have Unit tests.  All code must pass all Unit tests before it can be released.  When a Bug is found tests are created before the bug is addressed (a bug is not an error in logic, it is a test you forgot to write)
  27. 27. Section 3 :Testing Methods, Benefits and Pitfalls Static Testing White Box Testing Black Box Testing Unit Testing Integration Testing System Testing
  28. 28. Static Testing Benefits  Capture defects early, so saves rework cost  Checklist-based approach  Focuses on coverage  Group perspective  Highest probability of finding defects Pitfalls:  Time-consuming  Cannot test data dependencies  High skill levels on each field required
  29. 29. Testing methods:benefits and pitfalls Static Testing White Box Testing Black Box Testing Unit Testing Integration Testing System Testing
  30. 30. White Box TestingDynamic testing implements in white-box testingmethods. Benefits  Forces test developer in implementation  Approximates the partitioning done by execution equivalence  Reveals errors in "hidden" code  As the knowledge of internal coding structure is prerequisite, it becomes very easy to find out which type of input/data can help in testing the application effectively.  It helps in optimizing the code.  It helps in removing the extra lines of code, which can bring in hidden defects.
  31. 31. White Box Testing Pitfalls:  Expensive  Miss cases omitted in the code  A skilled tester is needed to carry out this type of testing, which increases the cost.  It is nearly impossible to look into every bit of code to find out hidden errors  Not looking at the code in a runtime environment. (The OS, environment and third-party situations can result in finding bugs that it cannot recognize )  Very few white-box tests can be done without modifying the program
  32. 32. Testing methods:benefits and pitfalls StaticTesting White Box Testing Black Box Testing UnitTesting Integration Testing System Testing
  33. 33. Black Box Testing Benefits  Black box tests are reproducible.  The environment the program is running is also tested.  The invested effort can be used multiple times.  More effective on larger units of code than glass box testing  Tester needs no knowledge of implementation, including specific programming languages  Tests are done from a users point of view  Will help to expose any ambiguities or inconsistencies in the specifications  Efficient when used on Larger systems
  34. 34. Black Box Testing Benefits  Tester and developer are independent of each other, test is balanced and unprejudiced  Tester can be non-technical.  There is no need of having detailed functional knowledge of system to the tester.  Tests will be done from an end users point of view. Because end user should accept the system. (Look for acceptance testing)  Testing helps to identify the vagueness and contradiction in functional specifications.  Test cases can be designed as soon as the functional specifications are complete
  35. 35. Black Box Testing Pitfalls:  The results are often overestimated.  Not all properties of a software product can be tested  The reason for a failure is not found.  Only a small number of possible inputs can actually be tested, to test every possible input stream would take nearly forever  Without clear and concise specifications, test cases are hard to design  There may be unnecessary repetition of test inputs if the tester is not informed of test cases the programmer has already tried  May leave many program paths untested  Cannot be directed toward specific segments of code which may be very complex (and therefore more error prone)
  36. 36. Black Box Testing Pitfalls:  Most testing related research has been directed toward glass box testing  Test cases are tough and challenging to design, without having clear functional specifications  It is difficult to identify tricky inputs, if the test cases are not developed based on specifications.  It is difficult to identify all possible inputs in limited testing time. So writing test cases is slow and difficult  Chances of having unidentified paths during this testing  Chances of having repetition of tests that are already done by programmer.
  37. 37. Testing methods:benefits and pitfalls StaticTesting White Box Testing Black Box Testing Unit Testing Integration Testing System Testing
  38. 38. Unit Testing Benefits:  Unit testing provides a strict, written contract that the piece of code must satisfy.  allows the programmer to re-factor code at a later date, and make sure the module still works correctly  Unit testing helps eliminate uncertainty in the pieces themselves and can be used in a bottom-up testing style approach.  Unit testing provides a sort of "living document".
  39. 39. Unit Testing Pitfalls:  Unit-testing will not catch every error in the program, will not catch integration errors  A unit test can only show the presence of errors; it cannot show the absence of errors.
  40. 40. Testing methods:benefits and pitfalls Static Testing White Box Testing Black Box Testing Unit Testing Integration Testing System Testing
  41. 41. Integration Testing Bottom-Up Approach  Benefits  Helpfulif errors like deep down in the dependency structure.  Test conditions are easier to create.  Observation results are reasonable easy.  Reduced effort in creating stub modules.
  42. 42. Integration Testing Bottom-Up Approach  Pitfalls:  Need to create stub modules.(It is easier than creating stub code)  The entire system is subjected to the small amount of test.(because the top modules are included in the tests at the final stage).
  43. 43. Integration Testing Top-Down Approach  Benefits:  If major defects are more likely at the top level modules top-down is beneficial.  Getting I/O functions early can ease test writing.  Early demonstration of the main functionality can be helpful in highlighting requirements issue and the in boosting morale.
  44. 44. Integration Testing Top-Down Approach  Pitfalls:  Too much effort on stubs.  Stub complexity can introduce errors.  Defining stubs can be difficult if some code is yet to be written.  It may be impossible accurately to reproduce test conditions.  Some observation maybe possible to make.  Encourages the idea that test and development can overlap.  Encourages deferring full testing of modules (until lower level modules can complete.)
  45. 45. Testing methods:benefits and pitfalls Static Testing White Box Testing Black Box Testing Unit Testing Integration TestingSystem Testing
  46. 46. System TestingSystem testing mainly is a sort of Black Boxtesting, to get more detailed informationsee black box testing benefits and pitfalls.
  47. 47. My Opinion Using the Black Box Approach with Integration testing method – Top-Down view. Breaking the system down into sub systems at the first step of each process. Specify one person to run the test parts. Make a simple documentation for each part with expecting features point of view.