软件测试作业(三)
1. 软件测试可以划分为白盒测试和黑盒测试,请分析两类测试的相关技术、应用场景及特点。
黑盒测试:
- (1)建议在对稳定运行的大中型系统进行小规模的功能优化或改造过程中使用黑盒测试方法,只需要明确当前项目的改造点,确认与已有功能的关联性和影响,针对项目改造范围进行测试,非特殊情况无需了解系统或模块的全部处理逻辑。
- (2)建议复杂度和重要性较低的系统,在时间精力有限的情况下优先选用黑盒测试方法进行测试。测试人员首先明确业务需求,使用等价类划分和边界值分析方法完成测试案例设计,适当结合程序特征、个人经验以及冒烟测试情况等对测试案例进行修订补充,在系统无重大问题或异常的情况下,一般黑盒测试即可满足该类系统测试要求。
- (3)建议适当考量测试人员或测试团队专业技术能力以及测试阶段,如在系统功能测试已经完成的前提下,业务方执行的业务验收测试可以使用黑盒测试方法,降低了团队组建成本和测试成本,无需要求业务人员对代码和软件逻辑进行充分学习和掌握。
白盒测试:
- 简介与特点:也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。
- 相关技术:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖。
- 应用场景:
- (1)一般单元测试及集成测试需要使用白盒测试方法,包括代码检查法、静态结构分析法等,相关测试多由开发人员完成,具体视项目团队分工而定。
- (2)建议针对新建系统或已有系统新增重要模块时使用白盒测试方法,例如逻辑覆盖或基本路径测试法,尤其推荐在有较多校验关系且校验关系间存在嵌套时使用,使用时一般可参考程序代码、详细设计说明书、程序控制流图等相关资料,帮助减少测试人员的分析工作量等。
- (3)建议对重点系统进行架构优化、对公共函数或程序进行改造、对后台或接口内容进行调整时选用白盒测试方法,一方面关注优化改造后对原有程序的改动大小,一方面关注调用方或消费方是否受影响,新版本程序或系统对旧版本的兼容性,避免关联系统由于改造时测试不充分受到影响。
(4)建议关注测试中的集群现象,对于缺陷或问题集中的功能和模块建议及时由黑盒测试方法改为白盒测试,在缺陷管理过程中及时进行小范围的测试方法调整,同时保证测试效率和测试充分性。
2. 阐述静态分析技术的主要具体方法和过程。
- 主要具体方法:
数据流分析,基于约束的分析,抽象解析,类型与结果分析。 - 过程:
在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。
3. 功能测试策略、方法及实施过程。
- 策略:
- 基于业务流清晰的系统,场景法可贯穿采用,并整个测试案例过程,并可在此基础上综合应用各种测试方法;
- 等价类划分法较其他方法往往优先选用,高效筛选测试用例;
- 边界值分析法任何情况下都应被考虑,挖掘缺陷最有效手段之一;
- 各种测试中,均可借助错误推测法扩充测试用例,进一步将测试高手的智慧和经验转变为可视化成果;
- 因果图法和决策表法尤为相似,更适用于系统中的各输入条件及输出结果之间存在关系的情况;
- 正交试验法在参数配置类及兼容性的测试用例设计中,简单易行、优势显著;
- 检查已设计出测试用例的逻辑覆盖程度,若未达到覆盖标准,则需继续补充完善测试用例。
- 方法:边界值,等价类,因果图,决策表,场景,状态图,比较测试。
- 实施过程:需求分析与评审,测试计划与测试方案,测试用例设计,测试用例评审,执行用例,缺陷跟踪及报告产出。
4. 分析性能测试的基本方法和要点。
基本方法:负载测试,压力测试,耐力测试,尖峰测试,体积测试。
要点:
帮助检查应用程序的可靠性
进行不同类型的性能测试以检查应用程序是否可靠并提供正确和一致的输出。
负载测试和耐久性测试等性能测试有助于评估在预定义时间(负载测试)或长时间(耐久性测试)预期工作负载下的系统正确性。
有助于识别性能瓶颈
性能测试有助于识别应用程序中降低系统速度的性能瓶颈。
稍后,可以优化这些组件的性能,从而改进整个系统。
帮助评估应用程序的可扩展性
在使用不同数量的并发用户运行性能测试时,我们可以检查应用程序是否能够扩展到更多用户。
这也有助于为系统找到足够的基础设施/服务器要求。
有助于检查应用程序的健壮性
通过压力测试,我们可以在高于预期的工作负载下检查应用程序的健壮性。
这有助于了解应用程序可以处理并发用户而不会崩溃的上限或盈亏平衡点。
5. 分析GUI测试内容及要点。
内容:GUI是计算机软件与用户进行交互的主要方式。GUI测试是对软件的GUI 界面进行测试。GUI 的测试对象是图形对象(包括控件)和对象的属性集合。
要点:GUI测试则主要关注应用程序上GUI组件是否符合规范或用户的操作习惯。当然GUI测试是不可以脱离功能而独立测试的,它是随着功能的实现,一个一个窗口进行校验的,也可以和功能测试一起测试。对于简单的系统可以将GUI测试和验证功能实现一起进行,但对于稍微大一些的系统,最好将其分开,这样才不至于遗漏任何一个重点。