First of all I would like to thank 360Logica “Think Tank” to providing us a good opportunity to share our view on different topics. Now I realize that changing Facebook status 10 times in a day is easier than writing an article related to topic shared to me.
Thanks a lot for realizing me that if I can update my Facebook status 10 time in a day, like at list 100 articles of my friend, posting at-least 10 comments on girls status, watching videos and images and plying online games then I can also write something about testing in which I am not good enough but I can try.
 I am working on manual and automation testing but the trend currently famous in all new testers/QA to learn automation/performance testing so that they can boost their resume and can sail themselves in higher salary.


I would like to share one image that can help us to understand basic difference between Manual and Automation testing.

For example, total difference between my office and my house is around 3km and I take around 30 min to reach my office by walking but when I am using my cycle then the effort and time reduces to cover same distance and reach office in 10 to 15 min and can save 15 to 20 min that can be utilized in different assignment. But like riding Cycle to reach office, you need your both the legs functioning properly and strong enough to cover 3KM distance. In a same way automation can speed up your testing process but application should be manually stable so that automation scripts execution take place with less number of failure due to change in application.
Now moving this discussion to more technical, I want to share below chart related to budget allotted to different software development phase (below percentage can be up or down by +-5 to +-10 percent depends upon different Organization.).

As you can see only 19% of whole project assign to Testing phase. It’s strange for employees to believe, working in pure software testing organization (like us, eagerly waiting for next appraisal session ) but it is true.

 

Manual Testing: Manual testing process consists of various sequential steps

  • Creating Test Plan: Test plan document describes the testing environment, purpose, scope, objectives, test strategy, schedules, mile stones, testing tool, roles and responsibilities, risks, training, staffing and who is going to test the application, what type of tests should be performed and how it will track the defects
  • Test Development: Test development consist preparing test cases , preparing test data,  preparing test procedure, preparing test scenarios and writing test script
  • Test Execution: In test execution phase Tester/QA executing the documents created in ‘Test Development’ phase.
  • Result Analysis: After completion of ‘Test Execution’ it is required to analyze the execution result either pass or fail.
  • Tracking Defects:Tracking all the failed test cases Tester/QA need to prepare the bug report file and forwards to Test Team Lead and Dev Team. The Dev Team will fix the bug. Again we have to test the application.
  • Summary Reports: Summary report consist ‘Test Reports’, ‘Bug Report’ and ‘Test Documents’.

Automation Testing: Many programming groups are relying more and more on automated testing, especially groups that use test-driven development. There are many frameworks to write tests in, and continuous integration software will run tests automatically every time code is checked into a version control system.
Automation testing requires

  •  Highly skilled QA Engineer that have extensive experience in automation tool.
  • QA having good knowledge of any programming language (Java, C#, Ruby, PHP etc.)
  • Automation tool to automate test cases/scenarios.
  • Build tool (Ant, Nant, maven etc).
  • CI (Continuous Integration) tool to schedule automatic test execution.
Automation Tool: There are various testing tool available in market in which few free testing tool and some paid testing tool used to automate various application.


Web Testing Tools
Scriptable
Scripting Language
Yes
Yes
visual scripting, Jython, Groovy
Yes
Yes
C#, VB.NET
Yes
Yes
Ruby, Java, PHP, Perl, Python, C#, Groovy
Yes
Yes
Python, JavaScript, Java
Yes
Yes
VBScript, JScript, C++Script, C#Script, DelphiScript
TOSCA Testsuite
Yes
Yes
Java, C#, VB6
Yes
Yes
C#, ability to run JavaScript from C# calls
Yes
Yes
Ruby


Test automation tools can be expensive, and are usually employed in combination with manual testing. Test automation can be made cost-effective in the long term, especially when used repeatedly in regression testing. In automated testing the Test Engineer or Software quality assurance person must have software coding ability, since the test cases are written in the form of source code.
Limitation of Automation testing: As per my personal experience I can’t automate all scenarios using automation tool and to test uncovered scenario we must require an expert how can manually test and verify the scenario. For example if I am automating web application using selenium Web driver then it can’t cover test cases related to.
1.      Unable to automate flash application.
2.      Unable to verify video playing correctly or not.
3.      Unable to verify correct image displayed for correct product etc.
Conclusion: If I ask to choose only one between ‘Manual’ and ‘Automation’ testing?  I will go with manual testing because I can’t build beautiful building on weaker foundation.
Automation can speed-up test case execution but can productive only with manual testing. As we all know we can’t cover each scenario with functional automation so we require manual tester there to complete test coverage.
Also an automation script can test only recorded steps using element locator and all scripts failed if locators get changed (functionality working OK).

Post by Tapashwani Anand (360Logica)