SOFTWARE TESTING Aarti Singh
Total Page:16
File Type:pdf, Size:1020Kb
© November 2015 | IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002 SOFTWARE TESTING Aarti Singh ABSTRACT:- Software testing is an investigation can be installed and run in its conducted to provide stakeholders with intended environments, and information about the quality of the product or achieves the general result its stakeholders service under test Software testing can also desire. provide an objective, independent view of Software testing can be conducted as soon as thesoftware to allow the business to appreciate executable software (even if partially complete) and understand the risks of software exists. The overall approach to software implementation.In this paper we will discuss development often determines when and how testing about testing levels suct as alpha testing , beta is conducted. For example, in a phased process, most testing, unit testing , integrity testing, testing testing occurs after system requirements have been cycle and their requirement n comparison defined and then implemented in testable programs. between varius testing such as static and dynamic HISTORY: testing. The separation of debugging from testing was initially introduced by Glenford J. Myers in INTRODUCTION: 1979.[] Although his attention was on breakage Software testing involves the execution of a testing ("a successful test is one that finds a bug) it software component or system component to illustrated the desire of the software engineering evaluate one or more properties of interest. In community to separate fundamental development general, these properties indicate the extent to which activities, such as debugging, from that of the component or system under test: verification. Dave Gelperin and William C. meets the requirements that guided its Hetzel classified in 1988 the phases and goals in design and development, software testing in the following stages: responds correctly to all kinds of inputs, Until 1956 – Debugging oriented performs its functions within an acceptable 1957–1978 – Demonstration oriented time, 1979–1982 – Destruction oriented is sufficiently usable, 1983–1987 – Evaluation oriented 1988–2000 – Prevention oriented There are many approaches available in software testing. Reviews, walkthroughs, or inspections are TESTING METHODS: referred to asstatic testing, whereas actually executing programmed code with a given set of test cases is referred to as dynamic testing. Static testing Static vs. dynamic testing: is often implicit, as proofreading, plus when programming tools/text editors check source code IJIRT 142783 268 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY © November 2015 | IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002 structure or compilers (pre-compilers) check syntax using stubs/drivers or execution from and data flow as static program analysis. Dynamic a debugger environment. testing takes place when the program itself is run. Static testing involves verification, whereas Dynamic testing may begin before the program is dynamic testing involves validation. Together they 100% complete in order to test particular sections of help improve software quality. Among the code and are applied to discrete functions or techniques for static analysis, mutation testing can modules. Typical techniques for this are either be used to ensure the test-cases will detect errors which are introduced by mutating the source code. statements in the program to be executed at White-box testing least once) White-box testing (also known as clear box Fault injection methods – intentionally testing, glass box testing, transparent box introducing faults to gauge the efficacy of testing and structural testing) tests internal testing strategies structures or workings of a program, as opposed to Mutation testing methods the functionality exposed to the end-user. In white- Static testing methods box testing an internal perspective of the system, as Code coverage tools can evaluate the completeness well as programming skills, are used to design test of a test suite that was created with any method, cases. The tester chooses inputs to exercise paths including black-box testing. This allows the through the code and determine the appropriate software team to examine parts of a system that are outputs. This is analogous to testing nodes in a rarely tested and ensures that the most circuit, e.g. in-circuit testing (ICT) important function points have been tested.[22] Code While white-box testing can be applied at coverage as a software metric can be reported as a the unit, integration and system levels of the percentage for: software testing process, it is usually done at the unit Function coverage, which reports on level. It can test paths within a unit, paths between functions executed units during integration, and between subsystems Statement coverage, which reports on the during a system–level test. Though this method of number of lines executed to complete the test design can uncover many errors or problems, it test might not detect unimplemented parts of the Decision coverage, which reports on specification or missing requirements. whether both the True and the False branch Techniques used in white-box testing include: of a given test has been executed API testing – testing of the application 100% statement coverage ensures that all code paths using public and private APIs (application or branches (in terms of control flow) are executed programming interfaces) at least once. This is helpful in ensuring correct Code coverage – creating tests to satisfy functionality, but not sufficient since the same code some criteria of code coverage (e.g., the may process different inputs correctly or incorrectly. test designer can create tests to cause all Black-box testing IJIRT 142783 269 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY © November 2015 | IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002 descriptions of the software, including specifications, requirements, and designs to derive test cases. These tests can be functional or non- Black box functional, though usually functional. diagram Specification-based testing may be necessary to Black-box testing treats the software as a "black assure correct functionality, but it is insufficient to box", examining functionality without any guard against complex or high-risk situations.[25] knowledge of internal implementation. The testers One advantage of the black box technique is that no are only aware of what the software is supposed to programming knowledge is required. Whatever do, not how it does it.[23] Black-box testing methods biases the programmers may have had, the tester include: equivalence partitioning, boundary value likely has a different set and may emphasize analysis, all-pairs testing, state transition different areas of functionality. On the other hand, tables, decision table testing, fuzz testing, model- black-box testing has been said to be "like a walk in based testing, use case testing, exploratory a dark labyrinth without a flashlight."[26]Because testing and specification-based testing. they do not examine the source code, there are Specification-based testing aims to test the situations when a tester writes many test cases to functionality of software according to the applicable check something that could have been tested by only requirements.[24]This level of testing usually one test case, or leaves some parts of the program requires thorough test cases to be provided to the untested. tester, who then can simply verify that for a given This method of test can be applied to all levels of input, the output value (or behavior), either "is" or software "is not" the same as the expected value specified in testing: unit, integration, system and acceptance. It the test case. Test cases are built around typically comprises most if not all testing at higher specifications and requirements, i.e., what the levels, but can also dominate unit testing as well. application is supposed to do. It uses external recording of the entire test process – capturing everything that occurs on the test system in video Visual testing format. Output videos are supplemented by real- The aim of visual testing is to provide developers time tester input via picture-in-a-picture webcam with the ability to examine what was happening at and audio commentary from microphones. the point of software failure by presenting the data Visual testing provides a number of advantages. The in such a way that the developer can easily find the quality of communication is increased drastically information she or he requires, and the information because testers can show the problem (and the is expressed clearly.[27][28] events leading up to it) to the developer as opposed At the core of visual testing is the idea that showing to just describing it and the need to replicate test someone a problem (or a test failure), rather than just failures will cease to exist in many cases. The describing it, greatly increases clarity and developer will have all the evidence he or she understanding. Visual testing therefore requires the IJIRT 142783 270 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY © November 2015 | IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002 requires of a test failure and can instead focus on the test tool to visually record everything that occurs on cause of the fault and how it should be fixed. a system becomes very important in order to Visual testing is particularly well-suited for document the steps taken to uncover the bug.[Visual environments that deploy agile methods in