软件基础问答题

性能:
负载压力测试是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量等,以确定系统所能承受的最大负载压力。
负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量所进行的测试。
压力测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下,系统性能处于失效状态,以此来获得系统能提供的最大服务级别的测试。
疲劳强度测试,通常是采用系统稳定运行情况下能够支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标、系统资源监控指标,确定系统处理最大工作量强度1生能的过程。
大数据量测试,包括独立的数据量测试和综合数据量测试。独立的数据量测试是针对某些系统存储、传输、统计、査询等业务进行的大数据量测试;综合数据量测试是指和压力测试、负载性能测试、疲劳强度测试相结合的综合测试。

  1. 负载测试和压力测试的区别?
    负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
    压力测试是通过逐步增加系统负载,测试系统性能变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统能提供的最大服务级别的测试。

  2. 负载压力测试的功能内容是否需要校验,检验和不校验的副作用?
    负载压力测试需要校验功能内容,若忽略了负载压力情况下的功能不稳定问题。没有正确的功能保证,负载压力性能测试就失去了意义。
    执行功能内容校验也会带来一些副作用,需要去记录业务操作结果,会导致资源消耗、操作行为增加以及产生大量日志等问题。

  3. 如题目涉及到特定时期内N个用户并发,并且处理能力至少要达到每秒N个请求,所以除功能测试外还需要测试与并发能力相关的因素,即对性能、负载、压力、并发、配置、可靠性、容量、失效恢复、链接速度、兼容性等方面进行测试。

  4. 进制转换
    二进制转换为八进制: 将二进制序列从右向左,每3位一组,每组对应一个八进制数字即可。
    二进制转换为十进制:
    a、无符号整数,从右往左依次用二进制位上的数字乘以2的n次幂的和(n大于等于0);
    b、带符号的二进制整数,除去最高位的符号位(1为负数,0为正数),其余与无符号二进制转化为十进制方法相同。
    c、小数二进制转化为十进制数,从小数点后第一位上的二进制数字乘以2的负一次方加上第二位上的二进制数字乘以2的负二次方,以此类推第n位上的二进制数字乘以2的负n次方。
    二进制转换为十六进制:二进制转16进制,只需将2进制数从右向左每四位一组合,每一个组合以一个十六进制数表示。
    十进制转换十六进制:整数除以16取余,直到商为0为止,然后从最后一个余数读到第一个。
    比如:4877=130D 解法:4877/16=304…13 304/16=19…0 19/16=1…3 1/16=0…1
    十六进制转换十进制:从右往左依次用十六进制位上的数字乘以16的n次幂的和。
    十六进制转换二进制:将16进制上每一位分别对应二进制上四位进行转换。
    例:2AF5换算成2进制:
    第0位: (5)16 = (0101) 2
    第1位: (F)16 = (1111) 2
    第2位: (A) 16 = (1010) 2
    第3位: (2) 16 = (0010) 2
    得:(2AF5)16=(0010.1010.1111.0101)2
    十六进制转换八进制:先将十六进制转为二进制,再将二进制转为八进制。

安全测试:

  1. 如何防止SQL注入?
    防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。
  2. 为防止口令攻击,请从口令的强度、传输存储及管理等方面说明可采取哪些安全防护措施?
    可采取的安全防护措施包括:
    ①口令强度:可设置最小口令长度,同时可采取要求用户在口令中使用非数字字母的字符等增加口令复杂度的手段提高口令强度。
    ②口令传输存储:可采用加密或Hashing手段,系统服务端存储的用户口令可加密或Hashing后存储,网络传输的用户口令可加密或Hashing后进行传输。
    ③口令管理:可设置最大口令时效强制用户定期更新口令,引入口令锁定机制以应对口令猜测攻击,引入口令历史强制用户设置新口令等。
  3. 口令认证机制进行测试时,请说明从用户名称及口令两个方面开展测试时应包含哪些基本测试点?
    对口令认证机制测试应包含的基本测试点:
    ①对用户名称测试的主要测试点在于测试用户名称的唯一性,即测试同时存在的用户名称在不考虑大小写的情况下,不能够同名。
    ②对用户口令测试应主要测试用户口令是否满足当前流行的控制模式。主要测试点应包括最大/最小口令时效、口令历史、最小口令长度、口令复杂度、加密选项及口令锁定等。
  4. USB Key的功能与性能测试应包含哪些基本的测试点。
    客户端USB Key测试的基本测试点:
    (1) 功能测试
    ①是否支持AES、RSA等常用加解密算法。
    ②是否提供外部接口以支持用户证书及私钥的导入。
    ③是否提供外部接口支持将数据传入Key内,经过公钥/私钥计算后导出。
    ④是否能实现USB Key插入状态实时监测,当USB Key意外拔出时是帝能自动锁定用户状态。
    ⑤是否使用口令进行保护。
    (2) 性能测试
    ①是否具备私钥不能导出的基本安全特性。
    ②Key内加解密算法的执行效率是否满足系统最低要求。
  5. 针对证书服务器的功能与性能测试应包含哪些基本的测试点。
    证书服务器测试的基本测试点:
    (1) 功能测试
    ①系统是否提证书的申请、审核、签发与管理功能。
    ②系统是否提供证书撤销列表的发布和管理等功能。
    ③系统是否提供证书认证策略及操作管理策略、自身证书安全管理等管理服务。
    ④是否可以提供加密证书和签名证书。
    ⑤证书格式是否采用标准X.509格式。
    (2) 性能测试
    ①检查证书服务器的处理性能是否具备可伸缩配置及扩展能力。
    ②关键部分是否采用双机热备和磁盘镜像等安全机制。
    ③是否满足系统的不间断运行、在线故障恢复和在线系统升级的需要。
    ④是否满足需求中预测的最大数景用户正常访问需求,且是否具备3〜4倍冗余,并根据需要测试证书服务器的并发处理能力。
  6. 要求:输入1~5分制整数,评价为文本,请设计4个打分和评价的测试输入,考虑多个方面的测试,如:正确输入、错误输入、XSS、SQL注入等测试。
    (1) 打分为任何在1〜5范围内的数字,评价为任意文本; 
    (2) 打分为任何在1〜5范围外的数字,评价为任意文本;
    (3) 打分和评价其中任一字段包含HTML标签,如:,等;
    (4) 打分和评价其中任一字段包含SQL功能符号,如包含’OR、2015’OR‘1’=‘1’等。
  7. 给出常见安全攻击手段并简要说明。
    (1)网络侦听:指在数据通信或数据交互的过程中,攻击者对数据进行截取分析,从而实现对包括用户支付账号及口令数据的非授权获取和使用。
    (2) 冒充攻击:攻击者采用口令猜测、消息重演与篡改等方式,伪装成另一个实体,欺骗安全中心的认证及授权服务,从而登录系统,获取对系统的非授权访问。
    (3) 拒绝服务攻击:攻击者通过对网络协议的实现缺陷进行故意攻击,或通过野蛮手段耗尽被攻击对象的资源,使电子商务平台中包括安全中心在内的关键服务停止响应甚至崩溃,从而使系统无法提供正常的服务或资源访问。
    (4) Web安全攻击:攻击者通过跨站脚本或SQL注入等攻击手段,在电子商务平台系统网页中植入恶意代码或在表单中提交恶意SQL命令,从而旁路系统正常访问控制或恶意盗取用户信息。
    8.针对安全测试可采用哪些基本的安全性测试方法
    可采用的基本安全性测试方法包括:
    (1) 功能验证:采用软件测试中的黑盒测试方法,对安全中心提供的密钥管理、加解密服务、认证服务以及授权服务进行功能测试,验证所提供的相应功能是否有效。
    (2) 漏洞扫描:借助于特定的漏洞扫描工具,对安全中心本地主机、网络及相应功能模块进行扫描,发现系统中存在的安全性弱点及安全漏洞,从而在安全漏洞造成严重危害之前,发现并加以防范。
    (3) 模拟攻击试验:模拟攻击试验是一组特殊的黑盒测试案例,通过模拟典型的安全攻击来验证安全中心的安全防护能力。
    (4) 侦听测试:通过典型的网络数据包获取技术,在系统数据通信或数据交互的过程中,对数据进行截取分析,从而发现系统在防止敏感数据被窃取方面的安全防护能力。
  8. 请分别说明针对密钥管理功能进行功能测试和性能测试各自应包含的基本测试点。
    密钥管理功能的基本测试点:
    (1) 功能测试
    ①系统是否具备密钥生成、密钥发送、密钥存储、密钥查询、密钥撤销、密钥恢复等基本功能;
    ②密钥库管理功能是否完善;
    ③密钥管理中心的系统、设备、数据、人员等安全管理是否严密;
    ④密钥管理中心的审计、认证、恢复、统计等系统管理是否具备;
    ⑤密钥管理系统与证书认证系统之间是否采用基于身份认证的安全通信协议。
    (2) 性能测试
    ①检查证书服务器的处理性能是否具备可伸缩配置及扩展能力利用并发压力测试工具测试受理点连接数、签发在用证书数目、密钥发放并发请求数是否满足业务需求;
    ②测试是否具备系统所需最大量的密钥生成、存储、传送、发布、归档等密钥管理功能;
    ③是否支持密钥用户要求年限的保存期;
    ④是否具备异地容灾备份;
    ⑤是否具备可伸缩配置及扩展能力;
    ⑥关键部分是否采用双机热备和磁盘镜像。
    10.请分别说明针对加解密服务功能进行功能测试和性能测试各自应包含的基本测试点。
    加解密服务功能的基本测试点:
    (1) 功能测试
    ①系统是否具备基础加解密功能;
    ②能否为应用提供相对稳定的统一安全服务接口;
    ③能否提供对多密码算法的支持;
    ④随着业务量的逐渐增加,是否可以灵活增加密码服务模块,实现性能平滑扩展。
    (2) 性能测试
    ①各加密算法使用的密钥长度是否达到业内安全的密钥长度;
    ②RSA、ECC等公钥算法的签名和验证速度以及AES等对称密钥算法的加解密速度是否满足业务要求;
    ③处理性能如公钥密码算法签名等是否具备可扩展能力。
  9. 设计表单输入测试用例以测试XSS攻击,系统设计时可以采用哪些技术手段防止此类攻击?
    XSS (跨站点脚本攻击)是一种注入式攻击,主要通过恶意脚本进行攻击,任何脚本如
    (2) click me!
    防止的主要手段是对功能符号进行编码(转义)。

基础知识考点:

  1. 常见的黑盒测试用例设计方法有哪些?
    黑盒测试方法除了等价类划分法和边界值分析法之外,还包括错误推测法,因果图法,判定表驱动法,正交试验法,功能图法等。

  2. 白盒测试时应根据程序的功能文档或程序的内部逻辑指定的覆盖标准确定测试数据;而黑盒测试则根据软件需求规格说明来设计测试用例,确定程序的功能是否满足软件需求规格说明;

  3. 图形测试的主要检查点有哪些?
    图形测试的主要检查点如下:
    (1)图片大小、 颜色饱和度和对比度是否合适;
    (2) 需要突出的链接的颜色是否容易识别;
    (3) 是否正确加载所有的图形。

  4. web系统页面测试的主要方面有哪些?
    页面测试可以从以下几个方面进行:
    (1) 页面的一致性;
    (2) 在每个页面上是否设计友好的用户界面和直观的导航系统;
    (3) 是否考虑多种浏览器的需要;
    (4)是否建立了页面文件的命名体系:
    (5) 是否充分考虑了合适的页面布局技术,如层叠样式表、表格和帧结构等。

  5. 采用决策表法进行测试用例设计的主要步骤有哪些?
    采用决策表法设计测试用例分为四步:
    1)确定规则的个数;
    2)列出所有的条件桩和动作桩;
    3)填入条件项和动作项;
    4)合并相似规则,化简决策表。

  6. 面向对象单元测试的主要对象是什么?
    面向对象测试的对象为类和类中的方法。

  7. 面向对象的测试分为哪几个阶段?
    面向对象分析的测试,面向对象设计的测试,面向对象编程的测试,面向对象单元测试,面向对象集成测试,面向对象确认和系统测试。
    面向对象的测试可以分成的四个层次是:
    ①测试与对象关联的单个操作,即算法层。
    ②测试单个对象类,即类层。
    ③测试对象集群。
    ④测试面向对象系统,即系统层。

  8. 继承关系中,如果测试父类时已经测试过,那么在什么情况下在子类中也需要测试?
    (1) 继承的方法在子类中进行了修改
    (2) 继承的方法调用了修改过的方法
    解释:若子类的某方法继承了其基类,方法进行了修改,则需要进行测试;另一种情况是,继承的方法没有修改,用基类的方法,但是该方法调用了子类修改过的其他方法时,也需要对该方法进行测试。

  9. 概念理解
    语句覆盖: 在控制流中每条可执行的语句至少被执行一次!(使得程序中每一条语句至少被运行一遍)
    分支覆盖又叫判定覆盖:使得程序中每个真值分支和假值分支至少执行一次,分支覆盖也称判定覆盖。
    条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果在⑴的基础上,使每个判定表达式的每个条件都取到各种可能的结果。
    MC/DC覆盖(判定条件覆盖):保证在一个程序中每一种输入输出至少出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判断中的每个条件必须能够独立影响一个判断的输出,即在其他条件不变的前提下仅改变这个条件的值,时使判断结果改变。
    覆盖率:
    语句覆盖 = 已执行的语句数目 / 所有语句的总数目 * 100%
    分支覆盖 = 已执行的分支数目 / 分支总数目 * 100%

  10. 数据流图用于功能建模。软件基础问答题_第1张图片

  11. 增量调制是一种预测编码技术。

  12. 数据库设计的顺序是:需求分享—概念结构设计—逻辑结构设计—物理结构设计。

  13. 希尔排序是插入排序的一种,又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。
    希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减少至1时,整个文件恰被分成一组,算法便终止。

  14. 采用虚拟存储器的目的是“扩大用户编程的地址空间”。

  15. 信息系统软件监控包括如下功能:
    a、信息系统软件汇总及对信息系统软件进行分组;
    b、信息系统软件执行许可策略设定、黑白名单设置;
    c、信息系统软件运行的历史记录查询;
    d、信息系统软件运行的历史记录统计分析和导出;
    e、信息系统软件运行的时长统计和导出;
    f、信息系统软件运行的次数统计和导出。

  16. 信息系统设施运行维护的内容可分为:例行操作运维、响应支持运维、优化改善运维和咨询评估运维。例行操作作业包括设施监控、预防性检查和常规操作三种类型。

  17. 防火墙的规则处理方式如下:
    Accept:允许数据包或信息通过;
    Reject:拒绝数据包或信息通过,并且通知信息源该信息禁止;
    Drop:直接将数据包或信息丢弃,并且不通知信息源。

  18. 一个对象通常由对象标识、属性和方法(或操作)。

  19. 多维数据粉是OLAP的典型应用;数据挖掘一般用于挖掘数据之间的联系,得到一些人类所未知的数据规律。

  20. 事物服务器包括多个在共享内存中访问数据的进程:
    服务器进程:接收用户查询(事物)、执行查询并返回结果的进程。
    锁管理器进程:包括锁授予、释放锁和死锁检测。
    数据库写进程:有一个或多个进程用来将修改过的缓冲块输出到基于连续方式的磁盘中。。
    日志写进程:该进程将日志记录从日志记录缓冲区输出到稳定存储器上。
    检查点进程:定期执行检测点操作。
    进程监控进程:监控其他进程,一旦有进程失败,它将为失败进程执行恢复动作。

  21. 网络测试的对象包括网络平台(文件服务器、工作站、网络操作系统)、应用层(应用程序)、子系统(路由器、集线器、交换机、网桥)、全局网络路径(网段、全局网)。

  22. 模拟攻击试验包括冒充、重演、消息篡改、服务拒绝、内部攻击、外部攻击、陷阱门、木马等内容。

  23. 条件覆盖的测试用例数为:2^n(n代表条件个数)

  24. 软件体系结构再概要设计阶段设计;数据结构、相关的算法一家数据库物理结构则在详细设计阶段设计。

  25. MVC的优点:有利于提高系统的开发效率、提高系统的可维护性和有利于代码的重用。

  26. 模型的覆盖率类型:条件、判定、MC/DC ;模型验证的主要方法是分析:正确性分析;有效性分析;有用性分析;高效性分析
    正确性分析:(模型稳定性分析,稳健性分析,收敛性分析,变化趋势分析,极值分析等)
    有效性分析:误差分析,参数敏感性分析,模型对比检验
    有用性分析:关键数据求解,极值点,拐点,变化趋势分析,用数据验证动态模拟。
    高效性分析:时空复杂度分析与现有进行比较

  27. 软件测试配置管理一般包括四个最基本的活动:配置项标识、配置项控制、配置状态报告和配置审计。
    确定测试基线是配置项控制的基本功能;配置项控制的主要活动包括规定测试基线;规定何时何人创立新基线,如何创立;确定变更控制委员会的人员组成、职能、工作程序等;确定变更请求的程序、终止条件以及测试人员执行变更的职能等等。

  28. 计算机的主要技术性能指标有主频、字长、内存容量、存取周期、运算速度及其他指标。

你可能感兴趣的:(功能测试,安全性测试,压力测试)