Software Testing Jobs & Resume

More

Software Testing Skills

More

Software Testing Career

More
7
Apr
2015
0

Software Testing – What, Why, When to start and stop?

Software Testing is a process of validating and verifying that a software product meets the business and technical requirements that guided its design and development.

The overall objective to not to find every software bug that exists, but to uncover situations that could negatively impact the customer, usability and/or maintainability.

It involves the execution of a software component or system component to evaluate one or more properties of interest. In general, these properties indicate the extent to which the system under test:

  • achieves the general result its stakeholders desire.
  • responds correctly to all kinds of inputs,
  • performs its functions within an acceptable time,
  • is easy to use.

Software testing can provide objective, independent information about the quality of software and risk of its failure to users and other stakeholders.

Software testing can be conducted as soon as a working prototype is available.

Software Testing is an investigation to know about the quality of the system under test.

The overall approach to software development often determines when and how testing is conducted.

For example, in a phased process, most testing occurs after system requirements have been defined and then implemented in testable programs. In contrast, under an Agile approach, requirements, programming, and testing are often done concurrently.

As the number of possible tests for even simple software components is practically infinite, all software testing uses some strategy to select tests that are feasible and relevant for the available time and resources.

As a result, software testing typically attempts to execute application with the intent of finding software bugs that could have negative impact to product and business.

Why software is tested?

Software developed by developers has to be tested before passing on to the customer and there is too many reasons for it. Some of the main reasons are :

  1. To err is human – Testing is necessary because we all make mistakes. We need to check everything and anything we produce because things can always go wrong – humans make mistakes all the time – it is what we do best! Because we should assume our work contains mistakes, we all need to check our own work. However, some mistakes come from bad assumptions and blind spots, so we might make the same mistakes when we check our own work as we made when we did it. So we may not notice the flaws in what we have done. Ideally, we should get someone else to check our work – another person is more likely to spot the flaws.
  2. Lack of experience – Chances of making mistakes is compounded when we lack experience, don’t have the right information, misunderstand, or if we are careless, tired or under time pressure. All these factors affect our ability to make sensible decisions – our brains either don’t have the information or cannot process it quickly enough.
  3. Dealing with complex technical or business problems – We are more likely to make errors when dealing with perplexing technical or business problems, complex business processes, code or infra-structure, changing technologies, or many system interactions. This is because our brains can only deal with a reasonable amount of complexity or change, when asked to deal with more and that too in less time our brains may not process the information we have correctly.
  4. Determine that products satisfy specified requirements – Some of the testing we do is focused on checking products against the specification for the product; for example we review the design to see if it meets requirements, and then we might execute the code to check that it meets the design. If the product meets its specification, we can provide that information to help stakeholders judge the quality of the product and decide whether it is ready for use.
  1. Detect defects – We most often think of software testing as a means of detecting faults or defects that in operational use will cause failures. Finding the defects helps us understand the risks associated with putting the software into operational use, and fixing the defects improves the quality of the products. However, identifying defects has another benefit. With root cause analysis, they also help us improve the development processes and make fewer mistakes in future work.
  2. It is essential since it makes sure of the Customer’s reliability and their satisfaction in the product.
  3. To ensure the Quality of the product – Quality product delivered to the customers helps in gaining their confidence. Testing is necessary in order to provide the facilities to the customers like the delivery of high quality product or software application which requires lower maintenance cost and hence results into more accurate, consistent and reliable results.
  4. Testing is required for an effective performance of software application or product.
  5.  

    Also Read: Types of Software Testing, Test LifeCycle, Software Development Modals

     

  6. To minimize cost – It is important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development.
  7. To stay in the business – If the product quality is bad it can destroy the company’s reputation and with so much competition these days and so many options available to the customers, bad quality has a potential of bringing down a company.

When to perform Testing?

Testing has to be performed for every new product delivered or for every new functionality implemented in an existing or for every modified functionality.

In short, you perform testing whenever there is a change in the system, no matter how small it is.

What type of testing to perform or when to perform it i.e. at what phase it has to be performed depends on various factor like time available for testing, knowledge of tester, risks involved, type of application, type of development model etc.

Please refer to separate post to know more about types of testing, Software development life cycle and Software development methodologies to better understand the question and think it over.

When to stop testing?

You would want to stop testing after you have executed all the possible combinations and found all bugs. Wouldn’t you? But it can only be done by Alice as she lives in Wonderland. In our world, exhaustive testing is a myth.

When to stop testing is one of most difficult decisions tester has to take.

Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done.

Common factors in deciding when to stop could be:

  • Completion criteria can be derived from test plan and test strategy document. Also, re-check your test coverage.
  • Completion criteria should be based on Risks.
  • Test cases completed with certain percentage passed and test coverage is achieved.
  • There are no known critical bugs
  • Coverage of code, functionality, or requirements reaches a specified point;
  • Defect rate falls below a certain level, now testers are not getting any priority 1, 2, or 3 bugs.
  • As testing is a never ending process we can never assume that 100 % testing has been done, we can only minimize the risk of shipping the product to client with agreed percentage of testing done. The risk can be measured by Risk analysis.
  • Build and installation completely automated and all tests (unit, gui, integration, system) executed automatically.

It all boils down to the confidence level. Do you feel confident that the system is tested enough?

Obviously, “confidence level” is highly subjective since you can never feel completely certain, but certain enough — and that is what we are looking for. For that, you need to create a list of common factor like mentioned above, commonly known as definition of done and should be something your whole team agrees upon.

Here, we have tried to give you a bird’s eye view of software testing. We continuously want to improve and appreciate you comments and suggestions in order to do so .


Comments 0

Share your thoughts


  • Stay informed about new articles & course offerings

  • HERE IS WHAT YOU’LL RECEIVE

    • Get Articles on Upcoming Training, Seminars and Workshops1
    • Get Tips and Tricks for Resume, Coverletter and Interview Prepration
    • Latest Industry Updates
    • Your Details are safe with us
  • Other Training Courses

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    JMeter is an open source Java application designed to load test, functional behavior and effective performance testing tool for QA. This course is designed for QA to familiarize with JMeter load test tool. The main focus is to practically use of…

    More

    Software Testing Intensive(STI) is designed to assist newcomers to join the software testing field and gain intermediate to advanced level software testing skills. The candidates will be able to manage to perform testing throughout the test life cycle. This course also helps the intermediate testers to gain the absolute confidence in software testing field in web as well as mobile application.

    More

    This course include includes an intensive workshop where you are learning all the mental barriers you need to avoid and the game plan you should be creating. You will also be practically doing and updating all the necessary marketing collateral for your job applications with confidence by using world class material and resources this course provides to all its students.

    More

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Appium as a tool for mobile test automation is getting very popular in the market for mobile automation testing not only it is an open source but also is absolutely free for open discussions in communities to get quicker solutions.

    More

    Appium as a tool for mobile test automation is getting very popular in the market for mobile automation testing not only it is an open source but also is absolutely free for open discussions in communities to get quicker solutions.

    More

    .Net Developer Advanced Training

    This course is about to gain understanding of advanced level knowledge of Microsoft .Net framework. It will cover advance development using ASP.NET, Data Binding and Web Configuration, C# Advance features, Web Service Implementation and many more advanced topics.

    More

    .Net Developer Training

    This course is about to gain understanding of current IT industry and prepare yourself for Microsoft .Net Developer Position. In this course, you will learn various Microsoft .Net tools and technologies. It will help you to build and deploy website from scratch using .Net framework. At the end of this course, you will be able to give web solutions using .Net technologies to the businesses, and able to attend interview for .Net developer position.

    More

    Agile Testing Training

    Understanding of Fundamentals Software Testing

    More

    AJS1: AngularJS Development Level 1

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    AJS2: AngularJS Development Level 2

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Cloud Training - AWS (Amazon Web Services)

    Amazon Web Services is currently the market leader in cloud computing. If you are interested in learning cloud or in learning AWS, this course will get you started. And it’s not only about specific technical skills; modern cloud computing platforms is a game-changer for business. You really don’t want to miss this one.

    More

    Oracle Training

    The Oracle well known, widely used Database is an object-relational database management system produced by Oracle Corporation. This is the ideal course for any tech savvy programmer, DBA, SQA…

    More

    Ruby Scripting Training

    Ruby is a scripting language designed by Yukihiro Matsumoto, also known as Matz. It runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX. Ruby Scripting language is dynamic and object oriented. In a sense, it’s a purist’s language for those who love object-oriented languages. Everything, without exception, is automatically an object, whereas in other programming languages this isn’t true. It is simple enough for beginning programmers to use while also powerful enough for experienced programmers to have all the tools they’d need.

    More

    SQL for Testers Training

    If you are new to software testing or looking for a career change to become a software tester Understanding the relational data model behind an application enables you to design additional tests…

    More

    SQL Training

    SQL (Structured Query Language) is a programming language intended for managing data held in relational database management systems (RDBMS). SQL expertise are advantageous in a number of professions such as database developers, report writers, business analysts, computer programmers, web developers, testers and data analysts. SQL has a shorter learning curve compared to other skills like business analysis or computer programming or testing.

    More

    VB Scripting Training

    VB Script is a subset of Visual Basic 4.0 language. It was developed by Microsoft to provide more processing power to Web pages. VB Script can be used to write both server side and client side scripting.

    More

    FWD2: Frontend Web Development Level 2

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    ISTQB Certification Training

    ISTQB foundation course allows you to learn from the very core fundamentals to advance level software testing concepts. The course is intended for anyone who is new to testing or has been in the testing and wants to learn more in details…

    More

    JFT: Java Fundamentals Training

    Fundamentals of Java is a very comprehensive yet simple course on java programming which concentrates on basic concepts of Java. This course is great because it covers just the right amount of Java which is needed for automation, but this course does not cover Selenium WebDriver or any other type of automation tool. Java is one of the most and useful programming languages to learn. You will get the best in class support from the instructor for any question you have related to the course.

    More

    LoadRunner Training

    One of the most crucial test tool to load test the application and measure the performance. Why to load test application, Is application scalable to withstand concurrent number of users? All such answers and application performance…

    More

    QTP Test Automation Training

    QTP (Quick test professional) course series designed for beginner automation QA to advanced level QA for automation. This course covers all concepts and basics fundamental with complete in depth examples…

    More

    Software Testing Training Career Package

    Software Testing course allows you to learn from the very core fundamentals to advance level testing course which is intended for anyone who is new to testing or have been in the testing and want to learn more in details.

    More

    User Acceptance Testing

    User Acceptance Testing is normally the pre-production testing that is done by Users or probably the Product Owners in Agile terms.

    More