QA Testing

  Home  Testing  QA Testing


“QA Testing Interview Questions and Answers will guide us now that Software QA Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software QA Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Learn QA Testing by this Software QA Testing Interview Questions with Answers guide”



159 QA Testing Questions And Answers

121⟩ What is Test Suite?

A collection of tests used to validate the behavior of a product. The scope of a Test Suite varies from organization to organization. There may be several Test Suites for a particular product for example. In most cases however a Test Suite is a high level concept, grouping together hundreds or thousands of tests related by what they are intended to test.

 213 views

122⟩ What is Test Specification?

A document specifying the test approach for a software feature or combination or features and the inputs, predicted results and execution conditions for the associated tests.

 240 views

123⟩ What is Test Script?

Commonly used to refer to the instructions for a particular test that will be carried out by an automated test tool.

 209 views

125⟩ What is the best tester to developer ratio?

Reported tester: developer ratios range from 10:1 to 1:10. There's no simple answer. It depends on so many things, Amount of reused code, number and type of interfaces, platform, quality goals, etc.

It also can depend on the development model. The more specs, the less testers. The roles can play a big part also. Does QA own beta? Do you include process auditors or planning activities?

These figures can all vary very widely depending on how you define 'tester' and 'developer'. In some organizations, a 'tester' is anyone who happens to be testing software at the time -- such as their own. In other organizations, a 'tester' is only a member of an independent test group.

It is better to ask about the test labor content than it is to ask about the tester/developer ratio. The test labor content, across most applications is generally accepted as 50%, when people do honest accounting. For life-critical software, this can go up to 80%.

 215 views

126⟩ How can new Software QA processes be introduced in an existing organization?

- A lot depends on the size of the organization and the risks involved. For large organizations with high-risk (in terms of lives or property) projects, serious management buy-in is required and a formalized QA process is necessary.

- Where the risk is lower, management and organizational buy-in and QA implementation may be a slower, step-at-a-time process. QA processes should be balanced with productivity so as to keep bureaucracy from getting out of hand.

- For small groups or projects, a more ad-hoc process may be appropriate, depending on the type of customers and projects. A lot will depend on team leads or managers, feedback to developers, and ensuring adequate communications among customers, managers, developers, and testers.

- In all cases the most value for effort will be in requirements management processes, with a goal of clear, complete, testable requirement specifications or expectations.

 237 views

127⟩ What are 5 common problems in the software development process?

1. poor requirements - if requirements are unclear, incomplete, too general, or not testable, there will be problems.

2. unrealistic schedule - if too much work is crammed in too little time, problems are inevitable.

3. inadequate testing - no one will know whether or not the program is any good until the customer complains or systems crash.

4. featuritis - requests to pile on new features after development is underway; extremely common.

5. miscommunication - if developers don't know what's needed or customer's have erroneous expectations, problems are guaranteed.

 239 views

128⟩ What are 5 common solutions to software development problems?

1. solid requirements - clear, complete, detailed, cohesive, attainable, testable requirements that are agreed to by all players. Use prototypes to help nail down requirements.

2. realistic schedules - allow adequate time for planning, design, testing, bug fixing, re-testing, changes, and documentation; personnel should be able to complete the project without burning out.

3. adequate testing - start testing early on, re-test after fixes or changes, plan for adequate time for testing and bug-fixing.

4. stick to initial requirements as much as possible - be prepared to defend against changes and additions once development has begun, and be prepared to explain consequences. If changes are necessary, they should be adequately reflected in related schedule changes. If possible, use rapid prototyping during the design phase so that customers can see what to expect. This will provide them a higher comfort level with their requirements decisions and minimize changes later on.

5. communication - require walkthroughs and inspections when appropriate; make extensive use of group communication tools - e-mail, groupware, networked bug-tracking tools and change management tools, intranet capabilities, etc.; insure that documentation is available and up-to-date - preferably electronic, not paper; promote teamwork and cooperation; use prototypes early on so that customers' expectations are clarified.

 240 views

129⟩ What is good code?

'Good code' is code that works, is bug free, and is readable and maintainable. Some organizations have coding 'standards' that all developers are supposed to adhere to, but everyone has different ideas about what's best, or what is too many or too few rules. There are also various theories and metrics, such as McCabe Complexity metrics. It should be kept in mind that excessive use of standards and rules can stifle productivity and creativity. 'Peer reviews', 'buddy checks' code analysis tools, etc. can be used to check for problems and enforce standards.

For C and C++ coding, here are some typical ideas to consider in setting rules/standards; these may or may not apply to a particular situation:

- minimize or eliminate use of global variables.

- use descriptive function and method names - use both upper and lower case, avoid abbreviations, use as many characters as necessary to be adequately descriptive (use of more than 20 characters is not out of line); be consistent in naming conventions.

 226 views

130⟩ What is good design?

'Design' could refer to many things, but often refers to 'functional design' or 'internal design'. Good internal design is indicated by software code whose overall structure is clear, understandable, easily modifiable, and maintainable; is robust with sufficient error-handling and status logging capability; and works correctly when implemented. Good functional design is indicated by an application whose functionality can be traced back to customer and end-user requirements. For programs that have a user interface, it's often a good idea to assume that the end user will have little computer knowledge and may not read a user manual or even the on-line help; some common rules-of-thumb include:

- the program should act in a way that least surprises the user

- it should always be evident to the user what can be done next and how to exit

- the program shouldn't let the users do something stupid without warning them.

 209 views

131⟩ What makes a good test engineer?

A good test engineer has a 'test to break' attitude, an ability to take the point of view of the customer, a strong desire for quality, and an attention to detail. Tact and diplomacy are useful in maintaining a cooperative relationship with developers, and an ability to communicate with both technical (developers) and non-technical (customers, management) people is useful. Previous software development experience can be helpful as it provides a deeper understanding of the software development process, gives the tester an appreciation for the developers' point of view, and reduce the learning curve in automated test tool programming. Judgment skills are needed to assess high-risk areas of an application on which to focus testing efforts when time is limited.

 217 views

132⟩ What makes a good Software QA engineer?

The same qualities a good tester has are useful for a QA engineer. Additionally, they must be able to understand the entire software development process and how it can fit into the business approach and goals of the organization. Communication skills and the ability to understand various sides of issues are important. In organizations in the early stages of implementing QA processes, patience and diplomacy are especially needed. An ability to find problems as well as to see 'what's missing' is important for inspections and reviews.

 230 views

133⟩ What makes a good QA or Test manager?

A good QA, test, or QA/Test(combined) manager should:

- be familiar with the software development process

- be able to maintain enthusiasm of their team and promote a positive atmosphere, despite what is a somewhat 'negative' process (e.g., looking for or preventing problems)

- be able to promote teamwork to increase productivity

- be able to promote cooperation between software, test, and QA engineers

- have the diplomatic skills needed to promote improvements in QA processes

-have the ability to withstand pressures and say 'no' to other managers when quality is insufficient or QA processes are not being adhered to

- have people judgment skills for hiring and keeping skilled personnel

- be able to communicate with technical and non-technical people, engineers, managers, and customers.

- be able to run meetings and keep them focused

 231 views

134⟩ What is the role of documentation in QA?

Critical. (Note that documentation can be electronic, not necessarily paper.) QA practices should be documented such that they are repeatable. Specifications, designs, business rules, inspection reports, configurations, code changes, test plans, test cases, bug reports, user manuals, etc. should all be documented. There should ideally be a system for easily finding and obtaining documents and determining what documentation will have a particular piece of information. Change management for documentation should be used if possible.

 215 views

135⟩ What is the big deal about requirements?

One of the most reliable methods of insuring problems, or failure, in a complex software project is to have poorly documented requirements specifications. Requirements are the details describing an application's externally-perceived functionality and properties. Requirements should be clear, complete, reasonably detailed, cohesive, attainable, and testable. A non-testable requirement would be, for example, 'user-friendly' (too subjective). A testable requirement would be something like 'the user must enter their previously-assigned password to access the application'. Determining and organizing requirements details in a useful and efficient way can be a difficult effort; different methods are available depending on the particular project. Many books are available that describe various approaches to this task.

 224 views

136⟩ What steps are needed to develop and run software tests?

The following are some of the steps to consider:

- Obtain requirements, functional design, and internal design specifications and other necessary documents

- Obtain budget and schedule requirements

- Determine project-related personnel and their responsibilities, reporting requirements, required standards and processes (such as release processes, change processes, etc.)

- Identify application's higher-risk aspects, set priorities, and determine scope and limitations of tests

- Determine test approaches and methods - unit, integration, functional, system, load, usability tests, etc.

- Determine test environment requirements (hardware, software, communications, etc.)

 223 views

137⟩ What is configuration management?

Configuration management covers the processes used to control, coordinate, and track: code, requirements, documentation, problems, change requests, designs, tools/compilers/libraries/patches, changes made to them, and who makes the changes.

 214 views

138⟩ What if the software is so buggy it ca not really be tested at all?

The best bet in this situation is for the testers to go through the process of reporting whatever bugs or blocking-type problems initially show up, with the focus being on critical bugs. Since this type of problem can severely affect schedules, and indicates deeper problems in the software development process (such as insufficient unit testing or insufficient integration testing, poor design, improper build or release procedures, etc.) managers should be notified, and provided with some documentation as evidence of the problem.

 236 views

139⟩ How can it be known when to stop testing?

This can be difficult to determine. Many modern software applications are so complex, and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are:

- Deadlines (release deadlines, testing deadlines, etc.)

- Test cases completed with certain percentage passed

- Test budget depleted

- Coverage of code/functionality/requirements reaches a specified point

- Bug rate falls below a certain level

- Beta or alpha testing period ends

 232 views

140⟩ What if there is not enough time for thorough testing?

Use risk analysis to determine where testing should be focused.

Since it's rarely possible to test every possible aspect of an application, every possible combination of events, every dependency, or everything that could go wrong, risk analysis is appropriate to most software development projects. This requires judgment skills, common sense, and experience. (If warranted, formal methods are also available.) Considerations can include:

- Which functionality is most important to the project's intended purpose?

- Which functionality is most visible to the user?

- Which functionality has the largest safety impact?

- Which functionality has the largest financial impact on users?

- Which aspects of the application are most important to the customer?

- Which aspects of the application can be tested early in the development cycle?

- Which parts of the code are most complex, and thus most subject to errors?

- Which parts of the application were developed in rush or panic mode?

- Which aspects of similar/related previous projects caused problems?

- Which aspects of similar/related previous projects had large maintenance expenses?

 200 views