Thursday, 6 July 2017

Experienced Testing Interview Q&A – Part 3

1. Tell me something about yourself?
I started off my career as a QA in the year ____. Since then I have worked on several operating systems such as Windows XP,2007, Windows 8 etc.Testing applications come very handy to me. I have taken care of applications in a domain such as Healthcare, CRM, ERP etc.
Being a QA, I also have experience in the field of writing. Test Plans, Test Cases are a few examples. I have also attended several meetings with project managers and business analysts.
When different kinds of testing come into question, I have explored that field as well. Whether it is Smoke Testing, Integration Testing, Regression Testing, Blackbox or UAT Testing, I have given all of them a shot.Writing defects is something other I laid special emphasis on. I would always assess, reassess, and test them thoroughly before passing it on. If the defects were not fixed, I would make the effort to reopen them again.
=================================================================================================================

2. What do you think is a test plan? Have you written one before? What does it usually consist of?
A test plan is a sort of document which analyzes the resource, scope, approach and schedule of several testing activities. It will help you to find items that need to be tested, its features that need further testing, the risks that come with some and the solutions as well.
Yes I have written a test plan before. It consists of history, contents, introduction, scope, overview and approach. The risks and assumptions are not left out either.
=================================================================================================================

3. Define a Test Case and a Use Case? What do they consist of?
A test case is again a document which gives you a step by step detailed idea on how you can test an application. It usually comprises of results (pass or fail), remarks, steps, outputs and description.
A use case on the other is a document of another kind. It helps you understand the actions of the user and the response of the system found in a particular functionality.
=================================================================================================================

4. What is a test strategy?
A test strategy helps you understand the process of testing in every software development cycle. It has been made in such a way that all project managers and developers will be informed about some of the most important issues of testing. All objectives, methods, total time and the resources which are needed for the project are explained.
A few components you will always find in a test strategy are test level and test schedules, test groups and test priorities, test summary, requirements of the environment, responsibilities etc.
=================================================================================================================

5. Name the different kinds of software testing
A more structured answer would be

1. Functional / Non-functional
1a. Non-Functional: usability, portability, performance, load, stress, endurance, soak, reliability, install-ability, maintenance-ability, security, scalability
2. White-box / Gray-box / Black-box
3. Unit tests / Integration tests (inter-app / outer-app) / System tests / UAT
4. Alpha / beta / A-B
5. Supporting types: regression, smoke

=================================================================================================================


6. What is SQL?
SQL stands for Structured Query Language. It is an American National Standards Institute computer language which is used for analyzing and assessing the database systems.The statements of SQL are used to get hold of data and retrieve it. They only work with database programs such as MS Access, Informix, Oracle, Sybase.
However there are also different kinds of SQL languages found today. They have to be in compliance with the standards of the ANSI. The keywords should be supported in the same way.
=================================================================================================================

7. Describe Change Control:
Change Control is also popularly known as Change Request. It tells us in details about the additional functionalities which are included once the Business Requirement Document has been signed off.
=================================================================================================================

8. What is a build?
A build is basically a component or a folder that contains one of the modules of the software. This is usually prepared by the Configuration Management Team.

=================================================================================================================

9. Describe the bug life cycle
Bug life cycle basically comprises of numerous statuses of an error during its life cycle. A few examples are open, deferred, solved, reopened, fixed, solved and closed. You may also speak about this process and the way in which you monitor and determine the status with the help of several points.
=================================================================================================================

10. Tell us about the biggest bug you have ever found.
In my writing experience, I have found several defects. Some of them were small whereas some of them were huge. The biggest one I have encountered so far is in the previous project on a page where I found a button called “More Information”. Once the person using the computer pressed that button, a new window would automatically pop up. I would then close the window by using three ways. First I would click on ‘X’ located on the top right corner of the page. I would then click on Close button and finally the combination keys on the keyboard.
=================================================================================================================

11. How do you plan on dealing with your team members?
There are higher possibilities that I won’t be the only one in the team. At times dealing with the team members can get very difficult and frustrating. There will be quarrelsome dispositions and misunderstandings and some will also try to ignore the other. But my purpose is to look beyond all of this. We are a team and we should work together to reach a common goal. I will be friendly and invite them over for coffee. As a human, it is very important to share feelings and have important discussions and that is exactly what I intend to do. This is something that not only me but everyone else in a working environment should apply.
=================================================================================================================

12. Have you used automation tools before?
For Automation Tools we are considering Functional Automation Testing Tools.
In some projects, used Selenium Web-driver for building Smoke and Critical Test Cases.
Also used Jmeter for performance testing to check some performance parameters.
=================================================================================================================
13. Do you like the QA job? If yes, tell us why?
Yes I do like the QA job. The only reason behind this is because the job is process oriented. This means that here I have the opportunity to do try several things at the time. I can analyze the needed documents, test the application, write test plans and test cases, prepare reports and retest them once again if the need arises. My favorite task would be reducing defects. The more defects I find while working, the happier I will be.
=================================================================================================================

14. Consider if there is no Test lead, No Test Manager and QA Manager. If you are the senior test engineer, you are getting pressure from the client to give the build. But you see that, there r 5 high and 5 low severity bugs. So, what you will do and how you interact with the client?

As you said 5 bugs are high and 5 bugs are low severity. If there is no test lead or manager not available as a senior Testing Engineer I would concentrate on 5 high severity bugs.First I will understand them and send them to the particular development team with help of project manager. If required I will explain them the situation and about the bug severity.

Also I will interact the client behalf of my test team and I will make them understand the current status of the application.
=================================================================================================================


15. Suppose a website contains 20 pages & having similar type of error in most pages. Tester checked one page & posted the bug in a bug-tracking system including that this bug remains in most pages but developer only debugged one page (the location Tester had written). Now who is responsible to check other pages Developer or Tester ?

Yes, it is responsibility of the tester to identify the bug. While Posting bugs we have to clearly specify that this bug is repeated in other screen also.

By mistake you have posted a bug saying that error is displayed in a single page ….Then there is a thing called Defect discussion where the nature of the bug is discussed with the development team at the end of the day where the development may come to know the nature of the bug.
=================================================================================================================

16. You have completed a project and release date is next day, you got one big problem but that problem can’t be resolved in short time and the estimate is 10 days. What are your options?

We could think of any workaround which would be suitable at that point of time for the problem, and make a note in the Release notes.

In case there is no workaround, then a note should be mentioned in the release notes stating it as a known issue
=================================================================================================================


17. You have tested the application and it is released. The user asks for some changes in the project and gives one week time to complete it. Out of the one week, 6 days is taken by the developer to make the changes. So you have only one day to test it. What will you do in the case in case of manual testing?

In that case we can test the main part of the application, we can found 80% of errors in that main functionality only, for that only we can mainly concentrate on main functionality.
=================================================================================================================

18. If a bug has high severity then usually that is treated as high priority, then why do priority given by project managers and severity given by testers?

High severity bugs affects the end users .Testers tests an application with the users point of view, hence it is given as high severity. High priority is given to the bugs which affects the development. Project managers assign a high priority based on development / deployment point of view.
=================================================================================================================


19. If you have executed 100 test cases , every test case passed but apart from these test case you found some defect for which test case is not prepared,then how you will report the bug?
While reporting this bug into bug tracking tool , first you will generate the test case, write the steps to reproduce the bug. Then bug will be reported.
=================================================================================================================

20. Suppose the product/application has to deliver to client at 5.00PM, at that time you or your team member caught a high severity defect at 3PM.(Remember defect is high severity)But the client cannot wait for long time.You should deliver the product at 5.00Pm exactly. What procedure you will follow?

The bug is of high severity. So we can send the application to the client and find out the priority of the feature having bug. if its priority is low, then we can hide that feature otherwise we should:-
A) explain the situation to client and ask some more time to fix the bug.
B) If the client is not ready to give some some time then analyze the impact of defect/bug and try to find workarounds for that.

Experienced Testing Interview Q&A – Part 1

1) Have you written Test Plan? What is a Test Plan? What does it include?
-Yes I have written/contributed to the test plan.
– A test plan is a document describing the scope, approach, objectives, resources, and schedule of a software testing effort. It identifies the items to be tested, items not be tested, 
who will do the testing, the test approach followed, what will be the pass/fail criteria, training needs for team, the testing schedule etc.
– A Typical Test Plan for as per IEEE-829 contains following)a) Test plan identifier
b) Introduction
c) Test items
d) Features to be tested
e) Features not to be tested
f) Approach
g) Item pass/fail criteria
h) Suspension criteria and resumption requirements
i) Test deliverable
j) Testing tasks
k) Environmental needs
l) Responsibilities
m) Staffing and training needs
n) Schedule
o) Risks and contingencies
p) Approvals
=================================================================================================================

2)  What is a Test Case? What does it include?
test case is a document, which has a set of test data, preconditions ,expected results developed for a particular test scenario in order to
verify compliance against a specific requirement.- Typical Test Case Parameters consists of:
a) Test Case ID
b) Test Scenario
c) Prerequisite
d) Test Case Description
e) Test Steps
f) Test Data
g) Expected Result
h) Actual Result
i) Test Status
j) Comments
=================================================================================================================

3) How many Test Cases did you write in your last project?
I wrote about 1000 Test Cases in my last project.
(The reasonable number of Test Cases varies from 500 to thousands.
The number 1100 test cases can be completed in a 8 month project duration).
=================================================================================================================

4) What document did you refer to write the Test Cases?
Requirement document. (NOTE: It can also be Use Cases, or
Design Document and purely depends on company)
=================================================================================================================

5)  Did you have a situation where you did not have any documents
(no requirement document, no Use Cases, or no Design Document) and you had to write the Test Cases? How did you write the Test Cases?
Yes. I have been to that kind of scenarios in some companies.
There were companies where they had no documents at all
(As requirement doc becomes obsolete sometimes for new or maintenance projects)In that case, I had to discuss the application scenario and functionality with the Business Analysts or developer. Sometimes I prepared document indicating main work-flow of the application.
=================================================================================================================

6) Can you tell me what a Use Case is?
A use case is a document that describes the user action and system response for a particular functionality.
For example,  a Use Case for Banking System can have the following user interactions:
BankApplication_UseCase
=================================================================================================================

7) What is Software Development Life Cycle?
The systems (or software) development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application.
It includes the following different stages:
1.Requirement phase<
2.Design phase
3.Coding (programming)
4.Testing
5.Release (Production)
6.Maintenance (Support)
=================================================================================================================

8) What is Build? What is mean by Patch ?
Build:
When each of the different modules of software is prepared, they are put in a single folder by the Configuration Management Team and it is called the ‘Build’.In other word, the developers put their code in the
shared location (folder) and all those code (modules) are combined together
so that it is a complete application that works.Patch:
A patch (sometimes called a “fix”) is a quick repair job for a piece
of programming. During a software product’s beta test distribution
or try-out period and later after the product is formally released,
problems/bugs will almost be found.
A patch is the immediate solution that is provided to users.
E.g. Check that for HP UFT they release patches to provide support
for new browser version or to fix any bugs that is found after release.
=================================================================================================================

9) What is meant by the Build Deployment?
When the Build so prepared by the Configuration Management Team is sent to
different Test Environments, it is called the Build Deployment.
=================================================================================================================

10)What is Requirement Trace-ability Matrix?
Tractability matrix is used to cross check the test cases as per the requirement of the test cases.  In other words, it checks whether the each functionality is covered in the Test Cases as per requirement document.


Experienced Testing Interview Q&A – Part 2


1) What is Exploratory Testing and when should it be performed?
The definition of Exploratory Testing is “simultaneous test design and execution” against an application. This means that the tester uses his domain knowledge and testing experience to predict where and under what conditions the system might behave unexpectedly. As the tester starts exploring the system, new test design ideas are thought of on the fly and executed against the software under test.
On an exploratory testing session, the tester executes a chain of actions against the system, each action depends on the result of the previous action, hence the outcome of the result of the actions could influence what the tester does next, therefore the test sessions are not identical.
This is in contrast to Scripted Testing where tests are designed beforehand using the requirements or design documents, usually before the system is ready and execute those exact same steps against the system in another time.
Exploratory Testing is usually performed as the product is evolving (agile) or as a final check before the software is released. It is a complimentary activity to automated regression testing.

=================================================================================================================

2) What Test Techniques are there and what is their purpose ?
Test Techniques are primarily used for two purposes:a) To help identify defects,
b) To reduce the number of test cases.a)Equivalence partitioning is used to reduce number of test cases by identifying different sets of data that are not the same and only executing one test from each set of data
b)Boundary Value Analysis is used to check the behavior of the system at the boundaries of allowed data.
c)State Transition Testingg is used to validate allowed and disallowed states and transitions from one state to another by various input data
d)Pair-wise or All Pairs Testing is a very powerful test technique and is mainly used to reduce the number of test cases while increasing the coverage of feature combinations.
=================================================================================================================

3)How do you test the login feature of a web application?
Possible answer to this questions :a) Sign in with valid login, Close browser and reopen and see whether you are still logged in or not.
b) Session management is important – how do we keep track of logged in users, is it via cookies or web sessions?
c)Sign in, then logout and then go back to the login page to see if you are truly logged out.
d) Login, then go back to the same page, do you see the login screen again?
e) Sign in from one browser, then open another browser to see if you need to sign in again?
f) Login, change password, and then logout, then see if you can login again with the old password.
=================================================================================================================

4)How do You Verify the Results of Your Search on Search Results Page?
At first instance, we need to know where the data is coming from. Are they coming from a database? Or some XML files from 3rd party websites?
Once we have this information, we can start comparing the results we see on the result page with the results from the source, e.g. database.
Another option is to use mocks to generate the data that we need so we can fully control the data that we see on the search results page.
=================================================================================================================

5) How is Web Application Testing different to Desktop Application Testing?
Web Applications are typically hosted on a server which we can access via a web browser, where as desktop applications are installed on the client’s machine.
This setup opens a whole new testing challenges: Performance and Security testing become important as the application is open to a wide audience. Good design and usability are also important.
Other important factors that come to play are testing on multiple browsers, multiple devices, redirection and responsiveness.
Also we should not forget about Javascript, CSS, Cookies, W3C standards, traffic monitoring, third party tags testing, all of which are important in Web Application Testing.
=================================================================================================================

6) What are the HTTP response code blocks and what do they mean?
After a request is sent to a server, there are different possible response codes which can be returned by the server:
The blocks are:
a)2xx for Success, the most common one is 200 which means “OK”.
b)3xx for Redirection, the most common ones are 301 and 303 which mean “Permanent Redirect” and “Redirect for Undefined Reason”, respectively.
c)4xx for Application Error, the most common ones are 403 and 404 which mean “Forbidden” and “Not Found”, respectively.
d)5xx for Server Error, the most common one is 500 which means “Server Error”.
=================================================================================================================

7)How would you Test a Service Oriented Architecture (SOA) Web Application?
The testing of web applications that communicate with a web service can be broken down in two parts:

a) Testing of the Web Service in isolation. Each web service has one or more functions which can be tested by sending appropriate requests and analyzing the response and verifying correct data is returned in the response. We can use tools such as SoapUI to test a Soap Service or Rest Client to test a RESTful web service.
b) Integration Testing of Web Service with the Front End. The integration testing is also important as it can highlight issues with data in the request and display of the response.
The reason for this separation is to be able to identify issues in the web service much quicker and easier to debug.
=================================================================================================================

8)Suppose you have a Login form which is connected to an Authentication Web Service. What tests would you perform at which layer?
a) All the input/output validation should be tested at the API layer calling the Authentication Web Service. Tests such as valid/invalid username/password combinations as well as verifying correct error messages.
b) The location of the display of error messages, their color and font should be tested at login web page. Also Javascript and Cookies tests if applicable needs to be tested at front-end login page.
=================================================================================================================

9) There are many ways to test a website and there could be lots of test cases to execute, how can you make sure the web application is fit for release?
a) We can Automate majority of test cases, but most importantly we can use test techniques such as Pair-wise testing to reduce combinations and/or model based testing to plan user journeys to ensure major functionality of web application works.
b) We can also use paralytics to gain insight into what users do on the website, which page is most popular and which feature is most used by users.
=================================================================================================================

10) What is a Web Service ?
A Web Service is a program that can be accessed by other programs over the web (http).For example, let’s assume that you have a function that prints a text in HTML format. The application’s target is the web browser which renders the output and a human being can easily read the text on the page.
On the other hand, a web service’s target audience is other programs or other web services which consume the data served by the web service. The output is normally in a standard language which can be understood by other programs. Take the above example, if the web service outputs the text in say XML format, then other web services which can read or understand XML, can use the output.
The main advantage of a Web Service is that applications can be written in any language, but they can communicate and exchange data with each other through a Web Service. Software applications written in various programming languages and running on various platforms can use web services to exchange data over the internet (HTTP). This interoperability (e.g., between Java and Python, or Windows and Linux applications) is due to the use of open standards (XML, SOAP, HTTP).
a)SOAP (Simple Object Access Protocol)
b)UDDI (Universal Description, Discovery and Integration)
c)WSDL (Web Services Description Language)