By:M.R.M.Nowfeek MCS(SL),MSc in IT, PGD in IT, BSc in MIT, BSc in IT, HNDE, BTEC ,ICDL,DICAP Certified Trainer :IPICT/ASAP/EPASS Dip in ICT , Dip in IT , Dip in Hardware & Networking Higher Diploma in Business Management CS250-Management Information System
System Testing By:M.R.M.Nowfeek 2
Software Testing Software testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. By:M.R.M.Nowfeek 3
Software Testing Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. By:M.R.M.Nowfeek 4
Validations and Verification •Validation and verification ( V & V ) is the name given to the checking and analysis processes that ensure that software conforms to its specification and meets the needs of the customers who are paying for the software. • V & V is a whole life-cycle process. It starts with requirements reviews and continues through design reviews and code inspections to product testing. There should be V& V activities at each stage of software process. • Validation : Are we building the right product? Verification : Are we building the product right? By:M.R.M.Nowfeek 5
Types of Tests • Black-Box Testing • White-Box Testing • Gray-Box Testing By:M.R.M.Nowfeek 7
Black-box testing • Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, integration, system and acceptance. It is sometimes referred to as specification-based testing. 8 By:M.R.M.Nowfeek 8
Black-box testing • Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester. 9 By:M.R.M.Nowfeek 9
Black-box testing • Black Box testing takes an external perspective of the test object to derive test cases. • The test designer selects valid and invalid inputs and determines the correct output. • There is no knowledge of the test object's internal structure. • Typical black box test design techniques include: • Decision table testing • Pair wise testing • State transition tables • Use case testing • Cross-functional testing 10 By:M.R.M.Nowfeek 10
Black-box testing • White box testing is the testing of the internal workings or code of a software application. In contrast, black box or System Testing is the opposite. System test involves the external workings of the software from the user's perspective. 11 By:M.R.M.Nowfeek 11
Black-box testing  Approach to testing where the program is considered as a ‘black-box’  The program test cases are based on the system specification  Inputs from test data may reveal anomalous outputs i.e. defects  Test planning can begin early in the software process  Main problem - selection of inputs Program Requirements Test cases Test results By:M.R.M.Nowfeek 12
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, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases 13 By:M.R.M.Nowfeek 13
White-box testing • White box testing (clear box testing, glass box testing, transparent box testing, or structural testing) uses an internal perspective of the system to design test cases based on internal structure. • It requires programming skills to identify all paths through the software. 14 By:M.R.M.Nowfeek 14
White-box testing • Sometimes called Structural testing or glass box testing • Derivation of test cases according to program structure. Knowledge of the program used to identify additional test cases • Objective is to exercise all program statements (not all path combinations) Test results Code Code Code Code Code Code Code Code Code Code Co de Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Co de Code Code Code Code Code Code Code Code Code Code Code Code Co e Code Code Code Co de Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Test cases By:M.R.M.Nowfeek 15
16 • The tester chooses test case inputs to exercise paths through the code and determines the appropriate outputs. • Typical white box test design techniques include: • Control flow testing • Data flow testing • Branch testing White-box testing cont.. By:M.R.M.Nowfeek
Gray Box Testing 17 • Gray Box Testing is a software testing method which is a combination of Black Box Testing method and White Box Testing method. By:M.R.M.Nowfeek
Levels of testing 18 By:M.R.M.Nowfeek
Unit testing • Unit testing - testing performed on each module or block of code during development. Unit Testing is normally done by the programmer who writes the code 19 By:M.R.M.Nowfeek 19
Unit Testing –unit testing is a software verification and validation method in which a programmer tests if individual units of source code are fit for use. –Unit Testing is performed by using the White Box Testing method. 20 Who performs it? performed by software developers themselves By:M.R.M.Nowfeek 20
Unit Testing Unit Testing is carried out as a part of the coding task. This phase is based on the design of the software for a piece of code. Unit testing should prove the following about the code •Robust – the code should not fail under any circumstances. •Functionally correct – the code should carry out the task defined by the code design • Correct interface – the inputs and outputs from the code should be as defined in the design By:M.R.M.Nowfeek 21
Benefits of unit testing • Facilitates change –Unit testing allows the programmer to refractor code at a later date, and make sure the module still works correctly • Simplifies integration –Unit testing may reduce uncertainty in the units themselves and can be used in a bottom-up testing style approach. • Documentation –Unit testing provides a sort of living documentation of the system 22 By:M.R.M.Nowfeek 22
Limitations of unit testing 23 • Testing cannot be expected to catch every error in the program, it will not catch integration errors or broader system-level errors . • Software testing is a combinatorial problem By:M.R.M.Nowfeek
2. Integration testing • Integration is the phase in software testing in which individual software modules are combined and tested as a group. • The purpose of integration testing is to verify functional, performance, and reliability requirements placed on major design items. 24 By:M.R.M.Nowfeek 24
2. Integration Testing • Integration testing - testing done before, during and after integration of a new module into the main software package. This involves testing of each individual code module. One piece of software can contain several modules which are often created by several different programmers. It is crucial to test each module's effect on the entire program model. 25 By:M.R.M.Nowfeek 25
Integration/Sub-systems Testing Integration Testing is carried out after the separate software modules have been unit testing. Integration testing is based on the functional specification of the software. Integration testing should prove the following about the software: Integration - the modules of the system should interact as designed. Functionally correct - the system should behave as defined in the functional specification By:M.R.M.Nowfeek 26
27 METHOD Any of Black Box Testing, White Box Testing, and Gray Box Testing methods can be used. Normally, the method depends on your definition of ‘unit’. Integration testing cont.. By:M.R.M.Nowfeek
28 • Some different types of integration testing are, – top-down(an approach to integrated testing where the top integrated modules are tested and the branch of the module is tested step by step until the end of the related module.) – bottom-up (an approach to integrated testing where the lowest level components are tested first, then used to facilitate the testing of higher level components.) Integration testing cont.. By:M.R.M.Nowfeek
3. System Testing 29 System Testing is a level of the software testing process where a complete, integrated system/software is tested. METHOD Black Box Testing method is used. Who performs it independent Testers perform System Testing. By:M.R.M.Nowfeek
3. System Testing 30 • System testing - testing done by a professional testing agent on the completed software product before it is introduced to the market. By:M.R.M.Nowfeek
4. User acceptance testing • User Acceptance Testing (UAT) is a process to obtain confirmation by a Subject Matter Expert (SME), preferably the owner or client of the object under test, through trial or review, that a system meets mutually agreed-upon requirements. 31 By:M.R.M.Nowfeek 31
Acceptance Testing Acceptance testing is carried out at the customers site with the customer in attendance. The purpose of the acceptance test is to show to the customer that the software does indeed work. These tests are usually a sub set of the system test. By:M.R.M.Nowfeek 32
Test automation • Test automation is the use of software to – control the execution of tests – the comparison of actual outcomes to predicted outcomes – the setting up of test preconditions – test reporting functions. • There are two general approaches to test automation: • Code-driven testing • Graphical user interface testing. 33 By:M.R.M.Nowfeek 33
Test automation.. • Automated testing tools are sometimes referred to as Computer Aided Software Testing (CAST) tools. 34 By:M.R.M.Nowfeek 34
Alpha, Beta and Regression Testing Alpha Testing – Alpha testing is the first real use of the software product. Having completed system testing the product will be given to a small number of selected customers or possible just distributed within the company itself. The software will be used and errors reported to the development and maintenance team. Beta Testing – After alpha testing has been completed and any changes made a new version of the product will be released to much wider audience. The objective of Beta testing is to iron out the remaining problems with the product before it is put on the general release. Regression Testing – Regression testing carried out after any changes are made to a software application. The purpose of regression test is to prove that the change has been made correctly and that the change has not introduced any new errors. Regression test plans are usually a sub-set of the integration or systems test plans. It is designed to cover enough functionality to give confidence that the change has not effected any other part of the system. By:M.R.M.Nowfeek 35
Testing Strategy • A testing strategy should cover the following areas. – Strategy approach- A testing strategy should be formulated – Test plan – A test plan should be developed – Test design – The logic and reasoning behind the design of the tests should be explained. – Performing tests – Detailed procedures should be provided for all tests. – Documentation – It must be clear how the results of tests are to be documented. – Re-testing – The re-test procedure should be explained. 36 By:M.R.M.Nowfeek 36
The limitations of software testing • Poor testing process • Inadequate time • Future requirements not anticipated • Inadequate test data • Software changes inadequately test 37 By:M.R.M.Nowfeek 37

System Testing.pptx

  • 1.
    By:M.R.M.Nowfeek MCS(SL),MSc in IT,PGD in IT, BSc in MIT, BSc in IT, HNDE, BTEC ,ICDL,DICAP Certified Trainer :IPICT/ASAP/EPASS Dip in ICT , Dip in IT , Dip in Hardware & Networking Higher Diploma in Business Management CS250-Management Information System
  • 2.
  • 3.
    Software Testing Software testingis the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. By:M.R.M.Nowfeek 3
  • 4.
    Software Testing Software testingis an investigation conducted to provide stakeholders with information about the quality of the software product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. By:M.R.M.Nowfeek 4
  • 5.
    Validations and Verification •Validationand verification ( V & V ) is the name given to the checking and analysis processes that ensure that software conforms to its specification and meets the needs of the customers who are paying for the software. • V & V is a whole life-cycle process. It starts with requirements reviews and continues through design reviews and code inspections to product testing. There should be V& V activities at each stage of software process. • Validation : Are we building the right product? Verification : Are we building the product right? By:M.R.M.Nowfeek 5
  • 6.
    Types of Tests •Black-Box Testing • White-Box Testing • Gray-Box Testing By:M.R.M.Nowfeek 7
  • 7.
    Black-box testing • Black-boxtesting is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, integration, system and acceptance. It is sometimes referred to as specification-based testing. 8 By:M.R.M.Nowfeek 8
  • 8.
    Black-box testing • BlackBox Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester. 9 By:M.R.M.Nowfeek 9
  • 9.
    Black-box testing • BlackBox testing takes an external perspective of the test object to derive test cases. • The test designer selects valid and invalid inputs and determines the correct output. • There is no knowledge of the test object's internal structure. • Typical black box test design techniques include: • Decision table testing • Pair wise testing • State transition tables • Use case testing • Cross-functional testing 10 By:M.R.M.Nowfeek 10
  • 10.
    Black-box testing • Whitebox testing is the testing of the internal workings or code of a software application. In contrast, black box or System Testing is the opposite. System test involves the external workings of the software from the user's perspective. 11 By:M.R.M.Nowfeek 11
  • 11.
    Black-box testing  Approachto testing where the program is considered as a ‘black-box’  The program test cases are based on the system specification  Inputs from test data may reveal anomalous outputs i.e. defects  Test planning can begin early in the software process  Main problem - selection of inputs Program Requirements Test cases Test results By:M.R.M.Nowfeek 12
  • 12.
    White-box testing • White-boxtesting (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, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases 13 By:M.R.M.Nowfeek 13
  • 13.
    White-box testing • Whitebox testing (clear box testing, glass box testing, transparent box testing, or structural testing) uses an internal perspective of the system to design test cases based on internal structure. • It requires programming skills to identify all paths through the software. 14 By:M.R.M.Nowfeek 14
  • 14.
    White-box testing • Sometimescalled Structural testing or glass box testing • Derivation of test cases according to program structure. Knowledge of the program used to identify additional test cases • Objective is to exercise all program statements (not all path combinations) Test results Code Code Code Code Code Code Code Code Code Code Co de Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Co de Code Code Code Code Code Code Code Code Code Code Code Code Co e Code Code Code Co de Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Test cases By:M.R.M.Nowfeek 15
  • 15.
    16 • The testerchooses test case inputs to exercise paths through the code and determines the appropriate outputs. • Typical white box test design techniques include: • Control flow testing • Data flow testing • Branch testing White-box testing cont.. By:M.R.M.Nowfeek
  • 16.
    Gray Box Testing 17 •Gray Box Testing is a software testing method which is a combination of Black Box Testing method and White Box Testing method. By:M.R.M.Nowfeek
  • 17.
  • 18.
    Unit testing • Unittesting - testing performed on each module or block of code during development. Unit Testing is normally done by the programmer who writes the code 19 By:M.R.M.Nowfeek 19
  • 19.
    Unit Testing –unit testingis a software verification and validation method in which a programmer tests if individual units of source code are fit for use. –Unit Testing is performed by using the White Box Testing method. 20 Who performs it? performed by software developers themselves By:M.R.M.Nowfeek 20
  • 20.
    Unit Testing Unit Testingis carried out as a part of the coding task. This phase is based on the design of the software for a piece of code. Unit testing should prove the following about the code •Robust – the code should not fail under any circumstances. •Functionally correct – the code should carry out the task defined by the code design • Correct interface – the inputs and outputs from the code should be as defined in the design By:M.R.M.Nowfeek 21
  • 21.
    Benefits of unittesting • Facilitates change –Unit testing allows the programmer to refractor code at a later date, and make sure the module still works correctly • Simplifies integration –Unit testing may reduce uncertainty in the units themselves and can be used in a bottom-up testing style approach. • Documentation –Unit testing provides a sort of living documentation of the system 22 By:M.R.M.Nowfeek 22
  • 22.
    Limitations of unittesting 23 • Testing cannot be expected to catch every error in the program, it will not catch integration errors or broader system-level errors . • Software testing is a combinatorial problem By:M.R.M.Nowfeek
  • 23.
    2. Integration testing •Integration is the phase in software testing in which individual software modules are combined and tested as a group. • The purpose of integration testing is to verify functional, performance, and reliability requirements placed on major design items. 24 By:M.R.M.Nowfeek 24
  • 24.
    2. Integration Testing •Integration testing - testing done before, during and after integration of a new module into the main software package. This involves testing of each individual code module. One piece of software can contain several modules which are often created by several different programmers. It is crucial to test each module's effect on the entire program model. 25 By:M.R.M.Nowfeek 25
  • 25.
    Integration/Sub-systems Testing Integration Testingis carried out after the separate software modules have been unit testing. Integration testing is based on the functional specification of the software. Integration testing should prove the following about the software: Integration - the modules of the system should interact as designed. Functionally correct - the system should behave as defined in the functional specification By:M.R.M.Nowfeek 26
  • 26.
    27 METHOD Any of BlackBox Testing, White Box Testing, and Gray Box Testing methods can be used. Normally, the method depends on your definition of ‘unit’. Integration testing cont.. By:M.R.M.Nowfeek
  • 27.
    28 • Some differenttypes of integration testing are, – top-down(an approach to integrated testing where the top integrated modules are tested and the branch of the module is tested step by step until the end of the related module.) – bottom-up (an approach to integrated testing where the lowest level components are tested first, then used to facilitate the testing of higher level components.) Integration testing cont.. By:M.R.M.Nowfeek
  • 28.
    3. System Testing 29 SystemTesting is a level of the software testing process where a complete, integrated system/software is tested. METHOD Black Box Testing method is used. Who performs it independent Testers perform System Testing. By:M.R.M.Nowfeek
  • 29.
    3. System Testing 30 •System testing - testing done by a professional testing agent on the completed software product before it is introduced to the market. By:M.R.M.Nowfeek
  • 30.
    4. User acceptancetesting • User Acceptance Testing (UAT) is a process to obtain confirmation by a Subject Matter Expert (SME), preferably the owner or client of the object under test, through trial or review, that a system meets mutually agreed-upon requirements. 31 By:M.R.M.Nowfeek 31
  • 31.
    Acceptance Testing Acceptance testingis carried out at the customers site with the customer in attendance. The purpose of the acceptance test is to show to the customer that the software does indeed work. These tests are usually a sub set of the system test. By:M.R.M.Nowfeek 32
  • 32.
    Test automation • Testautomation is the use of software to – control the execution of tests – the comparison of actual outcomes to predicted outcomes – the setting up of test preconditions – test reporting functions. • There are two general approaches to test automation: • Code-driven testing • Graphical user interface testing. 33 By:M.R.M.Nowfeek 33
  • 33.
    Test automation.. • Automatedtesting tools are sometimes referred to as Computer Aided Software Testing (CAST) tools. 34 By:M.R.M.Nowfeek 34
  • 34.
    Alpha, Beta andRegression Testing Alpha Testing – Alpha testing is the first real use of the software product. Having completed system testing the product will be given to a small number of selected customers or possible just distributed within the company itself. The software will be used and errors reported to the development and maintenance team. Beta Testing – After alpha testing has been completed and any changes made a new version of the product will be released to much wider audience. The objective of Beta testing is to iron out the remaining problems with the product before it is put on the general release. Regression Testing – Regression testing carried out after any changes are made to a software application. The purpose of regression test is to prove that the change has been made correctly and that the change has not introduced any new errors. Regression test plans are usually a sub-set of the integration or systems test plans. It is designed to cover enough functionality to give confidence that the change has not effected any other part of the system. By:M.R.M.Nowfeek 35
  • 35.
    Testing Strategy • Atesting strategy should cover the following areas. – Strategy approach- A testing strategy should be formulated – Test plan – A test plan should be developed – Test design – The logic and reasoning behind the design of the tests should be explained. – Performing tests – Detailed procedures should be provided for all tests. – Documentation – It must be clear how the results of tests are to be documented. – Re-testing – The re-test procedure should be explained. 36 By:M.R.M.Nowfeek 36
  • 36.
    The limitations ofsoftware testing • Poor testing process • Inadequate time • Future requirements not anticipated • Inadequate test data • Software changes inadequately test 37 By:M.R.M.Nowfeek 37