International Journal of Electrical, Electronics and Computer Systems (IJEECS) ______

Software Testing – Levels, Methods and Types

Priyadarshini. A. Dass Telecommunication Engineering, Dr Ambedkar Institute of Technology, Bangalore, India

3. Abstract-- An evaluation process to determine the presence of errors in computer Software is the . The 4. Software testing cannot completely test software because exhaustive testing is rarely possible due to time and resource constraints. Testing is fundamentally a comparison activity in which the results are monitored for specific inputs. The software is subjected to different probing inputs and its behavior is evaluated against expected outcomes. Testing is the dynamic analysis of the product meaning that the testing activity probes software for faults and failures while it is actually executed. Thus, the selection of right strategy at the right time will make the software testing efficient and effective. In this paper I have described software testing techniques which are Figure 1: Levels of Testing classified by purpose. 2.1 Keywords-- ISTQB, unit testing, integration, system, Unit Testing is a level of the software testing process acceptance, black-box, white-box, regression, load, stress, where individual units/components of a software/system endurance testing. are tested. The purpose is to validate that each unit of I. INTRODUCTION the software performs as designed. A unit is the smallest testable part of software. It usually has one or a few Software testing is a set of activities conducted with the inputs and usually a single output. Unit Testing is the intent of finding errors in software. It also verifies and first level of testing and is performed prior to Integration validate whether the program is working correctly with Testing. Unit Testing is normally performed by software no bugs or not. It analyzes the software for finding bugs. developers themselves or their peers. Software testing is not just used for finding and fixing of bugs but it also ensures that the system is working 2.2 according to the specifications. Testing is the process of Integration Testing is a level of the software testing analyzing a software item to detect the differences process where individual units are combined and tested between existing and required conditions (that is, bugs) as a group. The purpose of this level of testing is to and to evaluate the features of the software item . expose faults in the interaction between integrated units. Testing is a concurrent lifecycle process of engineering, Test drivers and test stubs are used to assist in using and maintaining software (i.e. testing artifacts) in Integration Testing. Integration Testing is performed order to measure and improve the quality of the software after Unit Testing and before System Testing. Either being tested . Software testing is also used to test the Developers themselves or independent Testers perform software for other software quality factors like Integration Testing. reliability, usability, integrity, security, capability, efficiency, portability, maintainability, compatibility etc. 2.3 System Testing Testing approach differs for different software’s level System Testing is a level of the software testing process of testing and purpose of testing. Software testing should where a complete, integrated system/software is tested. be performed efficiently and effectively, within the The purpose of this test is to evaluate the system’s budgetary and scheduling limits. compliance with the specified requirements. System The main purpose of testing can be quality assurance, Testing is performed after Integration Testing and before reliability estimation, validation or verification . Acceptance Testing. Normally, independent Testers perform System Testing. According to II. LEVELS OF TESTING ISTQB(International Software Testing Qualification 1. Unit Testing Board), System testing is the process of testing an 2. Integration Testing ______ISSN (Online): 2347-2820, Volume -4, Issue-1, 2016 44 International Journal of Electrical, Electronics and Computer Systems (IJEECS) ______integrated system to verify that it meets specified selecting representative values from each partition as requirements. test data. 2.4 Acceptance Testing Boundary Value Analysis: Boundary Value Analysis is a software test design technique that involves Acceptance Testing is a level of the software testing determination of boundaries for input values and process where a system is tested for acceptability. The selecting values that are at the boundaries and just purpose of this test is to evaluate the system’s inside/outside of the boundaries as test data. compliance with the business requirements and assess whether it is acceptable for delivery. Testing does not Cause Effect Graphing: Cause Effect Graphing is a usually follow a strict procedure and is not scripted but software test design technique that involves identifying is rather ad-hoc. Acceptance Testing is performed after the cases (input conditions) and effects (output System Testing and before making the system available conditions), producing a Cause-Effect Graph, and for actual use. generating test cases accordingly. III. METHODS OF TESTING. 3.2 White Box Testing 3.1 Black-Box Testing. White Box Testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box 3.2 White-Box Testing. Testing, Code-Based Testing or Structural Testing) is a 3.3 Grey-Box Testing. software testing method in which the internal structure/design/implementation of the item being tested 3.4 . is known to the tester. The tester chooses inputs to 3.5 Automated Testing. exercise paths through the code and determines the appropriate outputs. Programming know-how and the 3.6 Agile Testing. implementation knowledge is essential. White box 3.1 Black Box Testing testing is testing beyond the user interface and into the nitty-gritty of a system. 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. These tests can be functional or non-functional, though usually functional.

Figure 3: White Box Testing This method is named so because the software program, in the eyes of the tester, is like a white/transparent box; inside which one clearly sees. Some important types of white box testing techniques are: Figure 2: Black Box Testing 1. Control Flow Testing This method is named so because the software program, 2. Branch Testing in the eyes of the tester, is like a black box; inside which 3. Path Testing one cannot see. 4. Data flow Testing This method of attempts to find errors in the following categories: 5. Loop Testing a. Incorrect or missing functions 3.3 b. Interface errors Gray Box Testing is a software testing method which is a combination of Black Box Testing method and White c. Errors in data structures or external database access Box Testing method. In Black Box Testing, the internal d. Behavior or performance errors structure of the item being tested is unknown to the tester and in White Box Testing the internal structure in e. Initialization and termination errors known. In Gray Box Testing, the internal structure is Black Box Method partially known. This involves having access to internal data structures and algorithms for purposes of designing Equivalence partitioning: Equivalence Partitioning is a the test cases, but testing at the user, or black-box level. software test design technique that involves dividing Gray Box Testing is named so because the software input values into valid and invalid partitions and program, in the eyes of the tester is like a gray/semi- transparent box, inside which one can partially see. ______ISSN (Online): 2347-2820, Volume -4, Issue-1, 2016 45 International Journal of Electrical, Electronics and Computer Systems (IJEECS) ______

3.4 Manual Testing 4.3 is performed to explore the functionality when the requirements are not clear Manual Testing is a type of software testing where Testers manually execute test cases without using any 4.4 is performed to determine the automation tools. Manual testing is the most of primitive extent to which the software is easy to learn and operate of all testing types. Manual Testing helps find bugs in 4.5 is a testing performed to the software system. Any new application must be verify whether software is compatible with all other manual tested before its testing can be automated. supported software and hardware. Manual testing requires more effort but is necessary before deciding on automation. Manual Testing does not 4.6 Globalization testing is performed to verify require knowledge of any testing tool. A basic Software whether the application works in all supported Testing Fundamental is 100% Automation is not languages. possible. This makes Manual Testing imperative. 4.7 Localization testing is performed to test whether the 3.5 Automated Testing application works in a particular language. Automation Testing means using an automation tool to 4.8 Exhaustive testing is the process of testing the execute your test case suite. The automation software functionality with all possible valid and invalid values. can also enter test data into the System under Test, 4.9 Throughput Testing is performed to determine the compare expected and actual results and generate number of transactions that can be handled detailed test reports. simultaneously by the website. demands considerable investments of 4.10 Performance Testing is performed to determine money and resources. Successive development cycles will require execution of same test suite repeatedly. By how fast some aspect of a system performs under a using a test automation tool it’s possible to record this particular workload such as: test suite and re-play it as required. Once the test suite is 4.11 is conducted to check whether the automated, no human intervention is required. system is capable of handling an anticipated load. 3.6 Agile Testing 4.12 is conducted to check the systems Agile testing involves all members of a cross-functional capability beyond the anticipated load. agile team, with special expertise contributed by testers, 4.13 Spike Testing is conducted to check the systems to ensure delivering the business value desired by the stability when the load is suddenly increased for a short customer at frequent intervals, working at a sustainable duration . pace. 4.14 Response Time Testing is conducted to check how IV. TYPES OF TESTING long a system takes to complete a requested task. The following section briefly describes 25 Types of 4.15 is conducted to check the Testing such as: performance problems which occur by running the system at high load for a prolonged period of time. 4.1 is the repetition of the earlier successful tests in order to make sure that change to the 4.16 Endurance Testing is conducted to check for software has not introduced side effects. The likelihood memory leaks or other problems that may occur due to of any code change impacting functionalities that are not prolonged execution. directly associated with the code is always there and it is 4.17 Scalability Testing is performed to determine the essential that regression testing is conducted to make additional need of servers to handle the increased load. sure that fixing one thing has not broken another things. During regression testing, new test cases are not created 4.18 is performed to ensure that the but previously created test cases are re-executed . User has no problems while installing the software. 4.2 , also known as “Build Verification 4.19 Upgrade Testing is performed to ensure that the Testing”, is a type of software testing that comprises of a latest version of the software works successfully after non-exhaustive set of tests that aim at ensuring that the upgrading from the older version. most important functions work. The results of this 4.20 Backward Compatibility Testing is performed to testing is used to decide if a build is stable enough to ensure that the latest version of the software works proceed with further testing. The term „smoke testing‟, successfully with the assets created by the older version. it is said, came to software testing from a similar type of hardware testing, in which the device passed the test if it 4.21 Recovery Testing is performed to verify the did not catch fire (or smoked) the first time it was turned system’s ability to recover from various degrees of on. Smoke testing covers most of the major functions of failure the software but none of them in depth.

______ISSN (Online): 2347-2820, Volume -4, Issue-1, 2016 46 International Journal of Electrical, Electronics and Computer Systems (IJEECS) ______

4.22 Authentication Testing is a type of testing in involves all the phases as the main stream testing life which one will try to enter different combinations of cycle, makes sure that only the username and passwords to verify that the application authorized personnel can access the system. is allowing authorized users only REFERENCES 4.23 Alpha Testing is a testing of an application when [1] I. Somerville. Software Engineering. Sixth development is nearing completion; minor design Edition. Addison-Wesley, 2001. changes may still be made as a result of such testing. [2] Software testing glossary available at 4.24 Beta Testing is a Testing when development and http://www.aptest.com/glossary.html#performanc testing are essentially completed and final bugs and etesting problems need to be found before final release. Typically done by end-users or others, not by [3] Software Testing and Quality Assurance White programmers or testers. Papers by Pointe Technology Group. 4.25 Security Testing is a process to determine that an [4] The Wikipedia, the free encyclopedia. Article on information system protects data and maintains SoftwareTesting functionality as intended. http://en.wikipedia.org/wiki/Software_testing, September 2006. V. CONCLUSION [5] IEEE Standard 829-1998. IEEE Standard for Software testing is an important technique for the Software Test Documentation. IEEE, 1998. improvement and measurement of a software system [6] R. D. Craig, S. P. Jaskiel. Systematic Software quality. But it is really not possible to find out all the Testing. Artech House Publishers, Boston- errors in the program. So, the fundamental question London, 2002. arises, which strategy we would adopt to test. In my paper, I have described some of the most prevalent and [7] S. Cornett. Code Coverage Analysis. Bull Seye commonly used strategies of software testing which are Testing classified as black box, white box and grey box testing Technology.http://www.bullseye.com/coverage.h techniques, Performance and various other types of tml, Dec2005. testing, which are an independent discipline and



______ISSN (Online): 2347-2820, Volume -4, Issue-1, 2016 47