Top 40 Test Automation Interview Questions | Software Testing Interview Preparation | Edureka

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hello everyone this is Archana from Eddie Rica this session is about test automation interview questions so this is gonna help you guys out if you're looking for job roads which are based on automation testing but before we proceed let's take a look at topics that we will be talking about today in this session so guys we will begin this session by discussing what is software testing and why is it so important then we will take a look at test automation trends in today's IT market then we'll move on to our interview questions to make it much more easier for you guys have divided questions into three categories big-nose level intermediate level and advanced level so I hope agenda was clear to you guys let's get started there do you guys agree with me when I say every system has software bugs well it's true it's impossible to design and bring out a perfect software product software testing basically is the process of executing the software or any sort of application to find out if there are any bugs or some sort of errors in it so before software goes public programmers spend hovers trying out to find every little bug they check for any mistakes and problems in the design functionality and working of the software until then product don't be available for commercial use in the market and the software testing is broadly classified as manual testing and automation testing so talking about manual testing it's pretty self-explanatory light testing of a web application is done manually by human action and manual testing this means that someone actually goes on a device to evaluate numerous competence like design functionality and performance of the device that you're testing on but testing to find defects or bugs manually is literally time-consuming very expensive often repetitive and subject to human error so this is where automation testing comes into picture automation testing is well automated if I have to define it automation testing uses assistance of tools scripts and software's to perform test cases by repeating predefined actions guys these days automation is everywhere the adoption of automation becoming more widespread software testers with manual testing skills alone won't cut it in today's job market but keep in mind the fact that as an automation tester you will always be needed and you will find no lack of leading companies trying their best to recruit you so if you are preparing for automation testing job interview you need to be aware of most frequently asked questions in the test automation feed let's discuss the top fortify automation testing interview questions and answers to help you crack your automation testing interview with flying colors so let me tell it to you again to make it much more easier for you guys to follow me I have categorized the interview questions into basic intermediate and advanced level so let's begin with the basic questions so here goes our first question what do you mean by term automation testing well we've already discussed this anyway automation focuses on replacing manual human activity with systems or devices that enhance the efficiency of a work the process of using special software tools or some sort of scripts to perform testing tasks such as entering data or it could be executing the test steps or comparing the results with the expected results is known as automation testing so basically an automation testing you're trying to replace the human who is performing the tests them moving on to our next question what are different types of automation testing guys automation testing is basically divided into 45 categories but the most popular ones are unit tests graphical user interface test and functional test so unit tests these are usually done at the development phase and the help reduce the bugs in initial stage of development of software itself then we have graphical user interface tests these tests are usually done at testing level and these tests are mainly written to focus if the test interface or the interface of an application with software that you're testing on is working properly under certain conditions or not then we have functional test just like graphical user interface tests these are also done at testing level this simulate the functional scenarios to test the application works properly a not for the provided input at different conditions so basically here we attracting the functionality of an application or software or any item that you're performing testing on apart from these three we also have something called web service testing web service testing is testing of web services and it's protocols like SOA P protocol dress protocol and all that so automation testing is divided into about 45 categories but the most important ones are unit tests graphical user interface tests and functional tests so guys now moving onto our third question what is an automated test script an automated test script is basically a short program which is actually written in some sort of programming language to perform a set of instructions on the software or the application that you're testing on so when you run this program it gives the test results as pass or fail depending on if the application is working as per your expectations or not so basically if whatever tests you want to perform on the application of the software you writing it as a program or in form of program in the test script and that's what we call automated test script next question what are good coding practices that you should follow while writing test cases for automation so guys before you actually go ahead and write code for your testing you need to follow certain coding standards for example you need to use comments at regular paces you need to maintain separate file if you have functions that you want to reuse and there are certain coding conventions that you have to follow like : and all that and most importantly you should regularly run your scripts to make sure that you do not make any error are there no bugs in the code that you've written so these are certain coding practices that you need to follow when you're writing code for your automation this way you will be sure that if you get an error it's not because of your code it will be because of the box which are in the application next question guys this is most frequently asked question every interview every test automation interview this is a must or definite question guys which is what is a test automation framework a test automation framework is a set of Guidelines used to produce beneficial results of automation testing activity so basically in simple terms its set of guidelines or rules that every tester follows universally the framework brings together function libraries tests data sources object details and other useable modules functions and methods so once you've adopted any kind of test framework you can even extend the framework for example the guidelines which are set in any framework would beam rules for writing test cases coding guidelines for creating test handlers or it could be input test data templates or object repository management lock configuration test results and reporting usage all of these are the guidelines which are wristed in any framework so make sure you get to know more about automation framework before you attend any testing interview next question why use automated frameworks what are the benefits that they offer first of all guys they established a universal standard for testers to achieve the specific goals of automated tests they maintain consistency of testing so basically these are the rules which are followed by every tester all around the world this way they maintain consistency of testing you are also provided with commonly used methods this way it improves the efficiency of automated tasks in framework and even with the limited knowledge of how the test case is set up a tester can easily depend on the framework to refer to simple statements and implement the test cases you can easily reuse the test scripts for future purposes so with a proper framework the code is easier to maintain and often reusable so technically automation framework meant design and implemented correctly the deliver frequent and stable automated test code so basically in simple dances automation frameworks make the life of a test or much more easier guys one more question about automation framework what are different types of automation frameworks that are available right now so first we have linear scripting framework linear scripting framework is basic level test automation framework which is basically in the form of record and playback in a linear fashion this framework is also known as record and playback framework this type of framework is you to test small size applications in this type creation and execution of test clip are done individually for every test case so this is the basic level test automation framework then there is data driven framework data driven test automation framework is focused on separating your test scripts that you have written from the test data that you want to test on so it allows us to create test automation scripts by passing different set of data types the test data set is kept in external files or resources such as Excel sheets or it could be access tables or SQL database or XML files etc then you have keyword-driven framework this keyword-driven framework is also known as table driven or action word based testing in keyword-driven testing we use a table format to define some sort of key word or action word for each method that we could execute in your code now based on the key words or action words which are specified in the excel sheet that scripting is done and tests are executed by using this framework since we are using key word and action words programmer need not know much about the scripting language here then we have modular testing framework your tester divides the application into multiple modules and creates test scripts individually for each model these individual test scripts which are written for each module are then combined to make larger test scripts by using a master script this master script is used to invoke the individual modules to run end-to-end test scenarios so basically you divide applications into multiple modules then for each module you write down a test case and then combine this test case according to your requirements using a master test script and the last one is hybrid testing framework hybrid test automation framework is literally a combination of two or more frameworks that we just discussed it attempts to leverage the strength and benefit of other framework for particular test environment it can manage apart from these five you also have others but these five are the most popular ones next question for top prerequisites to start automation testing so guys before you actually start automation you need to be aware of certain things for example you should make sure that the bill for your framework is stable you make sure to filter the test cases which you need to automate as in you should be sure as to which test cases you want to automate and which not you need to separate the functions which you will use repeatedly and if you have certain functions which you want to use repeatedly make sure you're storing in separate files make sure you have your application modules in such a way that their requirements do not change frequently in such cases automation becomes difficult and the most important one make sure you have skilled and experienced resources this makes your automation much more easier so these are certain points that you should keep in mind before you actually start automation moving on to the next question what are the factors that determine the effectiveness of automation testing there are certain key factors which help you decide if your automation was successful or not first of all obviously the amount of time saved then you have the number of defects or bugs found after automation the test coverage as in literally one test covers how much data or how many cases like that then you have maintenance time that you've spent on maintaining the automation software then the installment cost the amount of money that you spent before actually starting your automation then the test case trees ability as an easier test cases usable or the just not reusable as such and lastly the quality of the software that you're actually performing tests on these determine if your automation was successful or not and here we go the most common question what are the main differences between automation testing and manual testing so when you begin testing one of the primary decisions that you'll have to make is when you're going to test manually or use automated testing so you have to be aware of distinct differences between manual testing and automation testing the first point is obviously reliability for a testing phase which is very long let's say it's very long there are high chances of an undetected error when testing is performed manually so when you perform testing manually you have to do tests repeatedly again and again the task becomes boring and it's quite possible that you might overlook some arrows so in such cases reliability is really less whereas in automated testing you use different kind of tools and scripting to perform the tests and find the box so there's no chance of making any arrows so the reliability in automation testing is literally high and again and manual testing it's humans who are performing the testing and obviously humans are little slower when compared to machines right so the processing time is more in manual testing well compared to automation testing and the important point is you cannot use manual testing in automation testing everywhere there are certain cases where manual testing is suitable and there are certain cases where automation testing is suitable for example manual testing is suitable for one-time tasks or exploratory or usability and Haddock testing whereas automated testing is suited if you want to perform tests repeatedly for long run or full aggression testing or performance testing etc apart from that initial investment cost in manual testing is low but the written of investment as in the amount you get as written after you perform your automation is also less in manual testing but when it comes to automation testing initial investment cost is high and the rhythm of investment is also high in longer lon so these are some basic differences between automation testing and manual testing let's move on to the next question so is it possible to achieve 100% automation 100% automation is definitely not possible guys there are certain test cases that cannot easily be automated for example checking the background color of an window or a dialog box well why would you do that right it's a very simple task why do you need to automate or use machines here to perform the task right it's a waste of time and effort just like that while we were discussing the differences we also discussed certain cases where you actually cannot use automation testing so 100% automation is definitely not possible next question what are some conditions where we cannot consider automation testing so just before discussing this question we discussed a question where I said 100% automation is not a possible thing it means that there are certain cases where you cannot apply automation so what are those so if you have a situation where the requirements of your software or application keeps changing in such cases automation becomes difficult because every time requirement change you need to change your test scripts as well right so it becomes difficult in such cases it's suggested not to use automation tests similarly if you have exhaustive documentation or if you have a requirement where you can apply only continuous integration or continuous delivery concept then it's slightly difficult to apply automation testing then of the PS is when you have one time test cases as in you need to test these test cases only once so what is the point of using automation because it doesn't require much effort to test our test case only once right in such cases manual testing is much more preferred apart from that you also have ad hoc testing exploratory testing and user interface testing so don't worry about them for now we'll discuss what those three are as we progress there's another question based on that so phone off I'm just gonna list them and leave them like that here we go our next question how many text cases can you actually automate in a day guys it totally depends on test case scenario complexity and the design and the length so generally speaking given the standard complexity of test cases it's usually possible to automate a minimum of six test cases in a single day well this is for me so when I perform testing I realize that I could test six test cases in as a depending on their complexity but again it depends on you it depends on individual if you are asked this question you just have to talk based on your experience and the next question what are some modern applications of automation testing so guys like I said in the beginning automation is literally everywhere every company is implementing automation in one or the other way for example Amazon is testing delivery drones that pick up various orders which are sorted by robots whereas Google is testing self-driving cars then you have Starbucks which is testing kasia free stores dedicated to mobile ordering and payment and Facebook is testing a brain-computer interface that may one day translate your thoughts into digital text well these are some mundane versions of automation technology apart from this there are other innovative ideas that are coming up regarding automation fascinating light so let's move on to our next question is documentation actually necessary in automation testing cuz documentation plays a critical role in test automation so whatever the practice is that you follow while automation be documented so that they are repeatable as and you can refer to them later on if they are documented somewhere like specifications designs configuration code changes automation plan test cases Park reports user manuals all should be documented so that later on you have somewhere where you can refer to if you have forgotten or if you have made any mistake this way documentation plays a very important role in automation testing so here there is one more tricky question that you might be asked guys can automation testing replace manual testing well according to me automation testing isn't a replacement for manual testing it's just the continuation of manual testing so no matter how great or tomater tests are you cannot automate everything right we even discuss the cases where you cannot apply automation manual test play important role in software development and come in handy whenever you cannot automate your test cases automated and manual testing each of them have their strengths and weaknesses manual testing helps us understand the entire problem and explore other angles of tests with more flexibility when compared to automation but automation testing helps save time in long run by accomplishing a large number of surface level tests in very short period of time so what I want to stress here is that automation testing is actually not replacing manual testing moving on to the next question what are some popular automation testing tools that are used worldwide so in the definition itself we have automation testing is process where it uses assistance of tools and scripts to perform testing so obviously there are whole lot of tools that can be used in automation for different purposes some of the most popular ones include selenium it's a popular testing framework to perform web application testing across multiple browsers and platforms like Windows Mac Linux you name it then you have water which is pronounced as water it's an open-source testing tool made up of Ruby libraries to automate web application testing while don't get confused with the spelling it's watr but still it's pronounced this water then you have ranorex it is flexible all in one GUI testing tool which you can execute automated test flawlessly throughout all environments and devices then you also have a PR it's an open-source mobile testing automation software it's free and it's supported highly active community of developers and experts well these are just this creep or I can say very few of the tools which I have listed here there are multiple other tools that are popular for different purposes our next question when should you prefer manual testing over automation testing well all your we discussed when you cannot use automation testing not its discus when can you actually prefer manual testing over automation testing first of all when you have short term projects even though automated tests are aimed at saving lot of time and resources it still takes a lot of time and resources to design and maintain an automation test case or any such automation so in some cases such as building a small promotional website it can a much more efficient to rely on manual testing rather than automation testing it saves a lot of effort and time on your part other one is user testing this is an area in which you need to measure how user-friendly efficient and convenient the software or the product is for end-users so basically you are you're representing an end-user well it's not possible by machines right human observation is the most important factor so manual approach is much preferable in that such Croesus then you have ad hoc testing in the scenario there's no specific approach it's totally unplanned method of testing where the understanding and the inside of the tester is the important factor so again manual testing is much more preferable and ad hoc testing apart from that we also have exploratory tests this type of testing requires testers knowledge experience analytical logical skills creativity and intuition and all that which is definitely not positive I'm a machine so yeah even here manual testing is preferred so we are done with the first set of questions which are the basic questions that you might come across in the interviews now let's move on to next level of questions which I call it intermediate level here we go so when is automation testing useful which test case is to automate so guys like I said earlier it's impossible to automate all testing so it's important to determine which test cases should you actually automate when it comes to figuring out where to start automation there are some top candidates like first of all repetitive tasks are primary candidates for automation if you are implementing manual testing here it takes a lot of time and the task becomes boring because when you do the same class again and again it definitely becomes boring and you will make mistakes so interpretive task automation is much better then you have certain cases where you might have to capture results and share it with other people so rather than manually exporting your data or crunching the numbers and making such pretty complex graphs you can invest in a tool or automation strategy that will do this task for you you can also use automation in the tasks that require multiple data sets so rather than manually typing an information into forms or fields or automate this process to read an information from a data source and automatically type into the respective fonts this way your time is saved then you have certain cases where you have to screen the response as and how the interface is performing or such cases you do not have to just sit and stare at the screen as in how the interface is behaving you can just automate and look for the bugs later another example where you can apply automation is your non functional testing types for example load testing suppose let's say you're testing a software and you are testing it for some ten cases then manually it's preferable but suppose if you have to test for 10,000 cases then it's better you use automation and you can also use automation for the test cases that turn on several different hardware or software platforms and configurations so guys these are certain test cases that you should consider for automation another important question guys how do you actually implement automation and what would be the steps that you need to follow first of all you should define your goal for automation testing and define which types of test cases are you going to automate so once you're sure if what kind of tests are you actually performing you need to select the right appropriate tool according to your requirements next you define the scope of automation as in you decide which test cases to automate which not to automate separate the pretty functions and all that so after determining your goal defining the scope of automation and selecting the type of tool according to your requirements you should start planning designing and development as and you should start writing your test scripts so you create your test scripts develop test suits to hold your test scripts next step is execution you can execute the tests that you have written using an automation tool directly or through test management tool which will in turn evoke the in automation tool so this way you can execute the test cases which you have written the other important thing is once you have done with your automation the case doesn't end there as you keep adding new features to your application of software automation scripts also need to be added reviewed and maintained for each release cycle so maintenance also plays a very important role it becomes necessary to improve the effectiveness of your automation scripts so these are the basic steps that you follow while implementing automation so you need to know why you're actually performing automation then you select the right tool then you decide on which test cases to actually automate based on all this requirement tool and which test cases you need to develop a test script once your script is ready you need to execute the test scripts note down the results and as soon as your application keeps changing you can keep updating your automation scripts as well so these are the steps that you follow so guys here's another important question what are different approaches that you can take to test automation you have something called code driven approach here the focus is mainly on test case execution to find out if various sections of the code that you've written are performing as per expectations on the different conditions or not so basically here are you checking if the application of the code that you've written to test the application is performing light or not under different conditions then you have graphical user interface testing or GUI testing as we call it so applications that have graphical user interface may be tested using this approach it allows the testers to record user actions and analyze them any number of times for example let's say you want to test the website you can use framework like selenium that provides you with a record and playback tool using which you can authorize your tests without having any knowledge of scripting language so test cases here and graphical testing can be written in number of programming languages like C shop Java Perl Python and many others and then you have test automation framework we already discuss this but anyway framework is set of guidelines which are used to produce beneficial results of automated testing activity the framework brings together function libraries test data sources object details and other reusable modules basically it sets up a universal standard that all testers can actually follow moving on the next question what are the points that are covered in the planning phase of automation so earlier we discussed different set of steps that you need to follow while performing automation light and there's one phase called planning phase and the points that you have to keep track of in this phase include deciding on the right automation tool deciding if you want to actually use automation framework as the approach to automation or not defining the scope of your automation configuring your test environment details they will up in test cases developing test suits and identifying test deliverables so all these are the points that you should consider in the planning phase of automation the next question how to decide the tool that one should use for automation testing in their projects so guys the first step in automation testing is to select a proper tool that suits your requirements but how do you actually go ahead and select a tool based on what criteria first you need to understand your project requirements thoroughly and then you need to identify the testing scenarios that you actually want to automate based on these requirements you make a list of tools once you've made the list for each tool identify the budget and select the tools which are within your budget after that compare the tools which are remaining in the list using some criteria like is it easy to develop and maintain the script for that tool or not does it work on platforms like web mobile desktop and other platforms is it based on your project requirements does the tool have a test reporting functionality how many different testing types can this tool support how many other languages does the tool support so once you've compared different tools based on these criterias select the tool which is within your budget and support your project requirements and gives you more advantage based on your key requirements so that's how actually you select a tool which suits your requirement guys now what are the primary features of a good automation tool first thing you need to consider is F 1 or the tool is easy to use because if you choose a tool which is difficult to use there's no point in using automation automation is implemented to make our task much easy so that we don't spend much effort on our part right so you need to select tool which is easy to use and understand and you need to check if the tool is compatible with platforms and technology that you're using it should also include features like implementing checkpoints to verify values databases or key functionalities of your application and definite points and also check if the tool does have a record and playback support apart from these it can also check if the tool has good debugging facility robust object identification object and image testing and all that one more point you can also see if the tool that you're using supports automation framework or not so these are certain features that very good automation tool has moving onto next question on what basis you can map the success of automation so on what basis can you actually decide if the automation is successful or not we did discuss few points earlier but let me just repeat them the main points are the defect detection ratio you can say the number of defects that you have found out after your automation second the amount of time that you've taken to execute the automation and finally the amount of reduction in the labor cost these are the three key points or strategies or the criterias that you should consider while evaluating the success of your automation now what are the scripting standards that you should follow while performing automation testing just like you have certain coding standards that you should follow there are something called scripting standard that you should follow while writing your scripts for example you need to maintain uniformity naming convention commenting the functionality whenever and wherever it's necessary adequate indentation indentation is really very important concept it changes the meaning of your code entirely if you have done it in the wrong way robust error handling and ability to recover use of frameworks and all this what are the differences between open-source tools vendor tools and in-house tools in automation testing very simple guys open source tools are free to use frameworks and applications engineers build these tools and have the source code available for free on the internet for other engineers to use so such tools we call them open sourced Booth's then we have vendor tools these are developed by companies that come with license to use so they cost money very often and because they're developed by an outside source technical support is often available if you have employed the tool better examples for vendor tools include VIN renewal test rational robot QA Director q GP RPG and many others and as for in-house tool it is a tool that a company builds for their own use rather than purchasing vendor tools are using open source tools a company builds a tool for its own purpose those tools we call in-house tools so open source tools are free and available on internet you can go ahead and use the source code as for vendor tools you need to have license to use and you often have to pay a lot of money then you have in-house tools where companies build those tools for themselves for they use moving on to next question what are the advantages of using an automation framework so here we go guys another important question about automation frameworks so what are the advantages of using framework first of all they save you a lot of time you can reuse the code any number of times and they offer you maximum test case coverage automation framework they come with a proper recovery scenario and debugging facilities and obviously minimal manual intervention as well and they also provide you with easy reporting features as Ana once you're done with automation you can easily create reports and share it with other people in your company so these are some advantages of using automation framework next question what are the important modules of test automation framework every test automation framework has some important modules for example you have test assertion tool this tool will provide assert statements for testing the expected values in application which is under test an example for test assertion tool you have test ng J unit and many others then you have something called data setup so whenever you've written a test script the test script walks on some sort of data right and you need to actually take the data or you need to have a source of data so each test case needs to take the user data either from the database or from a file or embedded in a test script to manage all this we have a module called data set then comes bill management tool using this tool you can actually manage how to build your framework according to your requirement this way you can easily write it as scripts and manage them then you have continuous integration tool or CI CD tool these tools are required for integrating and deploying the changes which are done in framework at every iteration then you have reporting tool a reporting tool is required to generate readable report after the test cases are executed this way you get better view of the steps results and the failures of your automation and lastly we have something called logging to the logging tool and framework actually helps in better debugging of error and bugs so if you have the log of whatever you have done throughout the course of your automation it will be easier for you to find out that box and debug them here comes our next question what are some popular automation testing frameworks available so let me list a few popular framework testing frameworks well to name the most important ones I have apache jmeter selenium appium google or grey apart from this you also have test ng koo kumba water robot framework and many others make sure you go ahead and refer to other lists on internet so that you will remember many names as possible so as what I meant to say is there are other popular frameworks as well apart from the just ones which I just listed now moving on to the next question what do you think of the use cases we're implementing automation is actually not suggested well we already discussed this but let's go a little deeper one of the key testing principles is that hundred percent test automation is definitely not possible we'd discuss this as well so manual testing is still necessary let's see which test cases cannot be automated or I could say it would take too much effort to actually automate we did discuss about test cases which you need to execute only ones when you have exhaustive level of documentation and all that apart from this I listed our three other cases if you remember which is ad-hoc exploratory and user interface testing let me explain these three concepts to you guys so first of all you have ad hoc testing here testing is done without actual preparation and you do not have any written test cases so during ad hoc tests a specialist randomly test the functionality of system basically is goal or his aim is to be creative and break the system and discover flaws which might be not possible when you are actually using a machine I mean in case of automation so in such cases it's better to use manual testing rather than automation testing then we have something called exploratory testing during exploit retesting a specialist or a tester tests a product like an explorer as in he relays on his personal experience after getting the full picture of products functionality he designs test cases which he seems right so in exploratory testing you have to rely on your personal experience and design test cases so it's definitely not suggested you to use automation testing here then comms user interface testing one problem with user interfaces is that the requirements for user interface keep changing well like I said earlier it's not suggested to use automation when the user requirements keep changing because you might have to change your automation script again and again which will be a hard task so although we could automate basically everything manual testing still provides an effective and quality check of bugs and inappropriate in some situations now what are the advantages and disadvantages of using automation testing well after listening so much about automation testing I'm sure you guys can list it out so automation test is simplify the test case execution they save lot of time and money on you but they improve the accuracy and reliability of your software tests they increase the amount of test coverage also the speed of test execution as well they reduce the maintenance cost and they give you high light enough invest in case of long run talking about disadvantages maintaining developing test cases is little difficult initial investment is high you need to have skilled resources this way they can actually make proper use of the automation tool that you're implementing your environment setup is a little complex while automation debugging test script is also an issue sometimes so these are certain advantages and disadvantages of using automation testing so guys here we are done with the intermediate level questions and then we have advanced level questions man when I say advanced doesn't mean they have very long answer or something like that it's just that a little tricky and you need to have proper knowledge to answer these questions our in-depth knowledge to answer these questions so let's continue so the first question in advanced level is is automation testing a blackbox testing or a white box testing before I go ahead and answer this question let me explain you what black box testing is and white box testing is first about black box testing here in black box testing internal structure design implementation of any software product or an application or user interface that you're testing on the user will not know any of these details prior to testing in black box testing but when it comes to white box testing details like structure design implementation and all this the user will know about so basically black box testing you're actually performing tests without any prior knowledge whereas in white box testing you do have certain idea of or actually you're performing tests on so now is automation testing of black box or a white box testing guys automation testing is mostly a black box testing as we just program the steps that a manual tester usually does without any prior knowledge of application but sometimes automated test scripts need access to database details as well which are used in the application in that case it again becomes a white box testing so automation testing can be both black box or white box depending on the scenarios in which automation is actually performed moving on to our next question what are the attributes of a good test automation framework a test automation framework which is considered to be good should be modular as in it should be adaptable to change tester should be able to modify the script as per the requirements next it should be reusable suppose if you have any methods or functions which you want to reuse make sure you put them in a separate file so that you can access them later and your framework should support this feature next important feature is it should be consistent the suit that you're developing for your frame box should be written in a consistent format by following all the coding practices and the scripting practices which we discussed earlier then obviously independent the test script should be written in such a way that they're independent of each other so in case of one test fails it should not hold back the remaining test cases then you have a logging feature as in your automation framework should have a login and reporting feature like I said all your logging feature helps you to find the bugs in the earlier stage itself and easily debug those bugs for example let's say if the script fails at any point of time having the log file will help you detect the location along with the type of error that you're actually encountering here similarly it should also have a reporting feature it's good to have a reporting feature so once the scripting is done we can have the results and reports sent via email lastly it should also support integration automation framework should be such a way that it's easy to integrate with other applications like CI CD so these are some features that a good test automation framework must and should have moving on the next question what are test automation framework development challenges obviously well developing a framework you will come across certain challenges first of all setting the scope of automation might be a difficult task that is you need to know properly which takes cases to actually automate and vad to use automation framework if or not you should use your automation framework for such test cases so deciding on that part is little difficult then identifying the requirements of your test case is also a difficult part because since your application of software keeps changing you need to be aware of your requirements lastly selecting the tool there are plethora of tools out there so choosing a tool lot of them would suit your requirement will be difficult so in such cases you can follow the rules which we discussed earlier are the steps to select the proper appropriate tool which suits your requirement moving on to the next question what is data driven testing if you remember this is a type of automation framework we discussed so major use of automation testing is to simplify the testing process which involves complex and huge data sets by documenting the same details as in data-driven tests is used when you have large or huge amount of data sets that you have to deal with while testing so in data-driven testing framework that test data includes input files output files and the result field and these fields are included in files CSV Excel sheets XML files etc so once you have all the test data in these files these files are fed to an automation tool for execution which in turn compares the expected and actual data then it documents the result of each test data into the resulting field in those files so that's what data-driven testing is all about as you can see you have a data file and you have an expected output which is compared to actual output but before that you have test data and all your input and all that that's fed into your driver script or the automation script which you write and the script is implemented on your application this way you get the results and then you compare the expected output with your actual output this is how data-driven testing is done next question what has test ng let's list out some of its prominent features so guys if you remember while listing out some of the most important test frameworks I listed test in G as well so basically test in G is an open source automation testing framework where ng actually means next generation it is inspired by another kind of framework called J units and n unit it is designed to be better than Jane it actually especially when it comes to testing with integrated classes the creator of test ng is Cedric boost testing J gives the developer the ability to write tests more flexibly and more powerfully and some of the most prominent features of tests and you included supports annotations annotations play a very important tool it also supports Java and oops concepts it's supposed testing integrated classes for example by default you do not have to create a new test class instance for every test method that you use it also has flexible runtime configuration it introduces a concept called test groups so once you have compiled your tests you can just ask destined G to run your friend n tests or fast or slow or database test based on the way you have listed them it also supports dependent test methods pala testing load testing and partial failure apart from this it offers plug-in API and supports multi-threading as well cool right it has lot of features so what are the features of the advantages test and G has over j-unit first of all the most important feature is annotation annotation intestine gr very easier to understand they're just lines of code that can control how the method below them will be executed for example as you can see I have a image there on the screen you can see I have two annotations here first one is with priority zero and next one is priority one so basically using these annotations and priorities I'm saying that execute this method before you actually go in and execute other method apart from annotations other features include test groups can be grouped very easily like I said you can just go ahead and ask test ng to run your fenton test fast or slow or database test based on the way you have listed them and it supports Pilar testing which is not there in J unit moving on the next question in what conditions we cannot use automation testing for agile method guys the Titans of information technology like Google Amazon Facebook the develop software at very lapid phase so to meet the demand for their products and services they mostly use agile practices test automation is fundamental part of agile but there are certain times where automation testing in agile as useless for example when you have exhaustive level of documentation when the requirements of your application of the software you're testing keeps changing in such cases automation is definitely not suggestive also if you have one-time tasks and exploratory tests edge cases automation should not be implemented so these are certain cases where automation testing becomes useless in agile methods a next question what are some best practices that you should follow while automation testing so guys to actually get maximum written of investment you need to keep track of certain points while actually performing automation testing for example the scope of automation needs to be determine in detail before the start of activation so this way you actually know what you're actually automating and what you're expecting from the automation next off you should select the appropriate tool that meets your requirement a tool must not be selected solely based on its popularity you need to select this only because it fits your requirement you need to decide if you wanna use framework in your automation or not so apart from selecting framework tool and define the scope of automation you need to follow certain scripting standards standards have to be followed by lighting the scripts for automation we discuss them all your the standards like regularly including commands proper indentation adequate exceptional handling etc next you need to check if the automation that you performed a successful or not to check that you can use criteria like the number of defects found the number of time taken to actually perform the automation and the time required for automation testing for each and every release cycle customer satisfaction index productivity improvement all these features you can consider so these are certain points that you should keep in mind when you are actually performing automation so the last question what are the risk associated in automation testing so guys just like manual testing automation testing also involves risk first if all you need to ask yourself if or not you have skilled resources automation testing demands resources with some proper knowledge about programming so if the people that you're actually automating or writing test script doesn't have any knowledge of programming then definitely there will be some sort of error in your test cases right so you need to make sure that you have skilled resources when you're actually starting your automation and you should also ask yourself are the resources which provide capable to adapt easily to new technologies or not and the second risk is the initial cost for automation is literally high because you have to buy a lot of tools and lot of other things so make sure that the amount of money you spend compensates the testing results and it's suggested not use automation if you are using it for user interface because like I said earlier when you are testing in user interface the requirements keep changing and it's difficult to keep updating your automation scripts based on the changes so if your UI is not fixed do not use automation and next make sure that the application you're testing is stable enough else you might encounter a lot of errors will automate your testing and it will take a lot of time and effort to debug those errors and lastly stop automating the tests which run only once because it does not worth the time and effort on your part because you're running those tests only for once so what is the point of applying automation here so avoid automating such test modules so these are certain risk which you might encounter when you're performing automation so guys we have reached the end of the session I hope the session was informative and I hope these questions will help you to successfully pass the interview if you have any doubts or queries regarding all the questions which were discussed enough you can post them in the comment section below and we will get back to you as soon as possible thank you guys meet you in the next session I hope you have enjoyed listening to this video please be kind enough to like it and you can comment any of your doubts and queries and we will reply them at the earliest do look out for more videos in our playlist and subscribe to any Rekha channel to learn more happy learning
Info
Channel: edureka!
Views: 68,912
Rating: undefined out of 5
Keywords: yt:cc=on, test automation interview questions, test automation interview question, software testing interview questions, interview questions for software testing, software testing interview questions and answers, nterview questions on software testing, software testing material interview questions, testing interview questions, interview questions on testing, interview questions for automation testing, qa testing interview questions, software testing training, edureka
Id: i-U0W_SaWzc
Channel Id: undefined
Length: 49min 48sec (2988 seconds)
Published: Wed Mar 13 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.