Importance of Software Testing with Study of Various Testing Techniques & Automation Tools

Similar documents
1. Why is Testing Necessary? 2. What is Testing? 3. Seven Testing Principles

BASICS OF SOFTWARE TESTING AND QUALITY ASSURANCE. Yvonne Enselman, CTAL

Introduction. Fundamental concepts in testing

Participation of Testing to Attain a Degree of Quality of Software

T Software Testing and Quality Assurance Test Planning

Software Quality Assurance and Testing STUDY NOTES

Bugs are costly... Kinds of Quality Assurance

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Principles of Verification, Validation, Quality Assurance, and Certification of M&S Applications

QA ENGINEER JOB DESCRIPTION - JAIPUR

Testing. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

INTRODUCTION. It is the process used to identify the correctness, completeness and quality of developed computer software.

A Review Paper on Software Testing

Integration and Testing

BACKGROUND OF TESTING 4. The fundamental principles of the testing are as follows.

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R.

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

Assistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability.

Requirements: Into the Mind of the Author

ISTQB CTFL BH QuestionsAnswers with Explanation

Fundamentals Test Process

Agile Test Plan How to Construct an Agile Test Plan

ITonlinelearning LTD Registered Office: Suite 7 The Oast, 62 Bell Road, Sittingbourne, Kent, ME10 4HE Registered Number: England and Wales:

Software Testing(TYIT) Software Testing. Who does Testing?

1. Can you explain the PDCA cycle and where testing fits in?

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer STLC

Testing throughout the software life cycle. Software Testing: INF3121 / INF4121

Introduction to software testing and quality process

Test Workflow. Michael Fourman Cs2 Software Engineering

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

Software Development Life Cycle:

Knowledge Base for Writing Test Cases (Part 1)

asareri OUR COMPANY PROFILE Cloud Solutions Web Solutions Mobile Solutions UI/UX Solutions Our Location Connect with us

LECTURE 6 LEVELS OF SOFTWARE TESTING

Introduction to the Testing Maturity Model Enhanced TM (TMMe)

Introduction to Software Engineering

Software Testing Algorithm Units

BASICS OF SOFTWARE TESTING

Surviving the Top Ten Challenges of Software Testing

Linda Carrington, Wessex Commercial Solutions

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Top 20 SDET Interview Questions & Answers

IT Service Management

The Meaningful Hospitality Smart Hiring Guide

Test Management: Part I. Software Testing: INF3121 / INF4121

Testing. CxOne Standard

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

Introduction to Software Testing

Chapter 4 Document Driven Approach for Agile Methodology

Belatrix Software Factory

Software Testing Principles and Strategies

Exam questions- examples

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Cost of Changing the Activities in SDLC. Minimum of Cost at this level. code debuging unit test integration. Activity

7 Tips. for Better Automated QA Testing

UPGRADE CONSIDERATIONS Appian Platform

Avoiding Knowledge Management Pitfalls. Ten Common Mistakes and How to Avoid Them

Literature Review Shivkumar Hasmukhani Trivedi Anjul Bansal Swati V. Chande : Taraq Hussain Oleksander Lutsaieveskyi

developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens

32 BETTER SOFTWARE JULY/AUGUST 2009

Medical Device Product Development for Startups

MTAT : Software Testing

QS 9000 Awareness Information. Cayman Systems USA Elsmar.com Introduction to QS9000

Five reasons why Test Automation fails

Software product quality assurance

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Paragon Software Group

The best Paralegal interview questions you ve not been asking

Design Like a Pro. Boost Your Skills in HMI / SCADA Project Development. Part 3: Designing HMI / SCADA Projects That Deliver Results

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

An Application of Causal Analysis to the Software Modification Process

Software processes, quality, and standards VTV, fast methods, automation

6 SECRET TECHNIQUES TO IMPROVE SOFTWARE DEVELOPMENT OUTSOURCING

The Science of Running Effective User Acceptance Testing Cycles

Testing Close to and Post-Release: System, Acceptance, and Regression Testing

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Testing Masters Technologies

Testing: How much is enough? Ian Ashworth Coverity

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

7 Interview Questions You Need to be Asking

Software Reliability

EFFICIENT MARKETING PLANNING WITH PIVOTAL CRM

Introduction to Software Engineering

Software Quality Assurance

SteamDestroyer. The Ultimate Guide to Free Steam Games

Java & Testing. Slides adapted from Craig Zilles

REQUIREMENT DRIVEN TESTING. Test Strategy for. Project name. Prepared by <author name> [Pick the date]

Test Strategies Around the World Winning the War on Bugs Through Strategy

ISTQB Sample Question Paper Dump #11

Led by the Author Attended by a peer group Varying level of formality Knowledge gathering Defect finding

Requirements Gathering using Object- Oriented Models

It s time to be more Optimistic about Negative Testing 12 th Annual International Software Testing Conference Saroj Patnaik 20-October-2012

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

7 STEPS TO SUCCESSFUL RETENTION AUTOMATION YOUR GUIDE TO MAXIMIZING REVENUE FROM YOUR CUSTOMER DATA

Measuring Software Reliability

Critical Software Testing Processes

SOFTWARE TESTING REVEALED

Transcription:

Importance of Software Testing with Study of Various Testing Techniques & Automation Tools Shikha Nandi B. Tech (CSE), Galgotias University, Greater Noida, Uttar Pradesh, India Abstract- Software testing is the process to check the correctness, completeness and accuracy of the developed computer software with the intent of finding defects and solving them. It includes set of activities conducted to solve the errors in software so that it could be corrected before it is released to the end users. Testing should be started as early as possible or in the early phases of development. Testing plays a vital role in the process of developing a high-quality software. It is the process of verification and validation of software by checking whether it is meeting the requirements of the customer or not. This paper focuses importance of testing, various testing techniques and various tools used for testing in the process of developing a software. It not only focuses on the needs, objectives and principles of testing but also summarises traits of an outstanding software tester and a career in software testing fields. Index Terms- Software testing, software testing principles, verification, validation, requirements, A good software tester, software testing importance, career. I. INTRODUCTION Testing is not a PIT; it is a LADDER! Simply, testing is a method to check if whether the software is defect free or not. Testing is necessary because we all make mistakes. Some of those mistakes are unimportant and some are expensive and dangerous therefore there is need to check each and every thing that we produce. In technical terms, testing is the combination of verification and validation. Now let us take simple example to understand this concept clearly. Suppose you have to buy a dress from fashion show room. You will ask the sales person about your requirements and he will show you the dresses as per them. Now you will first select a dress and try it whether it will fit you or not. Now there can be two possibilities that a particular dress may fit you or it may be defective. This is nothing but a straightforward example of testing and it is important. Developing a software is not everybody s cup of tea. It requires a lot of hard work, interest and dedication. Everyone wants a perfect software that works well and that is quite obvious that they don t want to receive a defective piece. Hence from this we can understand that testing plays a crucial role in developing a high-quality software. Hence summarising all the above things, we can say that testing is defined as process of evaluating a software in manual or automated way. Testing is done by testers and not the developer. A successful test is the one that does detect the fault. So, this is all about understanding the need of software testing so that an error free, reliable, flexible and efficient software can be delivered to customers. II. NEED AND OBJECTIVES OF SOFTWARE TESTING We need to check each and everything that we produce or develop because things can always go wrong and we all are humans and humans make mistakes all the time. Ideally, we should get someone else to check our work as another person will spot the flaws easily than us. Major objectives of software testing are as follows: A. Finding defects which may get created unknowingly by the developer during the development of the software. B. To maintain the level of the quality of the software. C. To prevent defects. D. To ensure that the software satisfies all the requirements mentioned in the SRS as per the customers. E. To gain confidence of the customers, by providing them a good quality software. F. Testing should incur minimum time and cost. IJIRT 147920 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 299

Testing is too expensive- is a myth. There is a saying that, testing is less costly than the maintenance. Improper design of software is expensive to handle and there will be a great loss of time and money. In order to test a software properly, a tester must ensure a good test coverage to make sure that the software is as per the SRS. The test cases should be designed in such a way or with an intent to maximize the test coverage area and possibilities of finding errors. The test cases should be very effective. Higher the number of defects reported, more effective are the test cases. Test cases should cover each and every area of testing like compatibility of the software with the OS, hardware, performance testing, reliability and flexibility. Hence, testing makes sure that the software is ready to use. There are many other reasons apart from the ones mentioned above which clearly proves that software testing is important. III. PRINCIPLES OF TESTING A. Testing shows presence of defect- Testing can show that defects are present. It can t prove that there are no defects. Appropriate testing reduces defects. B. Exhaustive testing is impossible- In a software all combinations of inputs are usually infinite in number. Testing everything is not feasible except for important cases. Risk analysis and priority should be used to focus testing efforts. C. Early testing- Testing activities shall be started as early as possible. The later a bug is found the more it costs and take time. D. Defect clustering- Test efforts shall be focused proportionally. A small number of modules usually contains most of the defects discovered. E. Pesticide paradox- Some tests repeated over and over again tend to lose their effectiveness. New and modified test cases should be developed. F. Testing is context depended- Testing is done differently in different contexts in a project. For example safety critical software is tested in a different way from an e-commerce site. G. Absence of error fallacy- Finding and fixing itself does not help in these casesthe system built is unusable. Does not fulfil the user s needs and expectations. IV. TOP QUALITIES OF A HIGHLY EFFECTIVE TESTER Today, software development is growing rapidly and software industry too. Many people choose software testing as a career because of all the possibilities and learning opportunities. It is not simple but your passion can give you hike in the field. In this field various skills are required with some experience and lot of hard work everybody can adopt, develop and improve them. Testers are the backbone of all the companies. They are the most responsible people in a team of developing a project. As a tester, you should improve your work continuously and strive to become every day. Skills of a good tester: A. Creativity- A creative mind is one of the most desirable characteristics of a good software tester. They need to think in every possible way to build a smart solution. Thinking out of the box is all required where no one else can reach them is why creativity is imperative. B. Good communication skills- Good communication means to be in touch with technical development team and with customers too. It is of big value. Preparing an effective and detailed report of the testing with screenshots will provide a better understanding of the testers work. C. Improvement- A tester needs to be aware that there is always a scope of improvement. A good tester must also be a good listener and listen if anybody giving an idea because it will help them to improve the quality of the software. Testers must have a positive attitude always. D. Good eye for details- IJIRT 147920 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 300

This is helpful because the all the test case areas would be covered effectively and completely. This skill of a good tester avoids extra cost and time for the errors to be corrected and also this would not become a pain in the latter stages of the development phase. E. Knowledge about automation- Testers always need to choose the appropriate and latest set of tools with respect to time, money and many other things to identify and organise the test cases and later prioritize execution based on the test relevance. V. SOFTWARE QUALITY ATTRIBUTES Quality of the software is checked to see if it meets the requirements as specified in SRS- expectations, demand of the user and free from defects. According to the product developer, the product which meets the customer requirement defines its quality. If required functionality is provided with unfriendly manner, it defines quality for customer. Some of the software quality attributes are: A. Correctness- It refers to agreement of program code with its specifications. This means, application should meet up to its functional requirements. B. Reliability- It is a measure if the product is reliable enough to sustain in any conditions. It is measured in terms of working of project under different working environment and conditions. C. Efficiency- It is the ability of the software system to fulfil its purpose with the best possible utilization of all necessary resources. D. Functionality- The capacity of the software to provide functions which meet the state and implied needs, when the software is used. E. Usability- The capacity of the software to be understood, learnt and used by the customer. F. Portability- The capability of the software to be adopted for different specified environment without applying actions. G. Maintainability- The capability to be modified for purposes of making corrections, improvements or adaptation. VI. LEVELS OF TESTING A level of testing is the stage at which the software must be tested. There are 4 recognized levels of testing: A. Unit Testing- It is the process of taking a module in isolation from the rest of the software and comparing the actual results with the results defined in the SRS. In this even the smallest module is tested. Hence it is also known as module testing. Fault resolution and identification is easier and debugging becomes easier during unit testing. It is done by developers. B. Integration Testing- Determining the correctness of the interface of two modules that are being combined is the focus of integration testing. Unit tested modules are taken one by one and integrated incrementally so that debugging and fault isolation becomes easier. Each time a new module is integrated, the subsystem changes. This is why we test after adding each module. Integration testing can be done by three approaches C. System Testing- It incorporates the software with other system elements like hardware, OS, etc. a software may function well but system testing is done to ensure if the software is working or functioning in different environment or platforms other than the system for which it is developed. It focuses that entire system functions properly. Different types of system testing are followed like recovery testing, stress testing, regression testing, security testing etc. D. Acceptance Testing- It a level of testing where the system is tested for acceptability. It is done by the end users. It is IJIRT 147920 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 301

conducted when the software is developed for a specific customer. It allows the customer to validate all the requirements as mentioned in the SRS. Customer conducts the tests on the software and gives the feedback. Acceptance testing is of various types- Alpha testing, Beta testing, user acceptance testing and business acceptance testing. VII. VERIFICATION AND VALIDATION Verification- Are we building the system, right?? It is the process of evaluating a system or component to determine if the products of a development phase satisfy the conditions imposed at the start of that phase. Verification is applied during the development phases of the software or application. Activities involved in this is reviewing the documents. It is carried out by the internal quality assessment team. It is done prior to the validation process. Verification ensures that the software is defect free and minimizes the work load, money and time in future. Validation- Are we building the right system? It is the process of evaluating the system at the end of development process to determine whether it satisfies the specified requirements or not. Validation is at the end when the software is completely developed. The activities involved in this are- Black box and White box testing. It is carried out by the testing team and is done after verification. Both Verification and Validation are complementary activities. It we are able to find more errors before execution or during verification phase of the software development, then validation becomes easier as it minimizes the errors in the early phases of development. VIII. SOFTWARE TESTING AUTOMATION TOOLS Software testing can be done manually or with the help of some automation tools. Automation testing is done with the help of several tools. We have many tools available in the market, hence selection of proper tool is totally based on the project s requirement. Software testing tools can be divided into different categories: A. Functional testing tool- Functional determines the functionality of the system under different cases and conditions. a) Selenium- Selenium is an open source testing framework for web applications. It is portable. It a tool which is very easy and handy to use as it helps the tester to write the tests without even learning the scripting languages. It supports programming languages like C#, Java, Perl, PHP, Ruby, Python and Scala. b) Junit- It is a regression testing framework which are used by the developers to write the unit tests as they develop systems. It eliminates the gap between testers and developers. It is an open source framework designed in Java for writing and running tests. B. Load testing tool- Load tests determines the behaviour of the software under peak conditions, which tests the limits of the software. a) Web Load- It is an open source testing tool which is used to test the load on the software. It has limited number of features like limit to generate concurrent number of users. It is easy to use. It is also used for stress testing and performance testing for the web application. b) JMeter- Apache JMeter is designed to load test client/server software. It tests 100% pure Java application. It also increases the flexibility to maximum level by letting the testers creating assertions using regular expressions. C. Test Management Tool- These tools are used to store information which includes test plans, how testing can be done, report status of Q\A activities, etc. it has diverse set of features that allow them to test distinctively. It permits snappy access to data analysis. Some test management tools are: -RTH, TET Ware, QA Complete, Test Manager, SMARTS, etc. IX. DIFFERENCE BETWEEN DEFECT, BUG, ERROR, FAULT & FAILURE Defect- IJIRT 147920 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 302

It can be simply defined as a variance between actual and expected. It is an error found after the application goes into production. It is deviation of the customers requirement. Bug- Bug is terminology of tester. It is the result of a coding error. An error found in the development environment before the product is released in the market. Error- The difference between the actual output observed of the software and the correct expected output. Fault- It is a condition that causes a system to fail in performing it s required functionality. Fault occurs due to errors. Failure- The inability of a system to perform the required function according to its specifications. First and foremost, praises and thanks to the Almighty for blessings throughout my research paper to complete my research work successfully. I would like to express my sincere gratitude for their love and sacrifices for educating me and preparing me for future. I would also like to express my gratefulness to my friends and brother who constantly supported and encouraged me throughout my research work. Last but not the least, my special thanks go to all the people who have supported me to complete this research paper. REFERENCES [1] Pankaj Jalote, Software engineering, Wiley [2] Rajib Mall, Fundamentals of Software Engineering, PHI Publication [3] Naik & Tripathi, Software Testing Quality Assurance (1st edition), Wiley Publishing [4] Ms. Karuturi Sneha, Research on Software Testing Techniques & Software Automation Testing Tools, International Conference on energy, Communication, Data Analysis and Soft Computing (ICECDS- 2017) X. CONCLUSION Software testing is an activity which is carried out by the testing team for improving the quality of the software and make it according to the needs and requirements of the customers. To carry out testing in a more effective way, this paper presented a brief account of all the important points that are to be kept in mind while performing testing. Sometimes, many testers may know all the terminologies but are still not able to perform testing effectively, this is due to lack of knowledge of tools and they don t have a testing goal. Testing is not a cakewalk, it takes a lot of knowledge, attention, innovative mind and dedication. The goal of testing is to make the software robust, reliable, flexible, accurate and efficient so that it can be released in the market. Hence, there is a need to understand the hidden needs of testing and techniques using tools and to develop a software which verifies those hidden needs. KEEP CALM AND TEST ON! ACKNOWLEDGEMENT IJIRT 147920 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 303