面试宝典之测试概念

    xiaoxiao2021-08-22  103

    一、V&V

    Verification(验证):编码的正确性

    Validation(确认):是否满足需求定义

    二、遵循原则:

    1、Good enough原则:投入与产出适当权衡

    2、Pareto原则(80-20原则):80%BUG在分析、设计、评审极端可以被发现和修正,20%需由系统的软件测试来发现

    3、尽可能早开展测试

    4、在发现较多错误的地方投入更多的测试

    5、同化效应

    三、分类

    可靠性测试:

    1、完整性测试:评估测试对象的强壮性(防失败能力)、技术兼容性、资源利用率

    2、结构性测试

    基本测试:

    1BVT测试(编译检查测试):源码是否能正确编译成一个新的、完整可用的版本

    2、冒烟测试:是否实现基本可测性要求

    功能性测试:

    1、配置测试:在不同软硬件配置上按预期运行测试

    2、功能测试:按计划运行,提供需求的服务、方法或用例的测试

    3、安装测试:在不同软硬件配置、不同条件(磁盘空间不足、电源中断)下按预期安装测试,主要关注:1)安装过程是否必要?

                 2)安装过程

                 3)卸载

                 4)升级安装

                 5)安装后第一次运行

    性能测试:

    1、配置测试:通过被测试软件的软硬件配置进行测试,找到系统各项资源的最有分配原则,为系统调优提供重要依据。

    2、竞争测试(并发测试):核实测试对象对多个主角请求相同资源处理是否可以接受的测试

    3、强度测试:确保系统可在遇到异常条件时按预期进行

    4、安全性测试:测试人员像黑客一样攻击系统,发现系统包含的安全漏洞

    1)网页安全漏洞的检测方法:代码审查、Web Developer工具

    2SQL注入的检测方法:代码审查,看所有涉及SQL语句提交的地方,是否正确处理字符串

    3)命令注入:SQL注入是其中一种

    4)缓冲区溢出:尤其用C语言开发的系统

                     检测方法:尝试不同长度的数据输入、代码审查、AppVerifer工具

    5)整数溢出

    6)跨站脚本攻击(XSS):

       ①目的:盗走客户端cookies,或用于确定客户身份的敏感信息

       ②原因:Web应用程序从用户处获取输入,对输入字符串没验证就在页面显示

       ③检查方法:代码走查看RequestResponse、字符串输入类型空间的处理代码

                   结合黑盒测试:字输入框输入脚本,检验web程序是否进行解释

    6、压力测试:目的是找到系统极限点,在系统崩溃或性能指标不符时的点

    7、负载测试:需多次测试,记录随并发的虚拟用户增加,系统的响应时间、内存使用、CPU等情况(在性能需求不明确时往往进行负载测试而不是压力测试)

    8、容量测试:核实测试对象大于数据量的处理能力的测试

    (1)估算软件系统的业务数据量和常用功能操作

    2)模拟生成业务数据量

    3)找到需要进行大数据量性能测试的功能模块

    4)分析功能模块要用到的数据库表,往表插入估算的数据量的业务数据

    5)把数据加载到软件系统进行功能测试

    (模拟大批量数据方法:DataFactory工具、编写SQL插入数据库表、编程产生)

    9、可靠性测试:给系统加载一定的业务压力(egCPU资源在70%-90%的使用率)的情况下,运行一段时间,检查系统是否稳定。

    10、失效测试:检测系统局部发生故障,用户能否继续使用系统,用户受到多大影响

    回归测试:

    1.基于风险的回归测试:评估系统不同部分蕴含的风险,并专注于测试高风险处

    评估风险:可能性(可能出错的机会)、影响(出错后会造成的影响程度)

    探索性测试:

    1.概念:强调测试人员的发散思维,在测试过程中运用获得的关于测试对象的信息设计新的更好的测试(适合需求不是很明确的测试任务,在复杂的测试情况、对产品了解极少的情况下特别有用)

    单元测试:

    1、依据是详细设计文档

    2、以黑盒测试为主,核心模块或风险较高模块可以辅助使用白盒测试(检查代码)

    3、多个模块可以同时并行进行测试

    4、可能需要测试人员编写驱动模块和桩模块

       驱动模块:模拟被测模块上一级模块的那个模块

       桩模块:模拟被测模块下一级模块的那个模块

    集成测试:

    主要以黑盒测试为主,对于有bug的地方可以用白盒测试

    系统测试:

    1、在系统测试之前通常会有确认测试,需要确认

       ①系统是否值得一测(冒烟测试)

       ②确认相关文档是否齐全(尤其是交付给用户的文档)

    验收测试(用户接受度测试):

    1、alpha测试:在开发环境中,由最终用户(或内部人员)参与的测试

    2、beta测试:在用户实际环境中,由最终用户参与的测试,一般就使用实际数据

     

    四、AEP(自动错误预防):

    1、5个步骤:识别错误、找出错误原因、定位产品产生错误的地方、执行预防措施来确保相同的错误不再出现、监视整个过程。把这5步骤用自动化的方式衔接并执行

     

    五、软件测试的各个阶段(PDCA循环):

    测试需求的分析和确定

    测试计划

    测试设计

    测试执行

    测试记录和缺陷跟踪

    回归测试

    测试总结和报告

     

    六、需求规格说明书检查内容:

    正确性、必要性、优先级、明确性、可测性、完整性、一致性、可修改性

     

    七、项目的四个因素:

    时间:项目计划

    成本:合同

    范围:需求文档

    质量:QA计划或测试计划

     

    八、自动化测试与手工测试

    1.不宜在进度紧迫的项目中开展自动化测试

    2.自动化测试不应过早进行,因为早期程序界面不稳定需频繁改动

    转载请注明原文地址: https://ju.6miu.com/read-676893.html

    最新回复(0)