Comparison of Manual and Automated Testing

Automation Testing is use of tools to execute test cases whereas manual testing requires human intervention for test execution.
Manual testing
  • The process of testing a software or application repeatedly again and again manually In order to find defects according to the customer speciation is called as manual testing.
  • Here we have to test the application manually.
  • Coding knowledge is not required.
  • Test cases should be written.
  • Test case management tool required.
Automation testing
Here we are going to write a code or script using tools like QTP or selenium and the code will automatically run and give a result as pass or fail.
  • Using scripts, we will test the application
  • Coding knowledge is required
  • Test scripts should be written
  • Automation tool required
Automation Testing saves time, cost and manpower. Once recorded, it’s easier to run an automated test suite when compared to manual testing which will require skilled labor.
Any type of application can be tested manually but automated testing is recommended only for stable systems and is mostly used for regression testing. Also, certain testing types like ad-hoc and monkey testing are more suited for manual execution.
Manual testing can be become repetitive and boring. On the contrary, the boring part of executing same test cases time and again, is handled by automation software in automation testing.
So, One of the Differences Between Manual and Automated Testing is That:
  • In course of manual testing various serious defects of the system are expected to be discovered;
  • Automated testing is expected to pass with no trouble, it is aimed to prove that the application operates properly.

Next Topic: Who Does theTesting?

Is Manual Testing dying? Will Automation Testing completely take over Manual Testing?

Definitely, Manual Testing is can never be removed from the complete testing life cycle.
Manual Testing is normally the first thing you do to gain information you need from the system/application developed.
Almost all kind of complex Testing start will Manual Testing.
Software Tester’s job is to ensure that what will be delivered would meet customer’s need and help on solving the issues. We can never skip this work – it’s just who to do it.
Automation can replace manual test effort in certain areas: unit testing, api, basic repetitive stuff. If the test is to follow some specific steps in order every time, it probably can be automated.
Some testing is not just following a script. Some things are more complex and requires a human presence. There is also a thing called exploratory testing which is beyond any test automation tool I have seen.
The more complex we build the Software, the more we need Software Testing.
Software Testing will never die; Manual Testing also will never die as it’s the first gate to Software.
It may be transformed into various of new Testing Type and Technique but it will be there for a very long time.
So, to some up, while automation can replace some manual testing it cannot, or should not, replace all manual testing. This doesn’t always stop a company trying though.
Manual testing is as important as Automation Testing. The reason we do automation testing is we want to be more efficient and be able to do more. But what we can do as a Manual tester, we cannot always express that in a automated test case.
Automated testing doesn’t make sense for short projects, because the expenses are too high. And if you test stuff that needs human touch, manual tester will be much better.
As Industry is aggressively moving towards Automation and Agile, so demand for Testers who can do Manual as well as Automation or knows a programming language or any other contributing skill is increasing but Manual Testing will always be there.

Next Topic: Comparison of Manual and Automated Testing

What is Automation Testing?

Automation Testing is the process of automating the overall software testing, so as to automate the repetitive & necessary test scripts and overcome the problems of time consuming due to repetitive and manual execution of test scripts. Automated software testing can increase the depth and scope of tests to help improve software quality. 
Manual testing is performed by a human sitting in front of a computer carefully executing the test steps. Automation Testing means using an automation tool to execute your test case suite. The automation software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports.
The main purpose and the importance of implementing the automation testing is it:

  • Saves time as well as money, 
  • Provides more efficient and effective test results, 
  • Increases Test Coverage.
  • Improves Testing Accuracy, etc. 
  • Automation increases speed of test execution.
  • Automation helps increase Test Coverage.

Some of the widely used Automated software testing tools by testers and QAs are:
1. Selenium,
2. TestingWhiz,
3. Ranorex,
4. Sahi,
5. Test studio, etc.
Which Test Cases to Automate?
Test cases to be automated can be selected using the following criterion to increase the automation ROI

  • High Risk – Business Critical test cases
  • Test cases that are executed repeatedly
  • Test Cases that are very tedious or difficult to perform manually
  • Test Cases which are time consuming

The following category of test cases are not suitable for automation:

What is Manual Testing?

To define in a simple way, verifying functionality of application against requirement specifications / Usecase / SRS / FRS will be referred as Software testing. The above process which will implemented through manual effort by developing, maintaining certain testing process documents like Test plan, Test cases, Test Strategies, Test Scenarios would be considered as Manual testing.
In normal terms “The process of validation a product manually is referred to as Manual Testing”. In manual testing we more often verify the product using a set of requirements, validating them with the product and then raise an issue if the product is deviating from the requirement.
It requires a tester to play the role of an end user and use most of all features of the application to ensure correct behavior.
            A manual tester should have an attitude to break the application, should have good observation to help the developers to find the root cause of an issue, should think and suggest different way to solve an issue. If any change request come across then the tester should think whether the changes break any existing functionality. Manual testing needs a good understanding about the system under test.
Manual Testing does not require knowledge of any testing tool. One of the Software Testing Fundamental is “100% Automation is not possible“. This makes Manual Testing imperative.
The goal of Manual Testing is to ensure that the application is error free and it is working in conformance to the specified functional requirements. Test Suites or cases, are designed during the testing phase and should have 100% test coverage.
It also makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects. Basically, this testing checks the quality of the system and delivers bug-free product to the customer.
Final word, Manual testing is an activity where the tester needs to be very patient, creative & open minded. They need to think and act with an End User perspective.

Next Topic: What is Automation Testing?

What is Software Testing?

When you are making sure all the business scenarios of a software are working as desired is called software testing.
           Software testing is a process used to identify the correctness, completeness and quality of developed computer software. 
         It is the process of executing a program / application under positive and negative conditions by manual or automated means. It checks for the:-
1.   Specification
2.   Functionality
3.   Performance

Objectives of testing: – 
  •  Executing a program with the intent of finding an error.
  • To check if the system meets the requirements.
  • To check if the system is “Fit for purpose”.
  • To check if the system does what it is expected to do. 
The thought process & activities involved in designing the tests early in the life cycle can help to prevent defects from being introduced in to code
Software testing is the whole process & not the single activity.
Software testing process has various phases, known as Software Test Life Cycle (STLC). The various phases in STLC are – 
1.    Requirement Analysis –> Consist of Preparing RTM (Requirement Traceability Matrix), Identifying Test Types, Environment, Automation feasibility analysis if any.  
2.    Test Planning –> Consist of Test Plan / Test Strategy preparation, Estimation, Test tool Selection.
3.    Test Design –> Consist of Test case creation, Test case review, Test data creation.
4.    Test Execution –> Consist of actual Test Execution, Document test results, log defects for failed test cases, track the defects till closure.
5.    Test Closure –> Consist of preparation of test closure report, documentation, evaluating exit criteria etc.
In all above phases of STLC, different team members have different responsibility, We will see it in detail later.
Comments & Suggestions are Welcome.

Next Topic: Need of software testing

What is the need of Test Automation Framework?

        Framework is like a Blueprint for Testing application. Which is created in generalized manner Automate any application.
        Framework requires a lot of effort to build but proves to be beneficial in a long run.
       Automated tests can run fast and frequently, which is cost-effective for software products with a long maintenance life.
Need of test automation framework?
1.   Automated regression tests which ensure the continuous system stability and functionality after changes to the software were made lead to shorter development cycles combined with better quality software and thus the benefits of automated testing quickly out gain the initial costs.
2.   Test automation allows the test execution without user interaction while guaranteeing repeatability and accuracy. Instead testers can now concentrate on more difficult test scenarios.
3.   Once framework is created you can use to Automate any application. Just few changes in configuration, test data & object repository.
4.   Test automation allows performing different types of testing efficiently and effectively.
5.   Faster Test execution
6.   Minimal human intervention
7.   Can run periodically or can be triggered on specified action
8.   Better report generation
9.   Failure alerts
10.   Can be used by non-technical user also if documented properly
Comments & Suggestions are welcome

What is Test Automation Framework?

       An automation framework is nothing but an integrated rigorously structured system capable of establishing a set of rules for the test automation of a software product. Automation testing mainly supplements manual testing and makes the whole testing process more efficient.
            A test automation framework is an integrated system that sets the rules of automation of a specific product. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled to represent a business process. The framework provides the basis of test automation and simplifies the automation effort.
          The main advantage of a framework of assumptions, concepts and tools that provide support for automated software testing is the low cost for maintenance. If there is change to any test case, then only the test case file needs to be updated and the driver Script and startup script will remain the same. Ideally, there is no need to update the scripts in case of changes to the application.
          Choosing the right framework/scripting technique helps in maintaining lower costs. The costs associated with test scripting are due to development and maintenance efforts. The approach of scripting used during test automation has effect on costs.
Various framework/scripting techniques are generally used:
1.     Data-driven (data is persisted outside of tests in a database, spreadsheet, or other mechanism)
2.     Keyword-driven
3.     Hybrid (two or more of the patterns above are used)
4.     Agile automation framework
The Testing framework is responsible for:
1.     Defining the format in which to express expectations
2.     Creating a mechanism to hook into or drive the application under test
3.     Executing the tests
4.     Reporting results
Advantage of Framework 
  • Re-usability of code
  • Maximum coverage
  • Recovery scenario
  • Low cost maintenance
  • Minimal manual intervention
  • Easy Reporting
Comments & Suggestions are welcome

Introduction to Software Testing

Software testing is a process of executing a program or application with the intent of finding the software bugs.
         In other words, it is the process of validatingand verifying that a software program or application or product:
  • Meets the business and technical requirements that guided its design and development
  • Works as expected
  • Can be implemented with the same characteristic. 

Trends in Software testing keep changing, Here is the list of Latest Trends in software testing in year 2017.

Latest Trends in Software Testing – 2017 

 

    Testing is important because software bugs could be expensive or even dangerous.
    Basically, testing is classified as –
    ·         1. Manual Testing
    ·         2. Automation Testing
          Well, let’s talk about, how software testing is in terms of career?
         So, it’s that simple, anywhere, you need to offer something special & unique. you will rock there. Check below link where i tried to explain How is Software Testing as a career. So, Finally, decision is up to you, how & where you want to start your career.
      
           Here, I will try to cover all the topics under manual & Automation Testing.
    So, to start with testing, Tester should know Manual testing concepts, Test management tool, Defect management tool, Automation testing etc. . . .
    Refer the below links for details

    Introduction to Software Testing

    Software testing is a process of executing a program or application with the intent of finding the software bugs.
             In other words, it is the process of validatingand verifying that a software program or application or product:
    • Meets the business and technical requirements that guided its design and development
    • Works as expected
    • Can be implemented with the same characteristic.
    Testing is important because software bugs could be expensive or even dangerous.
    Basically, testing is classified as –
    ·         1. Manual Testing
    ·         2. Automation Testing
          Well, let’s talk about, how software testing is in terms of career?
         So, it’s that simple, anywhere, you need to offer something special & unique. you will rock there. Check below link where i tried to explain How is Software Testing as a career. So, Finally, decision is up to you, how & where you want to start your career.
      
           Here, I will try to cover all the topics under manual & Automation Testing.
    So, to start with testing, Tester should know Manual testing concepts, Test management tool, Defect management tool, Automation testing etc. . . .
    Refer the below links for details

    Introduction to Selenium – What is Selenium?

               Selenium is an automation tool like other tools in market, like QTP, TestComplete etc.

    It is Open Source tool used to automate web based application.
    Selenium is suite, consist of different tools as below –
    1.      Selenium IDE
    2.      Selenium RC
    3.      Selenium WebDriver
    4.      Selenium Grid
    Later, Selenium RC & Webdriver is combined & it becomes Selenium 2.
     
    Most commonly used tool is selenium 2. Selenium IDE is not used much. Let us talk about both here.
    What is Selenium IDE?
    Selenium IDE provides a record & playback feature for authoring tests without learning any test scripting language. It is not used mostly since it has limitations. Only recorded scripts can be played. Selenium IDE is a fully-featured Integrated Development Environment (IDE) that installs as a plugin in Mozilla Firefox and enables developers to test their web applications through Selenium. With the Selenium IDE.
    Pros & Cons of Selenium IDE:
    Pros – Easy to install & use, No Programming knowledge required, has built in help & reporting module.
    Cons – Available only on Mozilla Firefox, can only create prototype of tests, No support to conditional operations.
    What is Selenium WebDriver? 
                Selenium WebDriver is better than both, Selenium IDE & Selenium RC in many aspects.  Selenium WebDriver uses programming language to communicate to browser directly.  It supports various programming languages like Java, C#, PHP, Python, Perl & Ruby.
     Selenium WebDriver is not a tool like something. Selenium WebDriver has few Jar files which needs to be added in Eclipse IDE. We Will talk in detail later about this. 
    Selenium WebDriver supports various browsers like IE, Firefox, Google Chrome, Opera. It can also be used on Android & iOS. Selenium WebDriver can support all operating systems where these browsers can run. 
    Pros & Cons of Selenium WebDriver:
    Pros – Communicate directly to browser, Faster execution, Supports various browsers like IE, Firefox, Chrome, Safari etc.

    Cons – Programming knowledge required.
    More documentation on Selenium can be found on seleniumhq site- 
    http://www.seleniumhq.org/