百度测开二三面

面经问题来自https://www.cnblogs.com/Finding-bugs/p/11226187.html
以下是网上搜集的部分资料

文化基因算法
化基因算法用局部启发式搜索来模拟由大量专业知识支撑的变异过程,是一种基于种群的全局搜索和基于个体的局部启发式搜索的结合体
文化基因算法提出的是一种框架、是一个概念,在这个框架下,采用不同的搜索策略可以构成不同的文化基因算法,如全局搜索策略可以采用遗传算法、进化策略、进化规划等,局部搜索策略可以采用爬山搜索、模拟退火、贪婪算法、禁忌搜索、导引式局部搜索等

举例说明测试用例的生成过程
用例设计步骤及方法

  1. 确定功能点的测试需求
    确定功能点的测试需求,是指通过产品功能描述及功能特点,确定此功能点的测试类型,即针对此功能,是仅仅进行功能测试,还是需要进行功能测试、安全测试、兼容性测试等。
  2. 功能点建模
    对功能点进一步建模,若测试人员能够在需求阶段接入到产品开发,在需求阶段,就可以对软件产品进行建模,但在需求阶段建立的模型可能无法细化到某个功能点,因此需要对功能点进行建模。可以从以下5个方面进行建模,也可以从其他方面入手,建议多进行状态分析和状态间转换。
    1. 输入参数范围 或 关联输入状态;
    2. 功能点关联操作;
    3. 功能点操作失败后的后续操作;
    4. 功能点操作失败的原因;
    5. 与功能点相关的软件内部操作等。
  3. 输出功能的测试点
    根据测试需求和建立的模型,输出此功能测试点。
  4. 编写测试用例
    根据测试点,运用等价类划分、边界值、错误推测和场景分析等方法,编写测试用例。在用例编写过程中,注意一个测试用例可以包含2-3个测试点,且根据测试用例逻辑,规划测试用例执行顺序。

测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求
根据测试点,运用等价类划分、边界值、错误推测和场景分析等方法,编写测试用例。在用例编写过程中,注意一个测试用例可以包含2-3个测试点,且根据测试用例逻辑,规划测试用例执行顺序。

测试用例的设计方法主要有黑盒测试法和白盒测试法
黑盒测试也称功能测试,黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 [1]
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 [1]
设计方法
1、白盒法
白盒法又称结构化方法(结构测试)或逻辑覆盖法,其基本思想是把程序看作是路径的集合。这样,对程序的测试便转化为对程序中某些路径的测试,要设法让被测程序的“各处”均被执行到,使潜伏在程序每个角落的错误均有机会暴露出来。因此,白盒法实际上是一种选择通过指定路径的输入数据的分析方法。 [4]
2、测试覆盖率
采用白盒法可以用测试覆盖率作为测试彻底度的定量衡量标准。常用的覆盖率有: [4]
(1)语句覆盖:要求设计足够的测试数据,使程序的每条语句都至少执行一次。 [4]
(2)判定覆盖(分支覆盖):使程序中的每个判定至少出现一次“真值”和一次假值”,即程序中的每个判定(分支)都至少要经过一次。 [4]
(3)条件覆盖:使判定中每个条件的所有可能的结果至少出现一次,并且使每条语句至少执行一次。 [4]
(4)判定条件覆盖:使判定覆盖和条件覆盖同时得到满足。 [4]
(5)多重条件覆盖:又称条件的组合覆盖,是使程序中每个判定中的条件的各种组合都至少取到一次,并且每条语句至少执行一次。 [4]
此外,还有诸如路径覆盖(程序中每条路径至少执行一次)、基本路径覆盖(循环次数只考虑小于等于一次所组成的程序路径,每条基本路径至少执行一次)等。为了获取测试覆盖率(不论是哪一种覆盖率)需要有测试工具的帮助,且需要花费人力与机时去做测试工作(设计测试用例、输入测试数据、进行统计计算等。 [4]
3、黑盒法
黑盒法又称为功能测试,是根据软件需求说明书上罗列的各项功能、性能指标,来构造测试用例的输入数据,实际执行被测软件,分析执行过程的行为与执行结果以便检查出被测软件的错误。在黑盒法测试中,测试者可以完全不关心程序的内部结构。可见,白盒法是一种逻辑驱动方法,而黑盒法是一种功能驱动方法。黑盒法是最常用的测试方法。 [4]

基本事件流:
1、用户向ATM提款机中插入银行卡,如果银行卡是合法的,ATM提款机界面提示用户输入提款密码;
参数1 银行密码
参数类型 字符串
参数范围 字符串为0~9之间的阿拉伯数字组合,密码长度为6位
备注
用户输入该银行卡的密码,ATM提款机与MainFrame传递密码,检验密码的正确性。如果输入密码正确,提示用户输入取钱金额,提示信息为,“请输入您的提款额度”;
用户输入取钱金额,系统校验金额正确,提示用户确认,提示信息为“您输入的金额是xxx,请确认,谢谢!”,用户按下确认键,确认需要提取的金额;
参数1 取款金额
参数类型 整数
参数范围 50~1500 RMB,单笔取款额最高为1500RMB;每24小时之内,取款的最高限额是4500RMB
备注
系统同步银行主机,点钞票,输出给用户,并且减掉数据库中该用户帐户中的存款金额。
用户提款,银行卡自动退出,用户取走现金,拔出银行卡,ATM提款机界面恢复到初始状态;
备选事件流(考虑可能失败的地方):

  1. 在基本事件流1中:
    a) 如果插入无效的银行卡,那么,在ATM提款机界面上提示用户“您使用的银行卡无效!”,3秒钟后,自动退出该银行卡。
  2. 在基本事件流2中:
    a) 如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”;
    b) 如果用户连续3次输入错误密码,ATM提款机吞卡,并且ATM提款机的界面恢复到初始状态。此时,其他提款人可以继续使用其他的合法的银行卡在ATM提款机上提取现金。
    c) 用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。
  3. 在基本事件流3中:
    a) 如果用户输入的单笔提款金额超过单笔提款上限,ATM提款机界面提示“您输入的金额错误,单笔提款上限金额是1500RMB,请重新输入”;
    b) 如果用户输入的单笔金额,不是以50RMB为单位的,那么提示用户“您输入的提款金额错误,请输入以50为单位的金额”;
    c) 如果用户在24小时内提取的金额大于4500RMB,则ATM提款机提示用户,“24小时内只能提取4500RMB,请重新输入提款金额”输入提取的金额超过了系统的设定的限制 ;
    d) 如果用户输入正确的提款金额,ATM提款机提示用户确认后,用户取消提款,则ATM提款机自动退出该银行卡;
    e) 如果ATM提款机中余额不足,则提示用户,“抱歉,ATM提款机中余额不足”,3秒钟后,自动退出银行卡。
  4. 在基本事件流4中:
    a) 如果用户银行户头中的存款小于提款金额,则提示用户“抱歉,您的存款余额不足!”,3秒钟后,自动退出银行卡;
  5. 在基本事件流5中:
    a) 如果用户没有取走现金,或者没有拔出银行卡,ATM提款机不做任何提示,直接恢复到界面的初始状态;
  1.  流程图可以参考需求规格说明书中的相关流程图
    
  2.  如果没有需求文档,和需求和开发沟通,确保了解被测试软件的流程
    
  3.  流程有大流程和小流程,大流程是指大功能的跳转,小流程是指功能内的调整,大小流程需要都被覆盖到.
    

二、应用
以用户登录功能为例,在系统测试阶段,介绍应用方法。

  1. 确定登录功能测试需求
    用户登录测试类型,首先想到的是功能测试;由于用户可能采用不同的设备进行登录,因此需要有兼容性测试;同样用户登录属于和用户直接交互的功能,应包含易用性和性能测试;最后用户登录涉及用户账户和密码,因此应包含安全测试。此处功能测试是指业务测试,性能测试可以进一步细化为负载测试、压力测试和容量测试。总结测试需求如下:

  2. 功能点建模
    2.1 简单模型

2.2 状态转换图
用户名状态转换图:

登录状态转换图:

  1. 生成测试点
    根据建立的功能点简单模型和状态转换图,通过组合及细化,生成测试点。
    3.1功能测试测试点

3.2兼容性测试点
兼容性测试与功能测试相比,测试点相对少,兼容性一般从软件运行环境考虑,目地是使得软件在不同的运行环境下都能正确显示或运行,而软件运行环境可以划分为软件环境和硬件环境两部分。软件环境一般指操作系统类型版本、浏览器类型版本等;而硬件环境一般指终端设备类型、显示设备大小及分辨率等。

3.3安全测试点
本人接触的项目中,没有进行安全测试,可以从 显示安全、存储安全、传输安全等方面考虑安全性测试,还可以参考专门的安全测试方法。

3.4 性能测试点
性能在当前可以从时间和空间两个维度考虑,时间纬度主要是考察系统的响应速度,空间维度主要考察软件运行过程中的资源占有情况。

  1. 编写测试用例
    根据3中的测试点,补充测试数据,生成测试用例。注意可以将多个测试点合并为一个测试用例,如功能测试的测试点1和安全测试点1,可以合并为一个测试用例。

测试方法
使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别

黑盒白盒
从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。白盒测试方法主要有代码检査法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。黑盒测试方法主要包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。 [1]

静态动态
从是否执行程序的角度划分,测试方法又可分为静态测试和动态测试。静态测试包括代码检査、静态结构分析、代码质量度量等。动态测试由3部分组成:构造测试实例、执行程序和分析程序的输出结果

微信支付测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/alike_meng/article/details/104343118