Software Testing – Levels, Methods and Types
Total Page:16
File Type:pdf, Size:1020Kb
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. System Testing Abstract-- An evaluation process to determine the presence of errors in computer Software is the Software testing. The 4. Acceptance Testing 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 Unit Testing 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 Integration Testing 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 Manual Testing. 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 Gray Box Testing 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 Exploratory Testing 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 Usability Testing 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 Compatibility Testing 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