<<

INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

THE TESTING TECHNIQUES Bomma RamaKrishna1,A.Abbash2 1 Assistant Professor,A.K.R.G College of Engineering and Technology,Nallajerla,A.P [email protected] 2 Professor, Aaligarh Muslim University,CSEDepartment [email protected]

ABSTRACT Testing is defined as a process of evaluation that either the specific system meets its is an investigation originally specified requirements or not. It is conducted to provide stakeholders with mainly a process encompassing validation information about the quality of and verification process that whether the the software product or service under test. developed system meets the requirements Software testing can also provide an defined by user. Therefore, this activity objective, independent view of the software results in a difference between actual and to allow the business to appreciate and expected result. Software Testing refers to understand the risks of software finding bugs, errors or missing requirements implementation. Test techniques include the in the developed system or software. So, this process of executing a program or is an investigation that provides the application with the intent of stakeholders with the exact knowledge about finding software bugs (errors or other the quality of the product. defects), and verifying that the software Software Testing can also be considered as a product is fit for use. Software testing risk-based activity. The important thing involves the execution of a software during testing process the software testers component or system component to evaluate must understand that how to minimize a one or more properties of interest. This large number of tests into manageable tests paper aims to discuss the existing as well as set, and make wise decisions about the risks improved testing techniques for the better that are important to test or what are not [1]. quality assurance purposes. Figure 1 shows the testing cost and errors 1. INTRODUCTION found a relationship. The Figure 1 clearly shows that cost goes up dramatically in Software testing is an activity to check testing both types i.e. functional and non- whether the actual results match the functional. The decision making for what to expected results and to ensure that the test or reduce tests then it can cause to miss is Defect free. It involves many bugs. The effective testing goal is to execution of a software component or do that optimal amount of tests so that extra system component to evaluate one or more testing effort can be minimized [1]. properties of interest. Software testing also According to Figure 1, Software testing is an helps to identify errors, gaps or missing important component of requirements in contrary to the actual assurance. The importance of testing can be requirements. It can be either done manually considered from life-critical software (e.g., or using automated tools. Some prefer flight control) testing which can be highly saying Software testing as a white box expensive because of risk regarding and Black Box Testing.

Volume 2, Issue II, July-Dec/2013 Page No:43 INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

schedule delays, cost overruns, or outright glitch affected more than 300,000 cancellation [2], and more about this [3][4]. traders on financial markets. It forced the government to postpone a 3bn pound debt sale.  Nissan cars have to recall over 1 million cars from the market due to software failure in the airbag sensory detectors. There has been reported two accident due to this software failure.  Starbucks was forced to close about 60 percent of stores in the U.S and Canada due to software failure in its Figure 1: Every Software Project has optimal test effort (Courtesy POS system. At one point store [1]). Testing has certain levels and steps served coffee for free as they unable according to which the person who does the to process the transaction. testing differs from level to level. The three  Some of the Amazon’s third party basic steps in the software testing are Unit retailers saw their product price is testing, Integration testing and System testing. reduced to 1p due to a software Each of these steps is either tested by the glitch. They were left with heavy software developer or the quality assurance losses. engineer who is also known as a software tester  Vulnerability in Window 10. This [5-10]. The testing mentioned above steps is bug enables users to escape from inclusive in the Lifecycle security sandboxes through a flaw in (SDLC). It is essential to break the software development into a set of modules where each the win32k system. module assigned to a different team or different  In 2015 fighter plane F-35 fell victim individual. After the completion of each module to a software bug, making it unable or unit, it is tested by the developer just to check to detect targets correctly. whether the developed module is working by the  China Airlines Airbus A300 crashed expectation or not, this is termed as Unit due to a software bug on April 26, Testing. The second step of testing within the 1994, killing 264 innocent live SDLC is Integration Testing. Once the modules  In 1985, Canada's Therac-25 of a single software system have been developed radiation therapy machine independently, they are integrated together and malfunctioned due to software bug often errors arise in the build once the and delivered lethal radiation doses integration has been done. to patients, leaving 3 people dead and critically injuring 3 others. Why is Software Testing Important?  In April of 1999, a software bug caused the failure of a $1.2 billion Testing is important because software bugs military satellite launch, the costliest could be expensive or even dangerous. accident in history Software bugs can potentially cause  In may of 1996, a software bug monetary and human loss, history is full of caused the bank accounts of 823 such examples. customers of a major U.S. bank to be credited with 920 million US dollars.  In April 2015, Bloomberg terminal in London crashed due to software 2. LITERATURE REVIEW

Volume 2, Issue II, July-Dec/2013 Page No:44 INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

S. Amland, have proposed this paper the conceptual essence of the techniques to extends a theory of risk‐based test planning use in the design and analysis of that was outlined in a previous paper, experiments and keeping the mathematical introduces techniques to facilitate it, calculations clear and simple. Basics of explains their practical application, and Experimentation is highlights opportunities for research to practically oriented and is specially written enquire into their feasibility and efficacy. for software engineers, all the examples . Nicola et al. have proposed being based on real and fictitious software Systematic functional testing is a engineering experiments. fundamental step of embedded control Jianyong Wang and Jiawei Han. have systems development cycle, as it allows to presented convincing arguments that a verify and validate their final frequent pattern mining algorithm should implementation. Various approaches to not mine all frequent patterns but only the black-box testing have been proposed, closed ones because the latter leads to not however they either involve test-case only more compact yet complete result set explosion or do not ensure the correctness but also better efficiency. However, most of of system behaviour in scenarios not the previously developed closed pattern covered by system specifications. To cope mining algorithms work under the candidate with such issues, a methodology which maintenance-and-test paradigm which is better suits both complexity and safety- inherently costly in both runtime and space criticality of the target system is needed. usage when the support threshold is low or This paper describes the ASF functional the patterns become long. We present, testing methodology, based on a grey-box BIDE, an efficient algorithm for mining approach aimed at generating and reducing frequent closed sequences without candidate an extensive set of influence variables and maintenance. We adopt a novel sequence test-cases. The methodology, embracing closure checking scheme called bidirectional different aspects of system test process extension, and prunes the search space more ( verification, regression deeply compared to the previous algorithms testing, etc.), was successfully applied to by using the BackScan pruning method and validate ASF implementation of SCMT (an the Scan-Skip optimization technique. A Italian project for an Automatic Train thorough performance study with both Protection System). The results obtained in sparse and dense real-life data sets has our testing experience proved the time demonstrated that BIDE significantly effectiveness and extensive coverage of the outperforms the previous algorithms: it proposed approach. consumes order(s) of magnitude less KAMSTIES, E. AND LOTT, C. are memory and can be more than an order of proposed the basics of Software Engineering magnitude faster. It is also linearly scalable Experimentation is a practical guide to in terms of database size. experimentation in a field which has long been underpinned by suppositions, 2. SOFTWARE TESTING LIFE CYCLE assumptions, speculations and beliefs. It (STLC) demonstrates to software engineers how Figure 3 discusses the STLC steps, stages and Experimental Design and Analysis can be phases a software undergo during the testing process. Though, there is no fixed standard of used to validate their beliefs and ideas. The the software or application undergoing STLC, book does not assume its readers have an in- and it varies from region to region throughout depth knowledge of mathematics, specifying the world.

Volume 2, Issue II, July-Dec/2013 Page No:45 INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

which representing the future direction of this area. Before stepping into any detail of the maturation study of these techniques, let us have a brief look at some technical concepts that are relative to our research. 1. The Power of Continuous Performance Testing

One of the key tenets of is to reduce the time between a change being made and the discovery of Figure 2: Software Testing Life Cycle defects within that change. “Fail fast” is the During the first phase of the STLC, the review of the software requirements takes place by the mantra we often use to communicate this Quality Assurance team in which they tenet. This approach provides us with the understand the core requirements according to benefit of allowing our development teams which the test will be conducted. If in the case of to quickly pinpoint the source of an issue any conflict arises, the team must coordinate compared to the old method of waiting with the development team to better understand weeks or months between a development and resolve the conflict. Test planning is the phase and a test phase. second and most important phase of the STLC, as this the step where all the testing strategy is For this approach to work, however, our defined. This phase deals with the preparation of development and QA teams have to be able the test plan, which will be the ultimate to run a consistent suite of automated tests deliverable of this phase. Test Plan is a mandatory document biased towards the regularly, and these tests must have functional testing of the application, without sufficient coverage to ensure a high Which the testing process is not possible. likelihood of catching the most critical bugs. Test designing phase is the phase where the test If a test suite is too limited in scope, then it case is developed, and the test planning activity misses many important issues; a test suite is ceased. Appropriate Test cases are written by that takes too long to run will increase the the QA team manually or in some cases, time between the introduction of a defect automated test cases are generated. Test case and our tester raising the issue. This is why specifies a set of test inputs or data, execution we introduce and continue to drive conditions, and expected results. The specified automated testing in our agile set of test data should be chosen such that it environments. produces expected result as well as intentionally erroneous data that will produce an error during the test. This is usually done to check what 2. How to Test an Application without conditions the application ceases to perform. Requirements? 3 THE TAXONOMY OF TESTING Techniques Software testing is a very broad Technically there are no applications area, which involves many other technical without requirements. Imagine software that and non-technical areas, such as does nothing specific but is simply line after specification, design and implementation, line of code stretching on. It will be like a maintenance, process and management stair case leading nowhere. issues in software engineering. Our study focuses on the state of the art in testing All software has requirements and is techniques, as well as the latest techniques targeted at a particular task; specifically it is

Volume 2, Issue II, July-Dec/2013 Page No:46 INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

a solution to a problem. So requirement-less “The goal is to create a bank of content that software isn’t a possibility. can be efficiently searched by testers trying to solve a particular problem – whether However, software without documented directly related to testing or indirectly e.g. requirements is a reality that unfortunately advice from others on managing people; most of us face more often that we like. The communicating to stakeholders etc.” only thing worse could be that, the documentation is insufficient, inaccurate or 3.1 The Goal of Testing terribly outdated. Sadly, this happens In different publications, the definition of too. Continue reading testing varies according to the purpose, process, and level of testing described. 3. Building an Effective Lean Testing Miller gives a good description of testing in Strategy [13]: The general aim of testing is to affirm the quality of software systems by Organizations are constantly under pressure systematically exercising the software in to streamline their operations and ensure that carefully controlled circumstances. Miller’s they are using their assets as effectively as description of testing views most software possible. However, this is often easier said quality assurances activities as testing. He than done. For example, if a new contends that testing should have the major vulnerability comes up in an app, more time intent of finding errors. A good test is one may be spent fixing the issue than normal that has a high probability of finding an as due to additional steps required to ensure yet undiscovered error, and a successful test that the software runs as expected. is one that uncovers an as yet undiscovered error. This general category of software To reduce wasted resources, businesses have testing activities can be further divided. For adopted lean practices that consider the purposes of this paper, testing is the expenditure of assets to be wasteful if dynamic analysis of a piece of software, they’re used for anything other than creating requiring execution of the system to produce value for the end customer. results, which are then compared to expected outputs. Here are a few strategies quality assurance 3.2 The Testing Spectrum professionals should concentrate on to Testing is involved in every stage of implement an effective lean testing software life cycle, but the testing done at strategy. Continue reading each level of software development is different in nature and has different 4. Discussion: Taxonomy of Software objectives. Testing Terms is done at the lowest level. It If you frequent TEST Huddle, now is the tests the basic unit of software, which is the time to provide some feedback. The TEST smallest testable piece of software, and is Huddle team is looking to create a taxonomy often called “unit”, “module”, or of terms which it will use to make resources “component” interchangeably. on the website easily discoverable by relevant subject matter. Integration Testing is performed when two or more tested units are combined into a larger structure. The test is often done on

Volume 2, Issue II, July-Dec/2013 Page No:47 INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

both the interfaces between the components something upon which the final delivery of and the larger structure being constructed, if the product is dependent. It is time its quality property cannot be assessed from consuming and an intensive process, its components. therefore, enhanced techniques and innovative methodologies are requisite. This System Testing tends to affirm the end-to- makes Automated Testing and other various end quality of the entire system. System test Test Metrics implementation before and is often based on the functional/requirement during the testing process. It can enhance the specification of the system. Non-functional existing testing methods, both for time quality attributes, such as reliability, effectiveness as well as for efficient and security, and maintainability, are also reliable final product which not only meets checked. the specified requirements but also provides is done when the with maximum operational efficiency. completed system is handed over from the Testing has been widely used as a way to developers to the customers or users. The help engineers develop high-quality purpose of acceptance testing is rather to systems, and the techniques for testing have give confidence that the system is working evolved from ad hoc activities means of than to find errors. small group of to an organized 3.3. Importance of Testing in Software discipline in software engineering. However, Development Process the maturation of testing techniques has The major role of software testing involves been fruitful, but not adequate. that there should be no discrepancy in the REFERENCES software development process. According to [1] P. Ron. Software testing. Vol. 2. one survey software errors costs U.S Indianapolis: Sam’s, 2001. economy 0.6 percent of the gross domestic [2] S. Amland, "Risk-based testing:" Journal of product and about 80% of the software Systems and Software, vol. 53, no. 3, pp. 287– 295, Sep. 2000. development costs of a project are spent on [3] Redmill and Felix, “Theory and Practice of identifying and fixing errors. Each software Risk-based Testing”, Software Testing, development life cycle has passed through a Verification and Reliability, Vol. 15, No. set of common phases one or more times. So 1,March 2005. starting activities early means we can catch [4] B. Agarwal et al., “Software engineering and small problems before they become big testing”. Jones & Bartlett Learning, 2010. problems later on. Starting testing activities [5] K. Bogdan. “Automated software test data early also provides the chance to review generation”. Software Engineering, IEEE requirements for important quality Transactions on 16.8 (1990): 870-879. attributes, to ask questions and to resolve [6] Jacobson et al. The unified software issues. There are three different testing development process. Vol. 1. Reading: Addison- Wesley, 1999. phases in SDLC are: [7] Everett et al., “Software testing: testing i. Test Analysis: tester tries to understand across the entire software development life about the project. cycle”. John Wiley & Sons, 2007. ii. Test Design: tester design the test cases [8] J.Irena. “Software Testing Methods and based on user requirement. Techniques”, 2008, pp. 30-35. iii. Test Execution: tester executes the test [9] Guide to the Software Engineering Body of cases and raise defects, if any. Knowledge, Swebok, A project of the IEEE CONCLUSION AND FUTURE WORK Society Professional Practices Testing is the most critical part of the Committee, 2004. Software Development Lifecycle, as it is

Volume 2, Issue II, July-Dec/2013 Page No:48 INTERNATIONAL JOURNAL OF RESEARCH ISSN NO : 2236-6124

[10] E. F. Miller, “Introduction to Software Testing Technology”, Software Testing & Validation Techniques, IEEE, 1981, pp. 4-16.

Volume 2, Issue II, July-Dec/2013 Page No:49