The document discusses different levels of software testing including unit testing, integration testing, and system testing. Unit testing involves testing individual software components or units in isolation. Integration testing involves testing integrated units to check for defects in interaction between components. System testing involves testing the full system from a user perspective to check for end-to-end flow and regression defects.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
42 views59 pages
Chapter Five-Levels of Testing
The document discusses different levels of software testing including unit testing, integration testing, and system testing. Unit testing involves testing individual software components or units in isolation. Integration testing involves testing integrated units to check for defects in interaction between components. System testing involves testing the full system from a user perspective to check for end-to-end flow and regression defects.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59
Levels of software testing
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 1
.
… procedure for finding the missing
areas and avoiding overlapping and repetition between the development life cycle stages.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 2
The first level of testing involves analysing each unit or an individual component It is testing of small chunks of codes It is an early identification of defects It is the first level of functional testing The primary purpose or reason is ◦ to validate unit components with their performance. ◦ to test the correctness of inaccessible code. A unit component is ◦ an individual function or regulation of the application ◦ the smallest testable part of the software. Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 3 Why unit testing ◦ helps tester and developers to understand the base of code that makes them able to change defect causing code quickly. ◦ helps in the documentation. ◦ fixes defects very early in the development phase ◦ It helps with code reusability by migrating code and test cases.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 4
Example – understand unit testing concepts
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 5
Example… Amount transfer, requirements as follows
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 6
Example… Below are the application access details, which is given by the customer ◦ URL→ login Page ◦ Username/password/OK → home page ◦ To reach Amount transfer module follow the below Loans → sales → Amount transfer While performing unit testing, we should follow some rules, which are as follows: ◦ To start unit testing, at least we should have one module. ◦ Test for positive values ◦ Test for negative values ◦ No assumption required
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 7
Example… When we feel that the maximum test coverage is achieved, we will stop the testing. Now, we will start performing the unit testing on the different components such as ◦ From account number(FAN) ◦ To account number(TAN) ◦ Amount ◦ Transfer ◦ Cancel
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 8
Example…
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 9
Example… For the TAN component ◦ Provide the values just like we did in From account number (FAN) components For Amount component ◦ Provide the values just like we did in FAN and TAN components. For Transfer component ◦ Enter valid FAN value ◦ Enter valid TAN value ◦ Enter the correct value of Amount ◦ Click on the Transfer button→ amount transfer successfully( confirmation message) For Cancel Component ◦ Enter the values of FAN, TAN, and amount. ◦ Click on the Cancel button → all data should be cleared.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 10
Advantage ◦ Uses module approach - any part can be tested without waiting for completion of another parts testing. ◦ Allows the developer to refactor code after a number of days and ensure the module still working without any defect Disadvantage ◦ It cannot identify integration or broad level error ◦ Evaluation of all execution paths is not possible, so unit testing is not able to catch each and every error in a program.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 11
Unit testing tools(Nunit, PHPunit, Parasoft Jtest, EMMA, Junit) Junit testing tools – lab exercise ◦ Install jdk and Install eclipse ◦ Download and add junit4.jar/junit5.jar in eclipse ◦ Download and add hamcrestcore.jar in eclipse ◦ Write code and test it Mutation testing ◦ Muclipse(Junit + extendedOj) tools – lab exercise) ◦ Install jdk and Install eclipse ◦ Download and add junit4.jar/junit5.jar in eclipse ◦ Download and install muclipse and extendedOJ.jar in eclipse ◦ Write code and test it
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 12
The second level of the software testing in which Units or individual components of the software are tested in a group. The focus is to expose defects at the time of interaction between integrated components or units. It can be top down, bottom up, hybrid/sandwich and big bang integration testing. Once all the components or modules are working independently, then checking the data flow between the dependent modules is known as integration testing.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 13
Example
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 14
Example - First, we will login as a user P to amount transfer and send Rs200 amount, the confirmation message should be displayed on the screen as amount transfer successfully. Now logout as P and login as user Q and go to amount balance page and check for a balance in that account = Present balance + Received Balance. Therefore, the integration test is successful. Also, we check if the amount of balance has reduced by Rs200 in P user account. Click on the transaction, in P and Q, the message should be displayed regarding the data and time of the amount transfer.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 15
Example 2 Let us assume that we have a Gmail application where we perform the integration testing. First, we will do functional testing on the login page, which includes the various components such as username, password, submit, and cancel button. Then only we can perform integration testing.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 16
Example 2… Scenarios1: ◦ First, we login as P users and click on the Compose mail and performing the functional testing for the specific components. ◦ Now we click on the Send and also check for Save Drafts. ◦ After that, we send a mail to Q and verify in the Send Items folder of P to check if the send mail is there. ◦ Now, we will log out as P and login as Q and move to the Inbox and verify that if the mail has reached. Scenarios 2: We also perform the integration testing on Spam folders. If the particular contact has been marked as spam, then any mail sent by that user should go to the spam folder and not in the inbox.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 17
Example 3… ◦ As we can see in the below image, we will perform the functional testing for all the text fields and every feature. Then we will perform integration testing for the related functions. We first test the add user, list of users, delete user, edit user, and then search user.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 18
Why integration testing ◦ To check the interaction of software modules with the database is an erroneous free or not. ◦ Requirements can be changed or enhanced at the time of module development. These new requirements may not be tested at the level of unit testing hence integration testing becomes mandatory. ◦ Incompatibility between modules create error. ◦ To test hardware's compatibility with software. ◦ If exception handling is inadequate between modules, it can create bugs.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 19
It is a series of different type of tests with the purpose to exercise and examine the full working of an integrated systems against requirements. ◦ includes testing of a fully integrated software system. To check the end-to-end flow of an application or the software as a user It is end-to-end testing where the testing environment is similar to the production environment. ◦ It is a Black box testing as it includes testing of the external working of the software. Testing follows user's perspective to identify minor defects. Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 20 System testing includes ◦ Verification of input functions of the application to test whether it is producing the expected output or not. ◦ Testing of integrated software by including external peripherals to check the interaction of various components with each other. ◦ Testing of the whole system for End to End testing. ◦ Behavior testing of the application via a user's experience
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 21
Regression testing ◦ It is performed under system testing to confirm and identify that if there's any defect in the system due to modification in any other part of the system. ◦ It makes sure, any changes done during the development process have not introduced a new defect and also gives assurance; old defects will not exist on the addition of new software over the time.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 22
Load testing - tested to clarify whether the system can work under real-time loads or not. Functional testing Recovery testing ◦ confirm reliability, trustworthiness, accountability of the system and all are lying on recouping skills of the system. It should be able to recover from all the possible system crashes successfully. Migration testing ◦ performed to ensure that if the system needs to be modified in new infrastructure so it should be modified without any issue. Software and hardware testing - the system intends to check hardware and software compatibility. Stress testing – pushes the load beyond specified or expected limits
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 23
Volume testing – a way to test even a certain components increase radically in size. Response time test – measures how long to complete a group of tasks Capacity test – measure the ability of a system to support additional workload without degrading performance unacceptability duration testing – places a load on system for an extended time looking for degradation of services Hot spot test – stressing a particular subsystem looking for a weak point. Spike(bounce) test – injecting a very high load for a short period of time to see how system handles a sudden increase in load
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 24
Why system testing important ◦ Gives 100% assurance of system performance as it covers end to end function of the system. ◦ It includes testing of System software architecture and business requirements. ◦ It helps in mitigating live issues and bugs even after production. ◦ It uses both existing system and a new system to feed same data in both and then compare the differences in functionalities of added and existing functions so, the user can understand benefits of new added functions of the system.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 25
It is used to authenticate a code change in the software does not impact the existing functionality of the product. Regression testing is making sure that the product works fine with new functionality, bug fixes, or any change in the existing feature.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 26
It attempts to verify ◦ The application works as specified even after the change/additions/modification were made to it. ◦ The original functionality continues to work as specified even after changes/modification to the software application ◦ The changes/additions/modification to the software application have not introduced any new bugs
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 27
Why regression testing ◦ Any software change can cause existing functionality to break ◦ Changes to a software component could impact dependent components ◦ It is commonly observed that a software fix could cause other bugs Performed when ◦ When new functionality added to the application ◦ When there is a Change Requirement. ◦ When there is an environment change ◦ When the defect fixed ◦ When there is a performance issue fix
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 28
Test cases are re-executed to check the previous functionality of the application is working fine, and the new changes have not produced any bugs. It can be performed on a new build when there is a significant change in the original functionality. Regression means Re-test those parts of the application, which are unchanged. Regression tests are also known as the Verification Method. Test cases are often automated. Test cases are required to execute many times and running the same test case again and again manually, is time-consuming and tedious too.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 29
The need comes when software maintenance includes enhancements, error corrections, optimization, and deletion of existing features. These modifications may affect system functionality. Regression Testing becomes necessary.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 30
Retest-all - all the test case suits should be re- executed. Regression test selection - a selected test-case suit will execute rather than an entire test-case suit. The selected test case suits divided in two cases ◦ Reusable test cases - can use in succeeding regression cycle. ◦ Obsolete test cases - can't use in succeeding regression cycle. Prioritization of test cases - Prioritize the test case depending on business impact, critical and frequently functionality used. ◦ Selection of test cases will reduce the regression test suite.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 31
Unit Regression Testing - to test only the changed unit, not the impact area, because it may affect the components of the same module. Example
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 32
Regional Regression testing - to test the modification along with the impact area or regions ◦ we are testing the impact area because if there are dependable modules, it will affect the other modules also. ◦ Example
Full regional Regression testing - testing the
modified features and all the remaining (old) features.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 33
Advantages ◦ Increases the product's quality. ◦ It ensures that any bug fix or changes do not impact the existing functionality of the product. ◦ Automation tools can be used. ◦ It makes sure the issues fixed do not occur again. Disadvantages ◦ Should be done for small changes because even a slight change can create issues in the existing functionality. ◦ If in case automation is not used in the project for testing, it will time consuming and tedious task.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 34
Selenium – for web application ◦ lab experiment. Ranorex Studio – for desktop, web, and mobile apps with built-in Selenium Web Driver. Quick Test Professional (QTP) - Regression and Functional Testing. It is a Data-Driven, keyword-based tool
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 35
formal testing based on user requirements and function processing. It determines whether the software is conforming specified requirements and user requirements or not. It is a kind of black box testing done by the customer before accepting the final product. It may some minor errors which can be identified when the system is used by the end user in the actual scenario. Acceptance testing is the squeezing of all the testing processes that have done previously.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 36
Why acceptance testing ◦ During the development of a project if there are changes in requirements and it may not be communicated effectively to the development team. ◦ Developers develop functions by examining the requirement document on their own understanding and may not understand the actual requirements of the client. ◦ When some minor errors which can be identified only when the system is used by the end user in the actual scenario.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 37
Steps of performing acceptance testing ◦ Requirement analysis the testing team analyses requirement document to find out the objective of the developed software. Requirement document Project charter Business use case SRS … Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 38 Steps of performing acceptance testing… ◦ Test plan creation Test Plan Creation outlines the whole strategy of the testing process. This strategy is used to ensure and verify whether the software is conforming specified requirements or not.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 39
Steps of performing acceptance testing… ◦ Test case designing This step includes the creation of test cases based on test plan documents. Test cases should be designed in a way that can cover most of the acceptance testing scenario.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 40
Steps of performing acceptance testing… ◦ Test case execution Test Case Execution includes execution of test cases by using appropriate input values. The testing team collects input values from the end user then all test cases are executed by both tester and end user to make sure software is working correctly in the actual scenario.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 41
Steps of performing acceptance testing… ◦ Conformation objectives After successful completion of all testing processes, testing team confirms that the software application is bug-free and it can be delivered to the client.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 42
Advantages ◦ It increases the satisfaction of clients as they test application itself. ◦ The information gathered through acceptance testing used by stakeholders to better understand the requirements of the targeted audience. ◦ It improves requirement definition as client tests requirement definition according to his needs. Disadvantages ◦ Customers are not willing to do that; it defeats the whole point of acceptance testing. ◦ If test cases are written by someone else, the customer does not understand them, so tester has to perform the inspections by themselves only.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 43
Alpha testing - is conducted in the organization and tested by a representative group of end-users at the developer's side and sometimes by an independent team It is simulated or real operational testing at an in- house site. It can be white box or black box depending on the requirements. Alpha testing ensures that the software performs flawlessly and does not impact the reputation of the organization; the company implements final testing in the form of alpha testing.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 44
Processes/steps in alpha testing ◦ Requirement Review: Review the design of the specification and functional requirement ◦ Test Development: Based on the outcome of the requirement review, develop the test cases and test plan. ◦ Test case design: Execute the test plan and test cases. ◦ Logging Defects: Logging the identified and detected bug found in the application. ◦ Bug Fixation: fix the all identified bug. ◦ Retesting: When all the issues are solved, and fixed retesting is done.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 45
Phases ◦ First Phase: In-house developers of software engineers do the first phase of testing. During the alpha testing, a tester finds a lot of bugs, crashes, missing features, and docs. ◦ Second Phase: involves the quality assurance staff performs the alpha testing by involving black box and white box techniques.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 46
Reasons why alpha ◦ Refines the software product by finding and rectifying bugs that weren't discovered through previous tests. ◦ Alpha testing allows the team to test the software in a real-world environment. ◦ To ensure the success of the software product. ◦ Alpha testing validates the quality, functionality of the software, and effectiveness of the software before it released in the real world.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 47
Features of alpha testing ◦ Alpha testing is happening at the stage of the completion of the software product. ◦ Alpha testing is in the labs where we provide a specific and controlled environment. ◦ Alpha testing is in-house testing, which is performed by the internal developers and testers within the organization. ◦ There is not any involvement of the public. ◦ Alpha testing helps to gain confidence in the user acceptance of the software product. ◦ Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 48 Advantages of alpha testing ◦ It reduces the delivery time of the project. ◦ It provides a complete test plan and test cases. ◦ Free the team member for another project. ◦ Every feedback helps to improve software quality. ◦ It provides a better observation of the software's reliability and accountability.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 49
Disadvantages of alpha testing ◦ It does not involve in-depth testing of the software. ◦ The difference between the tester's tests the data for testing the software and the customer's data from their perspective may result in the discrepancy in the software functioning. ◦ The lab environment is used to simulate the real environment. But still, the lab cannot furnish all the requirement of the real environment such as multiple conditions, factors, and circumstances.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 50
Beta Testing is a type of Field Test/salient testing which performs at the end of the software testing life cycle. It can be considered as external user acceptance testing. It is a black box testing executed after the alpha testing. It is carried out at the client's or customer's site.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 51
Features ◦ It is used in a real environment at the user's site. ◦ Helps in providing the actual position of the quality. ◦ Testing performed by the client, stakeholder, and end-user. ◦ It is done before releasing it into the market. ◦ It performs in the absence of tester and the presence of real users ◦ It is generally done for testing software products like utilities, operating systems, and applications, etc. Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 52 Beta version ◦ Closed beta version – private beta – it is release to a group of selected or invited people. ◦ Open beta version – public beta – open for the public – any user can be a tester Life cycle of Beta testing ◦ Planning – testing strategy / define goal of testing ◦ Participant recruitment – recruit a group of selected end users ◦ Product launch – launch / release / install the product and users test the product ◦ Collect and evaluate feedback ◦ Closure – exit criteria
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 53
Open beta testing ◦ Tested by a large number of people before the final release ◦ Open for the public before release ◦ Users report the bug and improvement to the organization Closed beta testing ◦ Tested by a limited and selective number of persons ◦ Not open to the public Traditional beta testing ◦ a software product delivered to the target market, and the feedback from the users collected. ◦ Assists the quality of the software is improved, and developers can make the changes.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 54
Public beta testing ◦ similar to open testing - allows the product is delivering to the end-users worldwide, with the aid of various online channels available in the world. ◦ Feedback and evaluated data are collected for future improvement Technical beta testing ◦ Involves delivering the software product to the internal groups of the organization. ◦ However, the data and feedback provided by the employees of the organization.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 55
Focused beta testing ◦ focused on monitoring and evaluating a specific feature or component of the software. ◦ The software released to the market and user's experience assessed and collected to make the required changes. Post release beta testing ◦ the product delivered to the market for the use of the end-users. ◦ Their feedback, reactions, and experience are collect for the future release of the software.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 56
Advantages ◦ Focuses on the customer's satisfaction. ◦ It helps to reduce the risk of product failure via user validations. ◦ Helps to get direct feedback from users. ◦ It helps to detect the defect and issues in the system, which is overlooked and undetected by the team of software testers. ◦ Helps the user to install, test, and send feedback regarding the developed software.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 57
Disadvantages ◦ A software engineer has no control over the process of the testing, as the users in the real-world environment perform it. ◦ A time-consuming process and can delay the final release of the product. ◦ Beta testing does not test the functionality of the software in depth as software still in development. ◦ It is a waste of time and money to work on the feedback of the users who do not use the software themselves properly.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 58
Tools ◦ Watir ◦ Fitness tool
Any question ?
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 59