1、软件测试常用单词:1静态测试:Non-Execution-Based Testing 或 Static testing代码走查:Walkthrough代码审查:Code Inspection 技术评审:Review2动态测试:Execution-Based Testing3白盒测试:White-Box Testing4黑盒测试:Black-Box Testing5灰盒测试:Gray-Box Testing6软件质量保证 SQA:Software Quality Assurance7软件开发生命周期:Software Development Life Cycle 8冒烟测试:Smoke Test
2、9回归测试:Regression Test10功能测试:Function Testing11性能测试:Performance Testing12压力测试:Stress Testing13负载测试:Volume Testing14易用性测试:Usability Testing15安装测试:Installation Testing16界面测试:UI Testing17配置测试:Configuration Testing 18文档测试:Documentation Testing19兼容性测试:Compatibility Testing20安全性测试:Security Testing21恢复测试:Re
3、covery Testing22单元测试:Unit Test23集成测试:Integration Test24系统测试:System Test25验收测试:Acceptance Test26测试计划应包括:测试对象:The Test Objectives,测试范围: The Test Scope, 测试策略: The Test Strategy 测试方法: The Test Approach, 测试过程: The test procedures, 测试环境: The Test Environment, 测试完成标准:The test Completion criteria测试用例:The Te
4、st Cases测试进度表:The Test Schedules风险:Risks Etc27主测试计划: a master test plan28需求规格说明书:The Test Specifications29需求分析阶段:The Requirements Phase 30接口:Interface31最终用户:The End User31正式的测试环境:Formal Test Environment32确认需求:Verifying The Requirements33有分歧的需求:Ambiguous Requirements34运行和维护:Operation and Maintenance.
5、 35可复用性:Reusability36可靠性: Reliability/Availability37电机电子工程师协会 IEEE:The Institute of Electrical and Electronics Engineers) 38要从以下几方面测试软件:正确性:Correctness实用性:Utility 性能:Performance健壮性:Robustness可靠性:Reliability关于 Bugzilla:1Bug 按严重程度( Severity)分为:Blocker,阻碍开发和/或测试工作Critical,死机,丢失数据,内存溢出Major,较大的功能缺陷Norma
6、l,普通的功能缺陷Minor,较轻的功能缺陷Trivial,产品外观上的问题或一些不影响使用的小毛病,如菜单或对话框中的文字拼写或字体问题等等Enhancement,建议或意见2Bug 按报告状态分类( Status)待确认的(Unconfirmed )新提交的(New)已分配的(Assigned)问题未解决的(Reopened)待返测的(Resolved )待归档的(Verified)已归档的(Closed)3Bug 处理意见( Resolution)已修改的( Fixed)不是问题(Invalid)无法修改( Wontfix)以后版本解决(Later)保留(Remind)重复( Dupli
7、cate)无法重现(Worksforme )Testing activityTesting activityTesting is an integral component of the software processTesting is a critical element of software quality assuranceTesting is an activity that must be carried out throughout the software development life cycleSoftware Testing Principles:All tests
8、 should be traceable to customer requirements.Tests should be planned long before testing beginsThe Pareto principle applies to software testing. (80/20 rule)Testing should begin “in the small” and progress toward testing “in the large.”Exhaustive testing is not possible.To be most effective, testin
9、g should be conducted by an independent third party.Attributes of A “Good” TestA good test has a high probability of finding an error.A good test is not redundant.A good test should be neither too simple nor too complex. Else?What Should Be Tested?CorrectnessUtility PerformanceRobustnessReliabilityC
10、orrectnessThe extent to which a program satisfies its specification and fulfills the customers mission objectives.If input that satisfies the input specifications is provided and the product is given all the resources it needs, then the product is correct if the output satisfies the output specifica
11、tion.If a product satisfies its specification, then this product is correct.Questions:Suppose a product has been tested successfully against a broad variety of test data. Does this mean that the product is acceptable?UTILITYUtility is the extent to which a users needs are met when a correct product
12、is used under condition permitted by its specifications.It focus on how easy the product is to use, whether the product performs useful functions, and whether the product is cost effective compared to competing products.If the product is not cost effective, there is no point in buying it.And unless
13、the product is easy to use, it will not be used at all or it will be used incorrectly. Therefore, when considering buying an existing product, the utility of the product should be tested first; and if the product fails on that score, testing should stop.PerformanceIt is the extent to which the produ
14、ct meets its constraints with regard to response time or space requirements. Performance is measured by processing speed, response time, resource consumption, throughput and efficiency.Performance: For example, a nuclear reactor control system may have to sample the temperature of the core and proce
15、ss the data every 10th of a second. If the system is not fast enough to be able to handle interrupts from the temperature sensor every 10th of a second, then data will be lost and there is no way of ever recovering the data; the next time that the system receives temperature data, they will be the c
16、urrent temperature, not the reading that was missed. If the reactor is on the point of a meltdown, then it is critical that all relevant information be both received and processed as laid down in the specifications. With all real-time system, the performance must meet every time constraint listed in
17、 the specifications.RobustnessRobustness essentially is a function of a number of factors, such as the range of operating conditions, the possibility of unacceptable results with valid input, and the acceptability of effects when the product is given invalid input.A product with a wide range of perm
18、issible operating condition is more robust than a product that is more restrictive.It is difficult to come up with a precise definitionA robust product should not yield unacceptable results when the input satisfies its specifications.For example, when the tester gives a system (or program) with a in
19、valid data, the system responds with a message such as “Incorrect data, try again”, it is more robust than a system that crashes whenever the data deviate even slightly from what is required. ReliabilityIf a program repeatedly and frequently fails to perform, it matters little whether other software
20、 quality factors are acceptable.Software Reliability is defined in statistical terms as “the probability of failure-free operation of a computer program in a specified environment for a specified time.”It is necessary to know how often the product fails. (MTBF)When a product fails, an important issu
21、e is how long it takes, on average , to repair it. (MTTR)Measure of Reliability: MTBF = MTTF + MTTRMTBF: mean-time-between-failureMTTF: mean-time-to-failureMTTR: mean-time-to-repairSoftware availability is the probability that a program is operating according to requirements at a given point in time
22、. Measure of Reliability: MTBF = MTTF + MTTRMeasure of Availability:Availability = MTTF/(MTTF + MTTR) * 100%How can it be know 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 testi
23、ng can never be done. Common factors in deciding when to stop are: Deadlines (release deadlines, testing deadlines, etc.) Test budget depletedTest cases completed with certain percentage passed Coverage of code/functionality/requirements reaches a specified point Bug rate falls below a certain level
24、 What if there isnt enough time for thorough testing?Use risk analysis to determine where testing should be focused. Risk analysis is appropriate to most software development projects. This requires judgment skills, common sense, and experience. Considerations can include: Which functionality is mos
25、t important to the projects intended purpose? Which functionality is most visible to the user? Which functionality has the largest safety/financial impact?Which aspects of similar/related previous projects had large maintenance expenses? Which parts of the code are most complex, and thus most subject to errors?