QA interview common questions to expect

What is your background? This is a common question that can be answered with details on your basic computer skills including ability to handle microsoft office tools like excel, word. This question helps them determine how your background helps fit in qa role Why do you think microsoft excel is important for a QA? This is important because, most companies can't afford to purchase a separate requirement management tool. To address these scenarios, microsoft excel comes handy Do you know the basic need of proper requirement gathering? Requirement is the foundation on top of which a tester starts building his test cases. Proper requirements even with details like index page element colour is needed for a bug free product to be delivered out of the shop. Hence a tester will need to develop the practice of quick review of requirement document before starting test case development A common system/business requirement is to determine the number of users/visitors visiting a particular page, determine the total number of transactions during a particular timeslot say hour, day, week, month is very common. This will be a sure test scenario that can be easily tested using GUI front end application. The output is going to be simple numerical output Now, lets see the simple way to validate this by connecting to database backend. We are providing query syntax with Oracle 11g as reference. It is going to be almost same in all other database variants including SQL server 2012, SQL Server 2008, SQL Server versions, Mysql database versions,DB2 DB versions etc... So, what is the command to count the number of visitors who have made a visit so far? select count(*)  from tablename ; - This syntax will work if there is a unique table called visit for tracking visits We can take it further down and here are some flavours of it considering realworld database design select count(id) from visit; - Where id is the primary key defined on visit table. It is always unique and not null. So, this is a best reference Often primary key, unique key columns in table are unique. In a realtime scenario say we consider querying employee table. It is always not unique and we cannot make it unique. This applies to customer name in customer table etc. If there is a requirement to get list of unique names at database level here is the simple command select distinct columnname  from tablename; For example, select distinct customername from customers; In some schemas id starts at negative value say -2,-1,0,1 and actual information starts with positive integers and other values might be default. In such cases we can further tweak the query as follows select count(id) from visit where id > 0; Check this against front end values. 1) What is a transaction? This is a common sense question. In common terms it is nothing but a sale starting with product checkout upto signature confirmation (billing). As a tester you need to make sure that transaction is complete and this describes a quality system 2) Have you done query at DB level to confirm transaction? In order table (depending on DB design table name varies), there is a confirmation column that we can query against to confirm a transaction. A simple query would be select confirmation from order; - The output can be confirmed/complete/Yes/Y based on DB design Give an example of whitebox testing :- In many websites you might have read definition of whitebox testing.In this post I’ll be explaining the definition with a white box testing example. Lets consider you have been interviewed for the position of quality assurance engineer in a software firm whose major business is a major website with heavy traffic. They want you to explain white box testing. Here are simple strategies to make the interview more interesting and exciting. Make it more interactive with this scenario 1) Lets log onto www.yahoo.com 2) Lets have the test cases with us. Test case is an excel sheet with description called test steps that details on what needs to be done at the website level, positive scenario the expected results, negative scenario if the output is different than what is expected 3) Check the website against each and every test case. If the result is as expected, mark it as positive 4) If the result is not as expected mark it as negative Say, we click on mail icon at the left side bar, it should take us to mail login page. If it happens mark it as positive, if not mark it as negative. This is a simple example of white box testing. A first simple step for anyone entering testing field will help you perform more advanced testing including blackbox testing, stress testing, regression testing and much more Behaviour Driven Development Quick Overview: Before we install the necessary tools to automate our tests (test cases), we will look into the concept of various pieces that make automation testing possible. The foundation upon which automation lies is the Behavior Driven development popularly called BDD So, what is Behavior Driven Development? BDD is an agile software development technique It that follows an outside-in approach to software development Involves multiple stakeholders (Project manager, Developers, Business Analyst, Quality Assurance and any other stakeholder deemed necessary) - Stakeholders is the same set of terminology we make use of in a project. IT involves all the parties involved and that are likely to be impacted by the project Focus is to obtain well defined behavior through interactions with stakeholders before writing code - In most cases it is stakeholders who determine the exact need Easy to write test cases in natural language Strictly adheres to the concept of building software only for the purpose for which it was intended upon(every piece of code has some business value for which it was built) . Business users with domain knowledge determine the requirement Requirement the bulls eye can be easily hit via BDD So,how do I start with BDD? Cool tools like cucumber make this a fantastic experience We do have some cool BDD frameworks 1) PHPSpec - PHP applications are supported 2) PySpec - For Python Applications. One good example is google 3) Rspec - For ruby applications 4) JBehave - This supports Java applications 5) xSpec,XBehave - Supported with .NET applications Test engineer should learn unix : Test Engineer working in financial firms and startups now-a-days most commonly work in LAMP (Linux,MySQL,Apache,PHP/Perl/Python) stack. This LAMP stack mandates them to work with UNIX/Linux commands on a day to day basis. Lets take a look at some common UNIX commands used by test engineers on a daily basis. This knowledge will help you face test Engineer position in financial firms (or) web startups Does a software quality assurance engineer need Operating system knowledge? Though this doesnt fall under the forte of SQA, it is always advisable to have good grep on OS related concepts and commands so that QA engineer can easily identify the layer at which bug exists. The OS is the foundation upon which the entire application stack is supported. Hence bug analysis starts at the foundation 1) Which command is used to open a file/access a file? cat filename – Open a file, access a file 2) I want to change to different directory from current directory.What should I do? Use cd directory name – Change to the directoryname destination directory 3) How to move the directory from current location to new location? mv directory new directory path – Move the directory from current location to new location. This will move all the aubdirectories with in the directory. This permanently relocates the directory 4) How to copy files to new location? cp file newlocation – Copies files from existing location to new location. This is different than move as it creates only copy of files as opposed to move. This is the command based on which much complex hadoop commands like distcp have been created 5) We want to determine if a file exists in current path. How to do that? find – Command to locate a file in a given path/current location 6) We ask you to execute a shell script provided by developer. How will you do that? sh shellscript – This is simple command to execute a shell script 7) To list all the files in a given directory following commands can be used ls -l ls -ld To locate a file without knowing directory location use find ./ -filename To get list of files based on a pattern say log files use ls -l|grep *.log - As most of the log files have .log extension What is difference between Linux and Oracle Solaris? Both Linux and Oracle Solaris (formerly Sun Solaris) are flavours of UNIX. Solaris is the form of unix customized by Sun Microsystems. It is now acquired by Oracle Corporation. Linux is an open source. It is now being customized by many different companies like ORacle Corporation,Red Hat, SuSe, Debian etc. Some unix commands are common to both linux and solaris whereas some commands differ. Linux is a freeware and some vendors like fedora core offer linux which can be downloaded and installed for free.Solaris is licenced version from sun microsystems (can be fixed or floating licence).Both are operating systems upon which all the applications run. Sun has its own form of hardware called as sun servers which are used to host solaris.Check the documentation of the vendor before installing linux to confirm the compatability of linux in the particular hardware.There are many open source forms and groups that helps us information on linux.