1. What is a “bug?”
Answer : A bug is a bug is an error, flaw, mistake, failure, or fault in a computer code (program) that prevents it from behaving as intended (e.g., producing an incorrect result). (You can also add this: When the expected results (accordingly to the requirement documents) don’t match with the actual results (while testing), then it is considered a bug)
2. How would you ensure that you have covered 100% testing?
Answer: The testing coverage is defined by exit criteria (There is exit criteria and entry criteria in the Test Strategy). For example, if the exit criteria says “The software will be acceptable to the client only if there are no critical defects, no high defects, no medium defects and only two low defects”, then all the critical, high, medium should be zero. Only 2 low defects are acceptable. Thus, 100% coverage is measured by the exit criteria. Also, 100% test cases must be executed in order to cover 100% of testing.
3. What problems did you face in the past? How did you solve it?
(You will be OK if you just give one of the problems below, not all of them)
Answer: I had many problems while testing applications in the past.
As far as I remember one of them (then describe one of them from below), this was the scenario:
(i) It was a web-based application. I was working on a module called “Transaction Summary”. There was “Submit” button on that page. After entering data in the all the fields, for example, First Name, Last Name, Social Security Number, Date of Birth and so on, I clicked the Submit button. Once I clicked Submit button, an error page displayed, “Page cannot be found…”. Since it was a critical defect, I immediately informed the Test Lead. There was a chaos in the room. All the developers, Database Administrators and Testers gathered in my cube (room). Nobody could tell exactly what was wrong with it. Finally, one smart guy checked into the database and found out that one of the files in the database was closed. The status of all the files should be in the open status. Once the status of the closed file was put in the “open” status, the application worked fine.
(ii) One of the problems was in the Login window (page). When the user enters and Login Name and Password, then Password should be encrypted. One of the Test Cases was that I needed to open database and see whether the password is encrypted or not. I found out it was not encrypted. I reported it as a bug (defect) and it was fixed in the next release (build).
(iii) Defects I have found in a project was a defect to close a window (pop up).
For example, in the last project, on a page, there was a button called “More Information”. Once the user clicked that button, the system would open a new window (pop up).We could close the new window in 3 ways:
-By clicking X at the top right corner of the page
-By clicking “Close” button on the page
-By pressing combination keys (Alt+F4) on the key board
Although the combination key (Alt+F4) was not mentioned in the test case, I just wanted to try how the application reacts when Alt+F4 is pressed. Then I pressed Alt+F4. The result was a disaster-the application crashed (broke). The application disappeared from the computer monitor. Since it was the last day of testing for us, it brought chaos in our Managers, Leads and the whole teams. Finally, the developers disabled Alt+F4 as a temporary solution and the application went into production.
(iv) Another problem was that a user would search for branch location information of a bank. The user logs in by using User Name and Password. After the log in, on the “Search Location” page, the user enters and zip code of the location he wants to find, then clicks Find button. After that the system (application) gives a number of branch locations. The user now clicks “Request Information” for one of the branches. As soon as the user clicks “Request Information” button, the application breaks (displays “Page cannot be found” error). I logged this defect as a critical defect. When the developers and database administrator looked into it, then they found out that in one of the tables, the data was not recorded. In all the tables (UserProfile table, ClientID table and SessionID table), the data should be populated with the information entered by the user. For some reason, in one of the tables, it was blank (null). Once they wrote a small code to populate data (enter data) to the table, the application started working.
(v) In my previous project, when the customer wants to upload a document, for example, a copy of a monthly statement (in Word format), on the website, the system should automatically change the Word document into .pdf format. Once the document was uploaded, I saw that the fields in the .pdf document were interchanged (misplaced). For example, the First Name displayed in the Last Name section. Date of Birth displayed in the Social Security Number field and so on. We found out that the problem was a mapping problem (remember this word). Once the mapping was correct, I tested in the new build. It was fixed.
(vi) The most common problem that I have faced in my previous projects are the Java script errors, data connectivity, error, HTTP 500 error (This error occurs when server is down), HTTP 400 error (when file is not found) and so on.
(vii) “Father” pop up displayed when Print/Print Preview button clicked. (This was coded by the developer to mark this coding portion (for his/her own purpose as a mark to indicate where he/she made changes, however, forgot to remove it). Once the developer fixed it, it still displayed the same thing (because it was in the servers memory and could not go). Now, I had to reset memory of the server from my machine. Therefore, what I did is, I went to the website I was testing (for example, http://mysite.app.org/My_profile) and added reset.aspx at the end of the URL (Now the URL becomes http://mysite.app.org/My_profile/reset.aspx and hit enter. It took me to the server memory and I selected section and submitted the query and it was cleared. Retested again and it is now OK.
(viii) I was testing a web application. On one page, I clicked Save & Continue button twice (my mistake). Once this button is clicked twice, the system displayed an error message, “Could not save the answers, please contact technical support”. (When clicked only once, the button works fine.).
Solution: Once the user clicks the button once, the button was disabled later so that the user cannot click twice.
(ix) I was testing a web-based application. Once all the fields are entered on the one of the pages, we had Print Preview button. If the user clicks this button, we were supposed see the same information in a new window in PDF format. While looking at the data in PDF file, there were some fields missing, for example, Date of Birth was missing in the PDF file.
4. Tell me about the worst boss you’ve ever had. (Here, you should be careful not to say any negative words about the past boss. This will give a reflection that you cannot work with different nature of people. You should be able to show them that you can cope with any king of boss. Therefore, just take an idea below how the answer should be.)
Answer: I can hardly think of any Manager that was really bad. But when I compare, then I remember of a Test Lead who was just made a lead from the developers team. She used to feel that she has been very proud of her position and used to boss around. Sometimes, she used to call home and check where I was and what I was doing. Or have I completed my job before leaving and so on. I think, whatever she did, was in the benefit of the company and myself in the long run which would give me more confidence in future.
5. What do you like about QA?
Answer: The best thing I like about QA is, I like the job which is more process oriented. For example, we have to work right from reading the requirement documents, providing feedback to the Business Analysts as necessary, writing test plans, test cases, execute the test cases, interaction with different developers, attend walk-through meeting and so on. I am a very detailed oriented person. When I test applications, I try to get into the depth of functionality so that I don’t miss out anything. Finally, I love logging defects.
6. What are all the basic elements in a defect report?
Answer: The basic elements in a defect report are: Defect ID, Header, Description, Defect Reported by, Date, Status, Version, Assigned to, Approved by, Module where the defect was found and so on.
7. What is the difference between verification and validation?
Verification: Verification is a process to ensure that the software that is made, matches the original design. In other words, it checks whether the software is made according to the criteria and specification described in the requirement document. It is to check whether you built the product right as per design. It is a low level checking. (It is done in walk-through meetings generally). It checked whether it is made accordingly to the design..
Validation: Validation is a process to check whether the product design fits the client’s need. It checks whether you built the right thing. It checks whether it is designed properly.
8. How do you know it is sufficient testing?
Answer: Every company has entry and exit criteria. When we test applications, we refer to exit criteria. When we are about to finish testing, then the QA Team (QA Manager) refers to the exit criteria (exit criteria tells the level of defect that you can be comfortable with before it goes to production. For example, there should be ZERO critical defect, ZERO high level defect, ZERO medium defect, 1 Low level defect, all the test cases must be 100% executed etc). Once the exit criteria meet the requirements, then the software is considered to be sufficiently tested.
Every company has entry and exit criteria. When we test applications, we refer to exit criteria. When we are about to finish testing, then the QA Team (QA Manager) refers to the exit criteria (exit criteria tells the level of defect that you can be comfortable with before it goes to production. For example, there should be ZERO critical defect, ZERO high level defect, ZERO medium defect, 1 Low level defect, all the test cases must be 100% executed etc). Once the exit criteria meet the requirements, then the software is considered to be sufficiently tested.
9. How to derive test scenarios and use cases? What are the contents and format?
Answer: Test scenarios are derived from requirement documents. We follow each and every functionality (called business rules) mentioned in the requirement document. One functionality can have multiple business rules. For example, let us say in there is one requirement called “Login”. This “Login” may have various scenarios. For example, one scenario is, enter the right User ID and wrong password. The system should display an error message. Another scenario would be to enter wrong User ID and right Password. The system should display an error message. The third scenario could be to enter the right User Name and right Password. The system should allow the user to get into the system. This is how the test cases are derived from the requirement documents or from the Use Cases.
10. What are the types of test cases that you write?
Answer: We write test cases for smoke testing, integration testing, functional testing, regression testing, load testing, stress testing, system testing and so on.
11. How to write Integration test cases?
Answer: I have never written separate Test Cases Integration Testing. Since Integration Testing is a test to check whether the all the modules are integrated together or not (meaning that when the developers compile all their module and make a build, all modules should be working when they are combined together and those modules when combined, should work as expected). If they are not integrated (combined) in a nice way, then the application breaks. Basically, when we do the functional testing, the integration testing is automatically done. This is my experience.
12. How to write Regression test cases? What are the criteria?
Answer: Regression test cases are also based on the requirement documents. They are written more into detail and with every release (build), the testers need to do regression testing. The criteria for regression testing are; there should be no major defects while we do our smoke test and functional testing.
13. Is there a format for a test case? Do you follow any methodology for numbering test cases?
Answer: Yes. It depends upon the company how the company has followed the numbering of test cases. However, normally, it is just a simple numbering in most of the time But some companies may also relate this numbering to the requirement number. For example, if the requirement for Login is “REQ-LOG-001”, then we can number the test cases like REQ-LOG-001-001 and so on.
14. What is Test Harness?
Answer: (Definition from www.wikipedia.org) “In software testing, a test harness or automated test framework is a collection of software and test data configured to test a program unit by running it under varying conditions and monitor its behavior and outputs. It has two main parts: the test execution engine and the test script repository.”
15. How to write User Acceptance Test plan & test cases?
Answer: The way of writing Test Plan and Test Cases is the same in all the test phases. However, specifically for User Acceptance Testing, the testers use data nearly real data (meaning that the data is very much similar to the production data or real data).