software quality assurance 常见问题收录
1. What is Quality?
Quality means,
“meeting requirements.”
..Whether or not the product or service does what the customer needs. In another word Quality is,
“fit for use.”
2. Explain “Prevention” & “Detection”.
..Prevention means to prevent quality defects or deficiencies in the first place, and to make the products and processes assessable by quality management program.
..Prevention decreases production costs because the sooner a defect is located and corrected, the less costly it will be in the long run.
..The greatest payback is with prevention.
3. Explain “Verification” & “Validation”
The overall goal of verification is to ensure that each software product developed throughout the software life cycle meets the customer’s needs and objectives as specified in the software requirements document.
Validation checks that the system meets the customer’s requirements at the end of the life cycle.
Usually Verifications take place at the end of each phase. Validations take place just before the product is delivered.
4. Cost of Quality includes:
Prevention cost
Appraisal cost (鉴定费用)
Internal failure cost
External failure cost
5. Explain “Prevention Cost”.
Prevention costs consist of actions taken to prevent defects from occurring the first place.
-quality planning
-formal technical reviews
-test equipment
- training
6. Explain “Appraisal (鉴定)Cost”.
Appraisal costs consist of measuring, evaluating, and auditing(审计) products or services for conformance (顺应)to standards and specifications.
-Inspection and testing of products
-Equipment calibration (校准) and maintenance
-Processing and reporting inspection data
7. What are the components of software quality assurance?
Most software quality assurance activities can be categorized into:
testing
quality control
software configuration management
The success software quality assurance program also depends on a coherent collection of standards, practices, conventions(习惯), and specification(规格说明书).
8. What are the elements of software configuration management?
1. Component Identification元件识别
In order to manage the development process, one must establish methods and name standards for uniquely identifying each revision.
2. Version Control版本控制
Version control provides the traceability of history of each software change, including who did what , why, and when.
3. Configuration Building配置构建
To build a software configuration one needs to identify the correct component versions and execute the component build procedures. This is often called configuration building.
4. Change Control变更控制
9. Why Change control is the key role in the Software Configuration Management?
SCM answers Who, What, When, and Why
• Who made the changes?
• What changes were made to the software?
• When were the changes made?
• Why were the changes made?
When a software component is changed, it should always be reviewed and frozen from further modifications until a new version is created.
10. What are the main responsibilities of SQA group?
1. The SQA group works with the software project during its early stages to establish plans, standards, and procedures that will add value to the software project and satisfy the project constraints and the organization’s policies.
2. The SQA group reviews project tasks and audits software work products throughout the SDLC life cycle and provides management with visibility as to whether the software project is adhering to its established objectives and standards.
1。SQA组的工作,在其早期阶段的软件项目制定计划,标准和程序,将添加到软件项目的价值,并满足项目约束和组织的政策。
2。 SQA组评论项目任务和审计软件工作产品整在个SDLC的生命周期,并提供管理软件项目是否遵守其既定的目标和标准的可视性。
11. Why do Dev people think that SQA groups are Spies to management?
The SQA group periodically(定期的) reports the results of its activities to the software engineering group.
Deviations(偏差) identified in the software activities and software work products are documented and handled according to a documented procedure.在软件活动和软件工作产品中识别的偏差都记录并书面程序处理。
Viewed as not having enough technical background, know nothing about the mechanics of building software.
Blame developers for poor quality but provide no solution
Insensitive to intelligent and talented developers and system engineers
12. What is CMMI?
Capability Maturity Model Integration
The Capability Maturity Model describes the principles and practices underlying software process maturity and is intended to help software organizations improve the maturity of their software process.
13. What is ISO?
ISO is the International Standard Organization .
It is located in Switzerland and was established in 1947 to develop common international standards in many areas. Its members come from over 120 national standards bodies . 它位于瑞士,成立于1947年,在许多领域制定共同的国际标准。它的成员来自超过120个国家标准机构。
These new standards are referred to as the "ISO 9000 2000 Standards".
14. What is PDCA?
Deming’s quality cycle
In the Plan Quadrant of the circle, objectives are defined and the conditions and methods required to achieve those objectives are determined.
In the Do quadrant of the circle, the conditions are created, training is performed. The work is performed according to plan.
In the Check quadrant of the circle, one must check to determine whether work is progressing according to the plan and whether the expected results are obtained.
In the Act quadrant of the circle, if the checkup reveals (显示) that the work is not being performed according to plan or that results are not what was anticipated (予期的), measures (措施) must be devised (作出) for appropriate action.
在该Plan中的圆的象限,目标被定义和实现这些目标所需要的条件和方法被确定。
在圆DO象限,条件被创造,培训执行。工作按计划进行。
在检查的圆的象限中,一个人必须检查,以确定是否工作正按照计划,是否得到预期的结果。
在Act象限的圆,如果在检查揭示(显示),工作没有按计划被执行或结果是没有达到预期,为适当动作措施必须被作出。
15. What is 80/20 rule? Give an example in Software Engineering field.
The Pareto principle states that, for many events, roughly 80% of the effects come from 20% of the causes. 帕累托原则规定,对于许多事件的影响,大约有80%来自20%的原因
Example: �20% of the modules consume 80% of the resources
�20% of the modules contribute 80% of the error
�20% of the errors consume 80% of repair costs
16. Explain the statistical software quality assurance by using your own words.
1. Information about software defects is collected and categorized.
2. An tempt is made to trace each defects to its underlying cause.
3. Using the Pareto principle (80/20 rule), isolate the 20 percent.
–80% of defects can be traced to 20% of all possible cause
4. Once the vital few causes have been identified, move to correct the problems that have caused the defects.
Concentrate on the vital few, not the trivial many.
17. What are the Limitations with Execution-Based Testing?
By the time testing occurs, it is too late to build quality into the product.
Tests are only as good as the test cases, not all defects are discovered during testing.
In reality it is impossible to test all software, and exhaustive(详尽的) testing code is impractical(不切实际的)
18. What are the types of technical review?
The spectrum of REVIEW ranges from very informal peer reviews to extremely formal and structured inspections.
Inspections、Walk through、Peer Reviews or Buddy Checks
19. What are the steps of Inspection?
1.Overview
l First, an overview of the document to be inspected (specification, design, code, or plan) is given by one of the individuals responsible for producing that document.
l At the end of the overview session, the document is distributed to the participants.
2.Preparation准备
l In the second step, the participants try to understand the document in detail.
l Check lists/Lists of fault types found in recent(最近的) inspections, with the fault types ranked by frequency, are excellent aids. These check lists help team members concentrate on the areas where the most faults have occurred.
3.Inspection检查
l One participant walks through the document with the inspection team, ensuring that every item is covered and that every branch is taken at least once.
l As with walk through, the purpose is to find and document the faults, not to correct them.
l The presenter(主持人) in an inspection meeting is ideally not the producer or author of the document being inspected.
4.Rework
l Within one day the leader of the inspection team (the moderator主持人) must produce a written report of the inspection to ensure meticulous(细致的) follow-through.
l In this step, the individual(个别) responsible for that document resolves all faults and problems noted in the written report.
5.Follow-up
l The moderator must ensure that every single issue raised has been recovered satisfactorily, by either fixing the document or clarifying items incorrectly flagged as faults.
l All fixes must be checked to ensure that no new faults have been introduced.
20. What are the checklists used for during the technical review?
In preparation phase ,Check lists/Lists of fault types found in recent inspections, with the fault types ranked by frequency, are excellent aids. These check lists help team members concentrate on the areas where the most faults have occurred.
21. Compare inspection and walk through, what are the advantages and disadvantages?
l A walk through is a two-step process and an inspection is a five-step process. The inspection process takes much longer than a walk through.
l The inspection team uses a checklist of queries to aid it in finding the faults. It goes deeper than walk through.
l Walk through can cover more material(物质) than inspections. They provide an opportunity for larger numbers of people to become familiar with the material. Inspection typically deal with relatively low volumes of material.
l Occasionally(偶尔), walk through are used for purposes of communication rather than for discovering defects.
22. Why does walk through group only uncover and record faults not correct them?
walk through are used for purposes of communication rather than for discovering defects.
The time of walk through is limited, No walk through should last longer than 2 hours.
The real modification and correction should be achieved by the author of the document or the develop group responsible for the delivery.( Walk through can be used to review many systems development deliverable, including logical and physical design specifications, test plans, test cases as well as code.)
23. What is the black-box testing?
l With black-box testing, the tester views the program as a black-box and is completely unconcerned with the internal structure of the program or system.
l The tester focuses on testing the program’s functionality against the specification.
24. What is the white-box testing?
White-box test design allows one to peek(偷看) inside the "box", the tester examines(检查) the internal structure of the program or system.
�Tester focuses on using internal knowledge of the software to guide the selection of test data without concern for the program or system requirements. 不关心程序或系统的要求
25. What is the boundary value testing?
l The boundary value testing technique is a black-box technique.
l The rationale(基本原理) :errors tend to congregate at the boundaries.
l The basic idea of boundary value analysis is to use input variable values at their min, min+, nom, max-, and max.
26. What is the robustness testing?
l Robustness testing is a simple extension of boundary value analysis: in addition to the five boundary value of a variable, we see what happens when the extreme are exceeded(超过) with a value slightly greater than the maximum (max+) and a value slightly less than the minimum (min-)
27. What is the worse-case testing?
It is interested in what happens when more than one variable has an extreme value.
Worst-case testing is clearly more thorough in the sense that boundary value analysis test cases are a proper subset of worst-case test cases.
It also represents much more effort: worst-case testing for a function of n variables generates 5^n test cases
28. What is the special value testing?
the least uniform.
the most widely practiced form of functional testing
It is a Black-Box testing technique.
�Special value testing occurs when a tester uses his or her domain(领域) knowledge, experience with similar programs, and information about “soft spots”to devise (设计) test cases.
29. What is the range testing?
�The range testing is a black-box testing technique that assumes(假设) that the behavior of any input variable within a predefined range will be the same.
If it passes, it is assumed that the rest of the value do not have to be tested.
�Applying this technique has the potential(潜力) of saving a lot of test generation time(节省了大量测试生成时间).
30. What is the positive testing? And what is the negative testing?
l A positive test is one with a valid input, and a negative test is one with an invalid input.
l Positive and negative testing is an input-based testing technique that requires that a proper balance of positive and negative tests be performed. a suggested balance is 80% negative and 20% positive tests.
31. What is the regression testing?
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
32. What is the equivalence class testing?
a black-box testing technique.
�From the requirements, each input is divided into partitions划分 (equivalence classes), and one representative value from each partition (equivalence class) is selected and tested.
�Equivalence class, a set of test cases (class) such that any one member of the class is as good a test case as any other.
33. In equivalence class testing, explain the term: weak normal, strong normal, weak robust and strong robust.
l Weak normal equivalence class testing is accomplished by(通过) using one variable from each equivalence class (interval) in a test case.
l Strong equivalence class testing is based on the multiple fault assumption. So we need test cases from each element of the Cartesian product (笛卡尔积)of the equivalence classes.
l Weak Robust Equivalence Class Testing: The robust part comes from consideration of invalid values, and the weak part refers to the single fault assumption.
l Strong Robust Equivalence Class Testing
�The robust part comes from consideration of invalid values
�The strong part refers to the multiple fault assumption.
34. What is the decision table based testing?
a functional testing technique, the most rigorous (最严格的)
�Decision tables are ideal for describing situations(情况) in which a number of combinations(组合) of actions are taken under varying sets of conditions..
Rules of Decision Tables (决策表):A column in the entry portion is a rule. To identify test cases with decision tables, we interpret conditions as inputs and actions as outputs
35. What are the steps you should follow to perform white-box testing?
1.读代码了解程序 2.画出结构图 3.简化结构图(保留分支) 4.测试 –fy的答案
1 read the code to understand the procedure 2. Draw the Program graph
3. Simplified Program graph (reservation branch) 4. Testing
36. What is the statement coverage testing?
�Statement coverage is a white-box testing technique
�Statement coverage testing ensures every statement or line of code (LOC) is executed.
�In another words, when a program is executed it ensures that every node of the program graph is traversed at least once.
37. What is the D-D path testing?
DD-Path testing is a white-box testing technique
�When a program is executed it ensures that every edge in the DD-Path graph is traversed at least once.
�For if-then and if-then-else statements, this means that both the true and the false branches are covered.
�For CASE statements, each clause is covered.
38. What is the basis path testing?
Basis path testing is a white-box testing technique.
�Basis path testing identifies test cases based on the flows or logical paths that can be taken through a program.
�A basis path is a unique path through the program where no iterations(迭代) are allowed
39. How to test loop?
Loops are a highly fault-prone portion of source code
The simple view of loop testing is that every loop involves a decision, and we need to test both outcomes of the decision
One is to traverse the loop
One is to exit (or not enter) the loop
We can also take a modified boundary value approach, where the loop index is given its minimum, nominal, and maximum values. Even push to robustness testing.
Once a loop has been tested, the tester condenses it into a single node. If loops are nested, this process is repeated starting with the innermost loop and working outward.
Software Testing Techniques1.Skip the loop entirely2.Only one pass through the loop3.Two passes through the loop4.M passes through the loop where m<n5.N-1, n, n+1 passes through the loop
40. What is the driver in term of testing? And what is the stub?
A driver, a module that calls the current tested module one or more times, if possible checking the values returned by the module under test.
�A stub, an empty module, is a piece of throw-away code that emulate(仿真) a called unit. A stub should return values corresponding(一致的) to preplanned test cases.
41. Explain top-down integration testing.
Top-Down testing is a white-box testing technique.
�The top-down testing is an incremental(增量) approach in which the high-level modules or system components are integrated and tested first. Then proceeds hierarchically to the bottom level.
42. Explain bottom-up integration testing.
Bottom-up testing is a white-box testing technique.
�The bottom-up testing technique is an incremental testing approach where the lowest-level modules or system components are integrated and tested first. Testing then proceeds hierarchically to the top level.
43. Please explain the sandwich testing strategy.
Sandwich testing is a white-box testing technique.
�Sandwich testing uses top-down and bottom-up techniques simultaneously.同步
�The logic modules should be integrated and tested top-down. The operational modules should be integrated and tested bottom-up. Then the interface between the two groups of modules are tested one by one.
44. What is gray-box testing?
Gray-box testing is a combination of black-and white-box testing to take advantage of both.
�The tester studies the requirements specifications and communicates with the developer to understand the internal structure of the system.
�The motivation is to clear up ambiguous(模糊的) specifications and “read between the lines”to design implied tests.
45. Please compare the black-box testing and white-box testing.
Advantage of functional testing:
(1)natural and understood by everyone.
(2)Tester needs no knowledge of implementation
(3)Tester and programmer are independent of each other.
(4)Tests are done from a user’s point of view.
(5)Tests can be designed as soon as the specifications are completed.
Disadvantage of Functional Testing:
(1)to test every possible input is impossible
(2)Without clear speciations ,test cases are hard to design.
(3)It may leave many program paths untested.
Advantage of Structural Testing:
(1) it forces test developer to reason carefully about implementation
(2) Since there is knowledge of the internal structure or logic,defects are easily detected.
Disadvantage of Structural Testing:
(1)It does not verify that the specifications are correct.
(2)There is no way to detect missing paths .
(3)It cannot execute all possible logic paths.
Expensive
46. Please compare the top-down approach and the bottom-up approach.
Advantages for Top-Down:
�Top-down testing allows early discovery of major design flaws occurring at the top of the program.
�Stubs need to be created but are generally easier to created than drivers.
Disadvantages for Top-Down:
�Critical low-level modules or system components are not tested as frequently as the upper-level modules.
�Potentially reusable modules may not be adequately tested. 潜在可重用的模块可能无法进行充分的测试。
Advantage for Bottom-Up:
�The operational modules are thoroughly tested, and is common used for large, complex systems
Disadvantage for Bottom-Up:
It takes a relatively(相对) long time to make the system visible to user.
Major design faults will be detected late, because the logic modules are tested last.
It requires a lot of effort to create drivers, which can add additional errors.
47. What are the important tasks during requirement phase in V model as a QA?
1. Verifying the requirements(make sure that the correctness and the completeness of the document)
2.building the system/acceptance test plan.(satisfy the customer’s expectation)
48. What are the important tasks during logical design phase in V model as a QA?
refines the business requirements from a function and information model point of view.(从功能和信息模型的角度重新审视商业需求)
Three major deliverable from this phase are :
the data model,
a process model,
and the linkage between the two.
(1)Testing the logical design with technical reviews(包括CURD matrix和一些数据模块)
(2)Refining the system/acceptance test plan(在requirement phase ,the types of tests are not enough)
49. What are the important tasks during physical design phase in V model as a QA?
While logical design testing is functional, physical design testing is structural
(1) Testing physical design with technical review(focus on the architectural design including high cohesion ,loose coupling) .
(2) Creating integration test cases ( Integration testing is designed to test the structure and the architecture of the software ).
50. What are the important tasks during integration phase in V model as a QA?—求解答
Integration testing is designed to test the structure and the architecture of the software and determine whether all software components interface properly.
During integration testing, the system is slowly built up by adding one or more modules at a time to the core of already integrated modules.
51. Explain the testing procedure(步骤) in V model once you have source code.
1.Unit Testing(based on unit testing plan ,focus on the small blocks of the program)
2.Integration Testing (by adding one or more module to the already integrated modules)
3.System Testing (tested for functionality and fitness for use based on the system\acceptance test plan)
4.Acceptance Testing (is a user run test to test the system against the specification)
52. What is cohesion? Is higher is better?
Cohesion (内聚):The degree of interaction within a module. YES
53. Can you list two top of the best cohesion?
1. Functional cohesion(good) 2.Informational cohesion
54. What is coupling? Is higher is better?
Coupling (耦合):The degree of interaction between two modules。 NO
55. Can you list two top of the best coupling?
Data coupling and stamp coupling.
56. Please list 5 good coding habits.
1. Use comments. 注释
2. Proper program layout(indentation缩进, and use white space)
3. Nesting of if statements should not exceed a depth of three.
4. Modules should consist of between 35 and 50 statements.
5. The use of goto statements should be avoided.
57. Please pick 5 the most important item in the software system test plan.
test objectives, scope, strategy and approach, test procedures, test environment
测试的目标,范围,策略和方法,测试程序,测试环境
58. What are the aspects you should considered during the unit testing?
(×)
1.Error Handling 2.Interface 3. Local Data
4. Boundary Condition 5. Unique Path
59. Please compare the system testing and the acceptance testing.
The system or acceptance test plan is based on the requirement specifications and is required for a formal test environment.
System testing evaluates the functionality and performance of the whole application and consists of a variety of tests including: performance, usability, stress, documentation, security, volume, recovery etc. Force on 1.Correctness 2. Utility 3.Performance 4.Robustness 5。Reliability-正确性- 实用工具 高性能 - 鲁棒性 可靠性
Acceptance testing is a user-run test which demonstrates(说明) the application’s ability to meet the original business objectives and system requirements and usually consists of a subset of system tests. A key aspect of acceptance testing is that it must be performed on actual data rather than test data. The four major components of acceptance testing:–Correctness –Robustness –Performance –Documentation -正确性 - 鲁棒性 高性能 - 文件
60. Please explain the Microsoft synch-and-stabilize approach.
Integration Test
�Microsoft integration strategy is market-driven, based on the need to have a working product as quickly as possible. 微软一体化战略是由市场主导的基础上尽可能快地需要有一个工作产品
�It implements(工具) synch-and-stabilize approach.
Milestone 1: Most critical features and shared components 最关键的功能和共享组件
Milestone 2: Desirable features理想的功能
Milestone 3: Least critical features最不重要的功能
61. What is the performance testing性能测试?
to determine how a system performs in terms(关系) of responsiveness(响应能力) and stability(稳定性) under a particular workload(在特定的负载情况下).
Performance is measured by processing speed or transaction rates, response time, resource consumption, throughput and efficiency.
62. Please explain the correctness正确性 in term of system testing.
The extent(程度) to which a program satisfies its specification and fulfills the customer’s mission objectives. 程序在何种程度上满足其规范,并满足客户的任务目标。
�If a product satisfies its specification, then this product is correct.
63. What is alpha testing? And what is beta testing?
Executing Acceptance Test
�Pilot testing
-Installs the system on an experimental basis.
1.alpha test
We “pilot”the system before the customer runs the real pilot test. It is a in-house test
2. Beta test
The customer’s pilot is a beta test.
64. What are the types of software maintenance维护?
1.Corrective Maintenance纠正维护 -主要是查明和消除残存缺陷。
( is approximately 20% of the total maintenance effort
the identification and removal of left defects)
2. Perfective maintenance
(55% of the total maintenance effort)
(adding additional functionalities,expanding to increase its power )
完成式维护-主要涉及扩大,扩展和增强系统,
3. Adaptive Maintenance
(environment :changes to laws, regulations, and rules often require adaptive maintenance to a system.)
自适应维护--系统所做的修改,以适应变化的加工环境
65. What are the limitations of the waterfall development model?
1. The end users of the system are only involved in the very beginning and the very end of the process.
2. The long development cycle and the shortening of business cycles leads to a gap between what is really needed and what is delivered(交付的).
3. End users are expected to describe in detail what they want in a system, before the coding phase.
4. Often the waterfall development methodology is not strictly followed. In worst case the analysis and design phases are by passed and the coding phase is the first major activity.
5. Software testing is often treated as a separate phase starting in the coding phase as a validation (确认) technique and is not integrated(整合) into the whole development life cycle.
66. Why are there more software companies adopting spiral develop model?
One advantage of spiral development is that the clients receive at least some functionality quickly.
�Another advantage is that the product can be shaped by iterative feedback, e.g., users do not have to define every feature correctly in full detail at the beginning of the development cycle, but can react to each iteration.
67. Please explain prototyping(原型) in term of RAD(Rapid Application Development快速应用开发).
快速原型开发模式的基本思想是在系统开发的初期,在对用户需求初步了解的基础之上,以快速的方法先构造一个可以工作的系统原型。将这个原型提供给用户使用,听取他们的意见。然后修正原型,补充新的数据、数据结构和应用模型,形成新的原型。经过几次迭代以后,可以达到用户与开发者之间的完美沟通,消除各种误解,形成明确的系统定义以及用户界面要求。
68. Do testing tools always make test easier?
No. There are many testing tools, each with specific capabilities and test objectives.
Even if the right testing tools is selected,it will spend time to learn the tool,to learn ,to set up.
Even more,may be the tool is too expensive to afford.
If the test if going to perform only once ,it is not worth a testing tool
69. Can you identify the logic module an operational model in model inter connection diagram? 你能找出逻辑模块一个运营模式在模型间的连接图?
Logic modules essentially incorporate(包含) the decision making flow of control aspects of the product. The logic modules generally are those situated(位于) close to the root in the module inter connection diagram.
Operational modules, on the other hand, perform the actual operations of the product. Generally located in the leaf nodes,the lowest level.
70. Many software companies place great emphasis on installation testing. Can you explain why? 很多软件公司都非常重视,在安装测试。你能解释为什么吗?
application is successfully installed & it is working as expected after installation.