Sunday 16 November 2014

testing interview


Q. 1: Why a software needs to be tested?
Every software product needs to be tested since, the development 'process' is unable to produce defect free software. Even if the development process is able to produce a defect free software, we will not be able to know unless & until we test it. Without testing it, we shall not be having enough confidence that it will work.
Testing not only identifies and reports defect but also measures the quality of the product, which helps to decide whether to release the product, or not.
<<<<<< =================== >>>>>>

Q. 2: What is the reason that Software have Bugs?
Following factors contribute to the presence of bugs in the software applications.
1) Software development tools like visual tools, class libraries, compilers, scripting tools, etc. usually introduce their own bugs in the system.
2) To err is human. Likewise programmers do make mistakes while programming.
3) In fast-changing business environments continuously modified requirements are becoming a fact of life. Such frequent changes requested by the customer leads to errors in the application already nearing completion. Last minute design changes leads to many chaos like redesign of the whole system, rescheduling of engineers, scrapping of the work already completed, fresh requirements of compatible hardware etc.
4) A quickly written but poorly documented code is bound to have bugs. It becomes difficult to maintain and modify such code that is badly written or poorly documented.
- it's tough to maintain and modify code that is badly written or poorly documented; the result is bugs. In many organizations management provides no incentive for programmers to document their code or write clear, understandable, maintainable code. In fact, it's usually the opposite: they get points mostly for quickly turning out code, and there's job security if nobody else can understand it ('if it was hard to write, it should be hard to read').
5) When project deadlines come too close & time pressures come, mistakes are bound to come.
<<<<<< =================== >>>>>>
Q. 3: What is the difference between QA and Testing?
QA stands for "Quality Assurance", and focuses on "Prevention" of defects in the product being developed. It is associated with the "Process" and activities related to the Process Improvement. Quality Assurance measures the quality of the processes employed to create a quality product.
Whereas "Testing" refers to "Quality Control", and focuses on Detection of Defect and removal thereafter. Or Quality Control measures the quality of a product.
<<<<<< =================== >>>>>>
Q. 4: What is the difference between Software Testing and Debugging?
Testing is the process of locating or identifying the errors or bugs in a software system.  
Whereas Debugging is the process of Fixing the identified Bugs. It involves a process of analyzing and rectifying the syntax errors, logic errors and all other types of errors identified during the process of testing.
<<<<<< =================== >>>>>>
Q. 5: What is the difference between a Bug and a Defect?
"Bug" is a problem or an error in the software code, which is found in the application during Testing. Bug is responsible for failure of the application to comply with the desired specifications.
Whereas "Defect" is problem reported by the customer during usage of the software application.
<<<<<< =================== >>>>>>
Q. 6: What is the difference between a Bug and an Enhancement?
"Bug" is a problem or an error in the software code, which is found in the application during Testing. Bug is responsible for failure of the application to comply with the desired specifications.
Whereas "Enhancement" is the additional feature or functionality found and added to the application as desired by the end user / real word customer or tester during the testing process.
<<<<<< =================== >>>>>>
Q. 7: What is the difference between Requirements & Specifications?
"Requirements" are statements given by the customer as to what needs to be achieved by the software system. Later on these requirements are converted into specifications which are nothing but feasible or implementable requirements. 
Whereas "Specifications" are feasible requirements derived from various statements given by the customer. These are the starting point for the product development team.
<<<<<< =================== >>>>>>
Q. 8: What is the sequence of succession in STLC - Software Testing Life Cycle?
1) Test Planning
2) Test Analysis
3) Test Design
4) Construction and verification
5) Testing Cycles
6) Final Testing and Implementation and Post Implementation.
<<<<<< =================== >>>>>>
Q. 9: What is the difference between Verification and Validation?
"Verification" involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications to confirm whether items, processes, services, or documents conform to specified requirements or not. This can be done with the help of checklists, issues lists, walkthroughs, and inspection meetings. The purpose of verification is to determine whether the products of a given phase of the software development cycle fulfill the requirements established during the previous phase or not.  
Whereas "Validation" is the determination of the correctness of the final program or software product produced from a development project with respect to the user needs and requirements. This involves actual testing of the product and takes place after verifications are completed. 
"Software Verification" raises the question, "Are we building the Product Right?"; that is, does the software conform to its specification.
"Software Validation" raises the question, "Are we building the Right Product?"; that is, is the software doing what the user really requires.
<<<<<< =================== >>>>>>
Q. 10: What is the difference between a Test Plan and a Use Case?
"Test Plan" is a document describing an introduction to the client company, intended scope, overview of the application, test strategy, schedule of testing activities, roles and responsibilities, deliverables and milestones. It describes test items, features to be tested, testing tasks, details of the personnel performing each task and any risks requiring contingency planning.  
Whereas a "Use Case" describes the process as to how an end user uses a specific functionality in the application. It is a summary of user actions and system response to the user actions. It contains the flows like typical flow, alternate flow and exceptional flow. It also contains pre condition and post condition.

No comments:

Post a Comment