Monday, July 2, 2007

Software Testing Interview Questions - 1(a)

What is 'Software Testing'?
Software Testing involves operation of a system or application under controlled conditions and evaluating the controlled conditions should include both normal and abnormal conditions.

What is 'Software Quality Assurance'?
Software Quality Assurance involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with.

What is the 'Software Quality Gap'?
The difference in the software, between the state of the project as planned and the actual state that has been verified as operating correctly, is called the software quality gap.

If you need more "Jobs" / "Placement Papers" Click & Subscribe now at http://finance.groups.yahoo.com/group/onestop_jobs/

What is Equivalence Partitioning?
In Equivalence Partitioning, a test case is designed so as to uncover a group or class of error. This limits the number of tests cases that might need to be developed otherwise. Here input domain is divided into classes of groups of data. These classes are known as equivalence classes and the process of making equivalence classes is called equivalence partitioning. Equivalence classes represent a set of valid or invalid states for input conditions.

What is Boundary Value Analysis?
It has been observed that programs that work correctly for a set of values in an equivalence class fail on some special values. These values often lie on the boundary of the equivalence class. Boundary value for each equivalence class, including the equivalence class of the output, should be covered. Boundary value test cases are also called extreme cases. Hence, a boundary value test case is set of input data that lies on the edge or boundary of a class input data or that generates output that lies at the boundary of a class of output data.

If you need more "Jobs" / "Placement Papers" Click & Subscribe now at http://finance.groups.yahoo.com/group/onestop_jobs/


Why does software have bugs?
Miscommunication or no communication - understand the application's requirements.
Software complexity - the complexity of current software applications can be difficult to comprehend for anyone without experience in modern-day software development.
Programming errors - programmers "can" make mistakes.
Changing requirements - A redesign, rescheduling of engineers, effects on other projects, etc. If there are many minor changes or any major changes, known and unknown dependencies among parts of the project are likely to interact and cause problems, and the complexity of keeping track of changes may result in errors.
Time pressures - scheduling of software projects is difficult at best, often requiring a lot of guesswork. When deadlines loom and the crunch comes, mistakes will be made.
Poorly documented code - it's tough to maintain and modify code that is badly written or poorly documented; the result is bugs.
Software development tools - various tools often introduce their own bugs or are poorly documented, resulting in added bugs.

What does "finding a bug" consist of?
Finding a bug consists of number of steps that are performed:
Searching for and locating a bug Analyzing the exact circumstances under which the bug occurs Documenting the bug found Reporting the bug to you and if necessary helping you to reproduce the error Testing the fixed code to verify that it really is fixed

What will happen about bugs that are already known?
When a program is sent for testing (or a website given), then a list of any known bugs should accompany the program. If a bug is found, then the list will be checked to ensure that it is not a duplicate. Any bugs not found on the list will be assumed to be new.

What's the big deal about 'requirements'?
Requirements are the details describing an application's externally perceived functionality and properties. Requirements should be clear & documented, complete, reasonably detailed, cohesive, attainable, and testable. A non-testable requirement would be, for example, 'user-friendly' (too subjective). Without such documentation, there will be no clear-cut way to determine if a software application is performing correctly.

What can be done if requirements are changing continuously?
A common problem and a major headache.
It's helpful if the application's initial design allows for some adaptability so that later changes do not require redoing the application from scratch. If the code is well commented and well documented this makes changes easier for the developers. Use rapid prototyping whenever possible to help customers feel sure of their requirements and minimize changes. Be sure that customers and management understand the scheduling impacts, inherent risks, and costs of significant requirements changes. Design some flexibility into test cases (this is not easily done; the best bet might be to minimize the detail in the test cases, or set up only higher-level generic-type test plans)


If you need more "Jobs" / "Placement Papers" Click & Subscribe now at http://finance.groups.yahoo.com/group/onestop_jobs/