Testing Question & Answers
1
What is testing?
Testing is an activity in which a system or component is executed under specified conditions, the results are observed or recorded, and an evaluation is made of some aspect of the system or component.
2
What is Software Quality Assurance?Software QA 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. It is oriented to 'prevention'.
3
What are 5 common problems in the software development process?o poor requirements - if requirements are unclear, incomplete, too general, and not testable, there will be problems. o unrealistic schedule - if too much work is crammed in too little time, problems are inevitable. o inadequate testing - no one will know whether or not the program is any good until the customer complains or systems crash. o featurisms - requests to pile on new features after development is underway; extremely common. o miscommunication - if developers don't know what's needed or customer's have erroneous expectations, problems are guaranteed.
4
What is a test case?
A set of test inputs, execution conditions, and expected results developed for a particular objective.
5
What is a test plan?
A Test Plan depicts the plan for conducting tests. This usually includes: Test Strategy, Schedules and Resource allocation.
6
Give definitions for Defect, Defect Age and Defect Density.
Defect : Any deviation in the working of the application that is not mentioned in any documents in SDLC can be termed as a defect. Defect Age : The time duration between the defect state from New to Closed Defect Density : No of known defect per KLOC (Kilo lines of Code ) or FP (functional point)
7
What is a bug?
A fault in a program which causes the program to perform in an unintended or unanticipated manner
8
What is the difference between verification & validation?
Validation
Verification
Am I building the right product
Am I building the product right
Determining if the system complies with the requirements and performs functions for which it is intended and meets the organization’s goals and user needs. It is traditional and is performed at the end of the project.
The review of interim work steps and interim deliverables during a project to ensure they are acceptable. To determine if the system is consistent, adheres to standards, uses reliable techniques and prudent practices, and performs the selected functions in the correct manner.
Am I accessing the right data (in terms of the data required to satisfy the requirement)
Am I accessing the data right (in the right place; in the right way).
High level activity
Low-level activity.
Performed during development on key artifacts, like walkthroughs, reviews and inspections, mentor feedback, training, checklists and standards
Performed after a work product is produced against established criteria ensuring that the product integrates correctly into the environment
Determination of correctness of the final software product by a development project with respect to the user needs and requirements
Demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development life cycle.
9
What is the difference between QA & QC?
Quality Assurance
Quality Control
A planned and systematic set of activities necessary to provide adequate confidence that requirements are properly established and products or services conform to specified requirements.
The process by which product quality is compared with applicable standards; and the action taken when non-conformance is detected.
An activity that establishes and evaluates the processes to produce the products.
An activity, which verifies if the product meets pre-defined standards.
Helps establish processes.
Implements the process.
Sets up measurements programs to evaluate processes.
Verifies if specific attribute(s) are in a specific product or service
Identifies weaknesses in processes and improves them.
Identifies defects for the primary purpose of correcting defects.
QA is the responsibility of the entire team.
QC is the responsibility of the tester.
Prevents the introduction of issues or defects
Detects, reports and corrects defects.
QA evaluates whether or not quality control is working for the primary purpose of determining whether or not there is a weakness in the process.
QC evaluates if the application is working for the primary purpose of determining if there is a flaw / defect in the functionalities.
QA improves the process that is applied to multiple products that will ever be produced by a process.
QC improves the development of a specific product or service.
QA personnel should not perform quality control unless doing it to validate quality control is working.
QC personnel may perform quality assurance tasks if and when required.
10
What is software quality?Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable.However, quality is obviously a subjective term. It will depend on who the 'customer' is and their overall influence in the scheme of things. A wide-angle view of the 'customers' of a software development project might include end-users, customer acceptance testers, customer contract officers, customer management, the development organization's management/accountants/testers/salespeople, future software maintenance engineers, stockholders, magazine columnists, etc. Each type of 'customer' will have their own slant on 'quality' - the accounting department might define quality in terms of profits while an end-user might define quality as user-friendly and bug-free.
11
What's an inspection? An inspection is more formalized than a 'walkthrough', typically with 3-8 people including a moderator, reader, and a recorder to take notes. The subject of the inspection is typically a document such as a requirements spec or a test plan, and the purpose is to find problems and see what's missing, not to fix anything. Attendees should prepare for this type of meeting by reading thru the document; most problems will be found during this preparation. The result of the inspection meeting should be a written report. Thorough preparation for inspections is difficult, painstaking work, but is one of the most cost effective methods of ensuring quality. Employees who are most skilled at inspections are like the 'eldest brother' in the parable in 'Why is it often hard for management to get serious about quality assurance?' Their skill may have low visibility but they are extremely valuable to any software development organization, since bug prevention is far more cost-effective than bug detection.
12
Explain Condition Coverage and Condition/Decision Coverage.
Condition coverage reports the true or false outcome of each Boolean sub-expression, separated by logical-and logical-or if they occur. Condition coverage measures the sub-expressions independently of each other. Condition/Decision Coverage is a hybrid measure composed by the union of condition coverage and decision coverage.
13
Explain Data Flow Coverage
This variation of path coverage considers only the sub-paths from variable assignments to subsequent references of the variables. The advantage of this measure is the paths reported have direct relevance to the way the program handles data. One disadvantage is that this measure does not include decision coverage. Another disadvantage is complexity. Researchers have proposed numerous variations, all of which increase the complexity of this measure. For example, variations distinguish between the use of a variable in a computation versus a use in a decision, and between local and global variables. As with data flow analysis for code optimization, pointers also present problems.
14
Explain Decision Coverage.
This measure reports whether Boolean expressions tested in control structures (such as the if-statement and while-statement) evaluated to both true and false.
15
Explain Function Coverage.
This measure reports whether you invoked each function or procedure. It is useful during preliminary testing to assure at least some coverage in all areas of the software. Broad, shallow testing finds gross deficiencies in a test suite quickly.
16
Explain Linear Code Sequence and Jump (LCSAJ) Coverage.
This variation of path coverage considers only sub-paths that can easily be represented in the program source code, without requiring a flow graph. An LCSAJ is a sequence of source code lines executed in sequence. This "linear" sequence can contain decisions as long as the control flow actually continues from one line to the next at run-time. Sub-paths are constructed by concatenating LCSAJs. Researchers refer to the coverage ratio of paths of length n LCSAJs as the test effectiveness ratio (TER) n+2. The advantage of this measure is that it is more thorough than decision coverage yet avoids the exponential difficulty of path coverage. The disadvantage is that it does not avoid infeasible paths
17
Explain Loop Coverage
This measure reports whether you executed each loop body zero times, exactly once, and more than once (consecutively). For do-while loops, loop coverage reports whether you executed the body exactly once, and more than once.
18
Explain Modified Condition/Decision Coverage.
Also known as MC/DC and MCDC. This measure requires enough test cases to verify every condition can affect the result of its encompassing decision.
19
Explain Multiple Condition Coverage.
Multiple condition coverage reports whether every possible combination of Boolean sub-expressions occurs.
20
Explain Object Code Coverage.
This measure reports whether each machine language conditional branch instruction both took the branch and fell through. This measure gives results that depend on the compiler rather than on the program structure since compiler code generation and optimization techniques can create object code that bears little similarity to the original source code structure. Since branches disrupt the instruction pipeline, compilers sometimes avoid generating a branch and instead generate an equivalent sequence of non-branching instructions. Compilers often expand the body of a function inline to save the cost of a function call. If such functions contain branches, the number of machine language branches increases dramatically relative to the original source code.
Read More about Software Testing Tutorials
1 comment:
This is real good information on testing.I will really use it sometime.Good work!! Keep it up!!
Post a Comment