Fundamentals of Software Testing Explained

Slide Note
Embed
Share

Software testing is a critical process to ensure that software applications meet requirements and are free of defects. It involves various activities such as test planning, analysis, design, implementation, and execution. Testing approaches like the Bing bang approach and Total Quality Management are discussed, emphasizing the importance of thorough testing throughout the development life cycle. The psychology of testing and the balance between self-testing and independent testing are also highlighted for effective collaboration between testers and developers.


Uploaded on Jul 22, 2024 | 1 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Unit 2 Fundamentals of testing

  2. Definition of Testing S/w testing is process, to evaluate the functionality of a software application with an intent to find if the developed s/w meet the requirements or not It is defined as an execution of a work product with intent to find defects Testing is done to protect the common users from any failure of system during usage. The process can include: Verifying s/w completeness in regards to functional/business requirements Identifying technical bugs/errors and ensuring the software is error free Assessing usability, performance, security, localization, compatibility and installation

  3. Fundamental Test Process Test Planning and Control Test Analysis and Design Test Implementation and Execution Evaluating Exit Criteria and Reporting Test Closure Activities

  4. The Psychology of Testing Comparison of the mindset of the tester and developer The balance between self-testing and independent Testing There should be clear and courteous communication and feedback on defects between tester and developer

  5. Testing Approaches Bing bang approach 1. It involves testing s/w after completion of development It also called Final Testing or System Testing It is done before releasing s/w Bing bang approach has main trust on black box testing of s/w to ensure that the requirements as defined and documented in requirement and design specifications are met successfully. In Bing bang approach, s/w is tested before delivery It not possible to detect all faults due to time constraints

  6. Total Quality Management Approach 1. TQM can be defined as management technique for improving processes, products and services It focuses on the entire business and NOT just on particular process Defect removal costs are approximately 10 times more after coding This is a cost associated with fixing the problems belonging to requirements, design, coding etc.

  7. Testing During Development Life Cycle Refer unit no. 1

  8. Requirement Traceability Matrix(RTM) RTM is used to trace the requirements to the tests the are needed to verify whether the requirements are fulfilled The purpose of the RTM is to ensure that all requirements defined for a system are tested. The RTM is usually developed in concurrency with the initial list of requirements. Types of RTM: Forward Traceability(Mapping requirements to the test cases) Backward or Reverse Traceability(Mapping test cases to requirements)

  9. Advantages of RTM Entire s/w development can be tracked completely through RTM Any test case failure can be tracked through requirements, designs, coding etc. Any changes in requirements can be affected through entire work product upto test cases Application becomes maintainable Its also helps to understand if any redundancy has been created in the application It may answer questions about what is being developed

  10. Problems with RTM Number of requirements are huge Connectivity with different relationship Requirements changes frequently and so do designs, code and test cases A customer may not find value in it and pay for it Incremental and iterative developments are the major challenges for maintaining traceability

  11. Essentials of Software Testing Test Strategy Strengths Weaknesses Testing Plan Test cases Opportunities Test data Threats Test Environment

  12. Workbench A workbench concept is a method of scheduling that how a particular action has to be executed. Actions contain in workbench are: Input Execute Check Production Output Rework

  13. Important Features of Testing Process Easy to operate Stability Observability Easy to understand Decomposability

  14. Misconceptions about Testing Anyone can test Testing can happen at the end Testing can find all bugs Defects found by customers are blamed on Tester Test automation will replace manual testers.

  15. Principles of Software Testing Testing shows presence of defects Exhaustive testing is not possible Early Testing Defect Clustering Pesticide Paradox Testing is context dependent Absence of errors fallacy

  16. Salient features of Good Testing Capturing user requirements Be Sceptical Don t compromise on quality Design objectives Ensure end user satisfaction Think from the users perspective Never Promise 100% coverage Start early Be open Suggestions

  17. Test Policy It is a document described at the organization level It is determined by the senior management of the organization The test policy is very high-level document and at the top of the test documentation structure Organizations may prefer to publish their test policy in a sentence as well as a separate document Policy can be used in both development and maintenance project

  18. Test Policy shall describe the followings Clear answer to the questions It is determined by the senior management of the organisation. The definition of the testing process used by the organization to increase the quality of the software developed How the organization will measure the effectiveness and efficiency of the test while achieving goals. How the organization will improve its test processes

  19. Test Strategy It is prepared at the program level and includes general test strategy, management principles, processes and approaches It is also a high level document and is usually written by the test manager It is generally prepared by the large scale projects in small scale projects, test strategies and test approach may be included in the test plan

  20. Test Strategy includes: Objectives/Scope of testing In-scope and Out-scope Test Levels Test types(Function/non-functional) Entry/Exit Risk Test environment Retesting & Regression approach

  21. Test Planning All test strategies specific to the project Test estimations and test schedule Test organization/roles/responsibilities Test deliverables Test reporting principles

  22. Testing Process Testing is a process rather than a single activity Test processes are a vital part of SDLC From planning to execution, each stage of the process is systematically planned This can be combined and evaluated to get expected results and outcomes The quality and effectiveness of the s/w testing is primarily determined by the quality of the test process

  23. Test Team Efficiency It is a very important aspect for development team and management If team is very efficient, less iterations of testing are required Every test manager must be aware of the efficiency of his team Test team efficiency is depend on organizational culture

  24. Mutation Testing It is used to check capability of test program and test cases to find defects The mutations introduced to source code are designed to imitate common programming errors A good unit test suite typically detects the program mutations and fails automatically The changes in mutant program are kept extremely small, so it does not affect the overall objective of the program

  25. Challenges in Testing Complete testing is impossible Setting the right process Lack of communication Lack of recourses Test coverage

  26. Test Team approach Proactive communication Role and responsibility of Team members Program Manager QA Lead Test analysist Test Engineer

  27. Process Problems faced by Testing Unstable Environment Tools being force-fed Lack of feedback loop Preconceived notions No documentation

  28. Cost aspect of Testing Prevention Cost Appraisal Cost Internal failure cost External Failure Cost

  29. Contents of Test Policy Document Definition of Testing Description of Test process Test evaluation Quality Level to be achieved Approach to Test process improvement

  30. Errors Errors can be present in software due to following reasons Programming Error Unclear requirements Changing requirements Software complexity Time Pressures Poorly Documented Codes

  31. Defects Defects can be simply defined as a variance between expected and actual Defects is an error found after the application goes into production Defects can be divided as follows: Wrong Missing Extra

  32. Developing Test Strategy A test strategy document is a high level document, developed by project manager It is normally derived from the business requirement specification Document It is not updated too often(Static Document) Process: Select & Rank test factors for given application Identify system development phases and related test factors Identify associated risks with each selected test factor in case if it is not achieved Identify phases in which risks of not meeting a test factor need to be addressed

  33. Developing Testing Methodologies(Plan) Acquire and study test strategy Determine the type of development project being executed Determine the type of software system being made Identify tactical risks related to development Determine when testing must occur during life cycle Steps to develop customised test strategy Type of development methodology impact test plan decisions

  34. Defining Test Policy Defining Test strategy Testing Process Preparing Test Plan Establishing Testing Objectives for be Achieved Designing Test Scenarios and Test cases Writing/ reviewing Test cases Defining Test Data Creation of test Bed Executing Test Cases Test results Test Analysis Performing Retesting Root Cause analysis

  35. Attitude Towards Testing It starts from test policy and ends to test strategy definition Cross-cultural Differences Lack of proper communication Developers may not accept the defects in first place Conflict between developer and tester

  36. Test methodologies Black box testing White box testing Grey box testing

  37. Black box testing In black box testing product is tested as per software specifications or requirement statement defined by business analysts/system analysts/customer. It involves testing system/components considering inputs, outputs and general functionalities as defined in requirement specification Mainly talks about the requirement specification given by customer It does not consider any internal processing by the system This testing is with the view as if a user is testing the system. Black box functional testing is generally performed for integration testing, system testing, and acceptance testing It is mainly driven by the test data used during testing.

  38. Advantages of black box testing It is the only method to prove that software dose what it is supposed to do and is dose not do something which can cause a problem to user/customer. It is the only method to show that software is living and it really works Performance an security testing can be done by black box testing methodology

  39. Disadvantages of black box testing Some logical errors and internal structure problems in coding can be missed in black box testing If an application calls common function again and again, and it will be tested so many times that it leads redundant testing

  40. White box testing White box testing is done on the basis of internal structures of software as defined by requirements, designs, coding standards and guidelines. It starts with reviews of requirements, designs and codes. Mainly deals with the structure and design of the software product. It requires that tester must have knowledge about development processes and artifacts including various platform, databases etc. Test case designing is based on how test artifacts are created and used during testing.

  41. Advantages of White box testing It can check whether the coding standards, commenting reuse have been followed or not White box testing is the cost effective way of finding defects as it helps in reducing stage contamination. Code complexity, commenting styles and reuse can only be verified by white box testing methodologies.

  42. Disadvantages of White box testing It does not ensure that user requirements are met correctly It does not establish whether decisions, conditions, paths and statements covered during reviews are sufficient or not for the given set of requirements. It is dominated by the use of checklists which may be retired directly in the work product and one must do a thorough analysis of all defects

  43. Grey box testing Grey box testing is done on the basis of internal structures of software as defined by requirements, designs, coding standards and guidelines as well as the functional and non-functional requirement specification. It combines verification techniques with validation techniques where one can ensure that software is build correctly and also works. It talks mainly about a combination approaches, viz black and white box testing at the same.

  44. Advantages of Grey box testing It checks whether the work product works in a correct manner, both functionally as well as structurally

  45. Disadvantages of Grey box testing Knowledge of some automation tools along with their configuration is essential for performing grey box testing.

  46. Raising Management Awareness for Testing Management should be made aware of the importance of testing a product because the funds required will be provided by them. Without adequate funding for testing, software quality suffers. Benefits of s/w testing are enormous Quality Satisfied Customer Bringing Profit User Experience Business Optimisation

  47. Skills Required by Tester Understanding Business needs Good communication skills Concepts of Testing Levels of Testing Knowing what to prioritize Continuous Learning Techniques for validation and verification Risk assessment and management Developing Test plan Execution of test plan

  48. REFERENCE : Software Quality Assurance by Tech-Max Publication Software Quality Assurance by SHETH Publication Software Testing: Principles, Techniques and Tools by M. G. Limaye

Related