System Testing & Acceptance Testing Unit 4
System Testing System Testing is a type of software testing that is performed on a completely integrated system to evaluate the compliance of the system with the corresponding requirements. In system testing, integration testing passed components are taken as input. ●The goal of integration testing is to detect any irregularity between the units that are integrated. System testing detects defects within both the integrated units and the whole system. The result of system testing is the observed behavior of a component or a system when it is tested. ● It is performed to test the system beyond the bounds mentioned in the software requirements specification (SRS) . System Testing is performed by a testing team that is independent of the development team and helps to test the quality of the system impartial. ● It has both functional and non-functional testing. System Testing is a black-box testing . System Testing is performed after the integration testing and before the acceptance testing.
Why is system testing important? i)Finds defects System testing helps identify errors, gaps, and missing requirements in the software. ii)Improves quality System testing helps improve the overall quality and satisfaction of the software. iii)Reduces support calls System testing helps reduce post-deployment troubleshooting and support calls. iv)Ensures compliance System testing helps ensure that the software meets the company's requirements and goals. v)Improves user experience System testing helps improve the user experience of the software.
System Testing Process System Testing is performed in the following steps: ● Test Environment Setup: Create testing environment for the better quality testing. ● Create Test Case: Generate test case for the testing process. ● Create Test Data: Generate the data that is to be tested. ● Execute Test Case: After the generation of the test case and the test data, test cases are executed. ● Defect Reporting: Defects in the system are detected. ● Regression Testing: It is carried out to test the side effects of the testing process. ● Log Defects: Defects are fixed in this step. ● Retest: If the test is not successful then again test is performed.
Types of System Testing ● Performance Testing: Performance Testing is a type of software testing that is carried out to test the speed, scalability, stability and reliability of the software product or application. ● Load Testing: Load Testing is a type of software Testing which is carried out to determine the behavior of a system or software product under extreme load. ● Stress Testing: Stress Testing is a type of software testing performed to check the robustness of the system under the varying loads. ● Scalability Testing: Scalability Testing is a type of software testing which is carried out to check the performance of a software application or system in terms of its capability to scale up or scale down the number of user request load.
Advantages of System Testing ● The testers do not require more knowledge of programming to carry out this testing. ● It will test the entire product or software so that we will easily detect the errors or defects which cannot be identified during the unit testing and integration testing. ● The testing environment is similar to that of the real time production or business environment. ● It checks the entire functionality of the system with different test scripts and also it covers the technical and business requirements of clients. ● After this testing, the product will almost cover all the possible bugs or errors and hence the development team will confidently go ahead with acceptance testing ● Verifies the overall functionality of the system.
Disadvantages of System Testing ● This testing is time consuming process than another testing techniques since it checks the entire product or software. ● The cost for the testing will be high since it covers the testing of entire software. ● It needs good debugging tool otherwise the hidden errors will not be found. ● Can be time-consuming and expensive. ● Requires adequate resources and infrastructure. ● Can be complex and challenging, especially for large and complex systems.
Functional Testing Functional testing checks an application, website, or system to ensure that it is doing exactly what it is meant to. Unlike other types of testing that might focus on performance, security, or usability, functional testing is primarily concerned with the correctness of the application’s functionality. Example of Functional Testing Consider the example of testing a login feature. When you perform functional testing in this context, you verify that users can log in when the credentials are submitted, see the right error messages upon submitting incorrect credentials and reset their password easily.
Purpose of Functional Testing Functional testing mainly involves black box testing and can be done manually or using automation. The purpose of functional testing is to: ● Test each function of the application: Functional testing tests each function of the application by providing the appropriate input and verifying the output against the functional requirements of the application. ● Test primary entry function: In functional testing, the tester tests each entry function of the application to check all the entry and exit points. ● Test flow of the GUI screen: In functional testing, the flow of the GUI screen is checked so that the user can navigate throughout the application.
What to Test in Functional Testing? The goal of functional testing is to check the functionalities of the application under test. It concentrates on: ● Basic Usability: Functional testing involves basic usability testing to check whether the user can freely navigate through the screens without any difficulty. ● Mainline functions: This involves testing the main features and functions of the application. ● Accessibility: This involves testing the accessibility of the system for the user. ● Error Conditions: Functional testing involves checking whether the appropriate error messages are being displayed or not in case of error conditions.
Types of Functional Testing Integration testing:Verifies that different modules or components of the software work together. Regression testing:Validates whether an application functions smoothly after code changes, updates, or improvements. Acceptance testing:Users or customers verify that the software meets their requirements. Smoke testing:Assesses whether the core functionalities of the application in a new software build are working as expected.
Non-Functional Testing Non-functional testing is a software testing technique that checks the non-functional attributes of the system. Non-functional testing is defined as a type of software testing to check non-functional aspects of a software application. It is designed to test the readiness of a system as per nonfunctional parameters which are never addressed by functional testing. Non-functional testing is as important as functional testing. Objectives of Non-functional Testing The objectives of non-functional testing are: ● Increased usability: To increase usability, efficiency, maintainability, and portability of the product. ● Reduction in production risk: To help in the reduction of production risk related to non- functional aspects of the product. ● Cost Reduction: To help in the reduction of costs related to non-functional aspects of the product.
Types of non-functional testing: ● Load testing: Validates that a system can handle peak loads and fail gracefully when it lacks resources ● Responsive testing: Evaluates a design on many screen widths to test how adaptable it is ● Volume testing: Identifies the point at which the system stability will degrade ● Stress testing: Pushes the software beyond its normal operational capacity to see how it handles extreme conditions ● Efficiency testing: Ensures the application performs efficiently under load Benefits of non-functional testing: ● Helps identify bottlenecks and assist with scalability plans ● Helps identify the application's upper limits and how it fails under stress ● Helps optimize resource utilization and improve overall system efficiency
Acceptance testing Acceptance testing is a quality assurance process that evaluates software to ensure it meets user needs and business requirements. It is formal testing according to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria or not and to enable the users, customers, or other authorized entities to determine whether to accept the system or not. Acceptance Testing is the last phase of software testing performed after System Testing and before making the system available for actual use.
Types of Acceptance Testing Here are the Types of Acceptance Testing 1. User Acceptance Testing (UAT) 2. Business Acceptance Testing (BAT) 3. Contract Acceptance Testing (CAT) 4. Regulations Acceptance Testing (RAT) 5. Operational Acceptance Testing (OAT) 6. Alpha Testing 7. Beta Testing
1. User Acceptance Testing (UAT) ● User acceptance testing is used to determine whether the product is working for the user correctly. ● Specific requirements which are quite often used by the customers are primarily picked for testing purposes. This is also termed as End-User Testing. 2. Business Acceptance Testing (BAT) ● BAT is used to determine whether the product meets the business goals and purposes or not. ● BAT mainly focuses on business profits which are quite challenging due to the changing market conditions and new technologies, so the current implementation may have to being changed which results in extra budgets.
3.Contract acceptance testing ● CAT is a contract that specifies that once the product goes live, within a predetermined period, the acceptance test must be performed, and it should pass all the acceptance use cases. ● Here is a contract termed a Service Level Agreement (SLA), which includes the terms where the payment will be made only if the Product services are in-line with all the requirements, which means the contract is fulfilled. ● Sometimes, this contract happens before the product goes live. ● There should be a well-defined contract in terms of the period of testing, areas of testing, conditions on issues encountered at later stages, payments, etc. 4.Regulation acceptance testing (RAT) Regulation Acceptance Testing, also known as Compliance Acceptance Testing, examines whether the software complies with the regulations. This includes governmental and business objectives and legal regulations.
4.Regulation acceptance testing (RAT) Regulation Acceptance Testing, also known as Compliance Acceptance Testing, examines whether the software complies with the regulations. This includes governmental and business objectives and legal regulations. 5. Operational acceptance testing (OAT) Also known as Operational Readiness Testing or Production Acceptance Testing, these test cases ensure there are workflows in place to allow the software or system to be used. This should include workflows for backup plans, user training, system testing phase and various maintenance processes and security checks. 6. Alpha Testing ● Alpha testing is used to determine the product in the development testing environment by a specialized testers team usually called alpha testers. 7. Beta Testing ● Beta testing is used to assess the product by exposing it to the real end-users, typically called beta testers in their environment. ● Feedback is collected from the users and the defects are fixed. Also, this helps in enhancing the product to give a rich user experience.
Advantages of Acceptance Testing 1. This testing helps the project team to know the further requirements from the users directly as it involves the users for testing. 2. Automated test execution. 3. It brings confidence and satisfaction to the clients as they are directly involved in the testing process. 4. It is easier for the user to describe their requirement. 5. It covers only the Black-Box testing process and hence the entire functionality of the product will be tested. Disadvantages of Acceptance Testing 6. Users should have basic knowledge about the product or application. 7. Sometimes, users don’t want to participate in the testing process. 8. The feedback for the testing takes a long time as it involves many users and the opinions may differ from one user to another user. 9. Development team is not participated in this testing process.
Important Questions Two mark questions 1.Identify the reason for System Testing(importance of system testing) 2.Define Acceptance Testing 3.write the process of system testing Five and Ten mark questions 1.Describe about System testing process with proper diagram 2.Illustrate about Functional testing 3.Describe about Non- Functional testing 4.Differentiate between Functional Testing and non-functional Testing 5.Demonstrate about System Testing 6.Explain about Acceptance Testing and it types

System Testing & Acceptance Testing

  • 1.
  • 2.
    System Testing System Testingis a type of software testing that is performed on a completely integrated system to evaluate the compliance of the system with the corresponding requirements. In system testing, integration testing passed components are taken as input. ●The goal of integration testing is to detect any irregularity between the units that are integrated. System testing detects defects within both the integrated units and the whole system. The result of system testing is the observed behavior of a component or a system when it is tested. ● It is performed to test the system beyond the bounds mentioned in the software requirements specification (SRS) . System Testing is performed by a testing team that is independent of the development team and helps to test the quality of the system impartial. ● It has both functional and non-functional testing. System Testing is a black-box testing . System Testing is performed after the integration testing and before the acceptance testing.
  • 4.
    Why is systemtesting important? i)Finds defects System testing helps identify errors, gaps, and missing requirements in the software. ii)Improves quality System testing helps improve the overall quality and satisfaction of the software. iii)Reduces support calls System testing helps reduce post-deployment troubleshooting and support calls. iv)Ensures compliance System testing helps ensure that the software meets the company's requirements and goals. v)Improves user experience System testing helps improve the user experience of the software.
  • 5.
    System Testing Process SystemTesting is performed in the following steps: ● Test Environment Setup: Create testing environment for the better quality testing. ● Create Test Case: Generate test case for the testing process. ● Create Test Data: Generate the data that is to be tested. ● Execute Test Case: After the generation of the test case and the test data, test cases are executed. ● Defect Reporting: Defects in the system are detected. ● Regression Testing: It is carried out to test the side effects of the testing process. ● Log Defects: Defects are fixed in this step. ● Retest: If the test is not successful then again test is performed.
  • 7.
    Types of SystemTesting ● Performance Testing: Performance Testing is a type of software testing that is carried out to test the speed, scalability, stability and reliability of the software product or application. ● Load Testing: Load Testing is a type of software Testing which is carried out to determine the behavior of a system or software product under extreme load. ● Stress Testing: Stress Testing is a type of software testing performed to check the robustness of the system under the varying loads. ● Scalability Testing: Scalability Testing is a type of software testing which is carried out to check the performance of a software application or system in terms of its capability to scale up or scale down the number of user request load.
  • 8.
    Advantages of SystemTesting ● The testers do not require more knowledge of programming to carry out this testing. ● It will test the entire product or software so that we will easily detect the errors or defects which cannot be identified during the unit testing and integration testing. ● The testing environment is similar to that of the real time production or business environment. ● It checks the entire functionality of the system with different test scripts and also it covers the technical and business requirements of clients. ● After this testing, the product will almost cover all the possible bugs or errors and hence the development team will confidently go ahead with acceptance testing ● Verifies the overall functionality of the system.
  • 9.
    Disadvantages of SystemTesting ● This testing is time consuming process than another testing techniques since it checks the entire product or software. ● The cost for the testing will be high since it covers the testing of entire software. ● It needs good debugging tool otherwise the hidden errors will not be found. ● Can be time-consuming and expensive. ● Requires adequate resources and infrastructure. ● Can be complex and challenging, especially for large and complex systems.
  • 10.
    Functional Testing Functional testingchecks an application, website, or system to ensure that it is doing exactly what it is meant to. Unlike other types of testing that might focus on performance, security, or usability, functional testing is primarily concerned with the correctness of the application’s functionality. Example of Functional Testing Consider the example of testing a login feature. When you perform functional testing in this context, you verify that users can log in when the credentials are submitted, see the right error messages upon submitting incorrect credentials and reset their password easily.
  • 11.
    Purpose of FunctionalTesting Functional testing mainly involves black box testing and can be done manually or using automation. The purpose of functional testing is to: ● Test each function of the application: Functional testing tests each function of the application by providing the appropriate input and verifying the output against the functional requirements of the application. ● Test primary entry function: In functional testing, the tester tests each entry function of the application to check all the entry and exit points. ● Test flow of the GUI screen: In functional testing, the flow of the GUI screen is checked so that the user can navigate throughout the application.
  • 12.
    What to Testin Functional Testing? The goal of functional testing is to check the functionalities of the application under test. It concentrates on: ● Basic Usability: Functional testing involves basic usability testing to check whether the user can freely navigate through the screens without any difficulty. ● Mainline functions: This involves testing the main features and functions of the application. ● Accessibility: This involves testing the accessibility of the system for the user. ● Error Conditions: Functional testing involves checking whether the appropriate error messages are being displayed or not in case of error conditions.
  • 13.
    Types of FunctionalTesting Integration testing:Verifies that different modules or components of the software work together. Regression testing:Validates whether an application functions smoothly after code changes, updates, or improvements. Acceptance testing:Users or customers verify that the software meets their requirements. Smoke testing:Assesses whether the core functionalities of the application in a new software build are working as expected.
  • 14.
    Non-Functional Testing Non-functional testingis a software testing technique that checks the non-functional attributes of the system. Non-functional testing is defined as a type of software testing to check non-functional aspects of a software application. It is designed to test the readiness of a system as per nonfunctional parameters which are never addressed by functional testing. Non-functional testing is as important as functional testing. Objectives of Non-functional Testing The objectives of non-functional testing are: ● Increased usability: To increase usability, efficiency, maintainability, and portability of the product. ● Reduction in production risk: To help in the reduction of production risk related to non- functional aspects of the product. ● Cost Reduction: To help in the reduction of costs related to non-functional aspects of the product.
  • 15.
    Types of non-functionaltesting: ● Load testing: Validates that a system can handle peak loads and fail gracefully when it lacks resources ● Responsive testing: Evaluates a design on many screen widths to test how adaptable it is ● Volume testing: Identifies the point at which the system stability will degrade ● Stress testing: Pushes the software beyond its normal operational capacity to see how it handles extreme conditions ● Efficiency testing: Ensures the application performs efficiently under load Benefits of non-functional testing: ● Helps identify bottlenecks and assist with scalability plans ● Helps identify the application's upper limits and how it fails under stress ● Helps optimize resource utilization and improve overall system efficiency
  • 17.
    Acceptance testing Acceptance testingis a quality assurance process that evaluates software to ensure it meets user needs and business requirements. It is formal testing according to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria or not and to enable the users, customers, or other authorized entities to determine whether to accept the system or not. Acceptance Testing is the last phase of software testing performed after System Testing and before making the system available for actual use.
  • 18.
    Types of AcceptanceTesting Here are the Types of Acceptance Testing 1. User Acceptance Testing (UAT) 2. Business Acceptance Testing (BAT) 3. Contract Acceptance Testing (CAT) 4. Regulations Acceptance Testing (RAT) 5. Operational Acceptance Testing (OAT) 6. Alpha Testing 7. Beta Testing
  • 19.
    1. User AcceptanceTesting (UAT) ● User acceptance testing is used to determine whether the product is working for the user correctly. ● Specific requirements which are quite often used by the customers are primarily picked for testing purposes. This is also termed as End-User Testing. 2. Business Acceptance Testing (BAT) ● BAT is used to determine whether the product meets the business goals and purposes or not. ● BAT mainly focuses on business profits which are quite challenging due to the changing market conditions and new technologies, so the current implementation may have to being changed which results in extra budgets.
  • 20.
    3.Contract acceptance testing ●CAT is a contract that specifies that once the product goes live, within a predetermined period, the acceptance test must be performed, and it should pass all the acceptance use cases. ● Here is a contract termed a Service Level Agreement (SLA), which includes the terms where the payment will be made only if the Product services are in-line with all the requirements, which means the contract is fulfilled. ● Sometimes, this contract happens before the product goes live. ● There should be a well-defined contract in terms of the period of testing, areas of testing, conditions on issues encountered at later stages, payments, etc. 4.Regulation acceptance testing (RAT) Regulation Acceptance Testing, also known as Compliance Acceptance Testing, examines whether the software complies with the regulations. This includes governmental and business objectives and legal regulations.
  • 21.
    4.Regulation acceptance testing(RAT) Regulation Acceptance Testing, also known as Compliance Acceptance Testing, examines whether the software complies with the regulations. This includes governmental and business objectives and legal regulations. 5. Operational acceptance testing (OAT) Also known as Operational Readiness Testing or Production Acceptance Testing, these test cases ensure there are workflows in place to allow the software or system to be used. This should include workflows for backup plans, user training, system testing phase and various maintenance processes and security checks. 6. Alpha Testing ● Alpha testing is used to determine the product in the development testing environment by a specialized testers team usually called alpha testers. 7. Beta Testing ● Beta testing is used to assess the product by exposing it to the real end-users, typically called beta testers in their environment. ● Feedback is collected from the users and the defects are fixed. Also, this helps in enhancing the product to give a rich user experience.
  • 22.
    Advantages of AcceptanceTesting 1. This testing helps the project team to know the further requirements from the users directly as it involves the users for testing. 2. Automated test execution. 3. It brings confidence and satisfaction to the clients as they are directly involved in the testing process. 4. It is easier for the user to describe their requirement. 5. It covers only the Black-Box testing process and hence the entire functionality of the product will be tested. Disadvantages of Acceptance Testing 6. Users should have basic knowledge about the product or application. 7. Sometimes, users don’t want to participate in the testing process. 8. The feedback for the testing takes a long time as it involves many users and the opinions may differ from one user to another user. 9. Development team is not participated in this testing process.
  • 23.
    Important Questions Two markquestions 1.Identify the reason for System Testing(importance of system testing) 2.Define Acceptance Testing 3.write the process of system testing Five and Ten mark questions 1.Describe about System testing process with proper diagram 2.Illustrate about Functional testing 3.Describe about Non- Functional testing 4.Differentiate between Functional Testing and non-functional Testing 5.Demonstrate about System Testing 6.Explain about Acceptance Testing and it types