软件测试常见笔试题目

2024-05-11

软件测试常见笔试题目(精选6篇)

篇1:软件测试常见笔试题目

1、您认为做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

2、问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?

300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。

300个用户在一个客户端上,需要更大的带宽。

IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。

所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

3、软件配置管理的作用?软件配置包括什么?

软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计

4、目前主要的测试用例设计方法是什么?

白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖

黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法

5、什么是测试用例 什么是测试脚本 两者的关系是什么?

为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。

测试脚本是为了进行自动化测试而编写的脚本。

测试脚本的编写必须对应相应的测试用例

6、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。

动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。

黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。

白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。

β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

7、软件测试分为几个阶段 各阶段的测试策略和要求是什么?

和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:

单元测试:单元测试是针对软件设计的最小单位CC程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

单元测试测试策略:

自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。

孤立单元测试策略:最好的单元测试策略。

集成测试的测试策略:

大爆炸集成:适应于一个维护型项目或被测试系统较小

自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

基于进度的集成

优点:具有较高的并行度;能够有效缩短项目的开发进度。

缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

系统测试的测试策略:

数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

8、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?

单元测试阶段:各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。

集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。

系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

9、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。

白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。

白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

10、如何测试一个纸杯?

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

可靠性:杯子从不同高度落下的损坏程度

可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

11、你自认为测试的优势在哪里?

该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:

有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好

篇2:软件测试常见笔试题目

选择题

1:外商投资企业每月底结帐,( )。

a.采用“帐结法”

b.采用“表结法”

c.采用“帐结法”或“表结法”

d.无固定方法

2:某项设备原价180000元,预计净残值3000元,预计使用年限。采用年限平均法计提折旧,则第一年的折旧额为

a.17700元

b.18000元

c.32182元

d.36000元

3:企业购买股票作为短期投资,实际支付价款中包含的已宣告发放但尚未领取的现金股利,应记入的账户是

a.“短期投资”

b.“投资收益”

c.“其他应收款”

d.“应收股利”

4:发生下列情况时,审计人员需实施符合性测试

a.相关内部控制不存在

b.相关内部控制未有效运行

c.进行符合性测试的工作量可能小于进行符合性测试所减少的实质性测试工作量

d.小规模企业

5:企业支付职工医药费,应借记

a.“管理费用”账户

b.“营业外支出”账户

c.“应付福利费”账户

d.“盈余公积―公益金”账户

6:以产品销售利润、其他业务利润、财务费用和管理费用为内容计算的综合结果是

a.主营业务利润

b.利润总额

c.营业利润

d.净利润

7:品成本计算的分类法适用于

a.品种、规格繁多的产品

b.可以按照一定的标准分类的产品

c.大量大批生产的产品

d.品种、规格繁多,而且可以按照一定标准分类的产品

8:审计证据的适当性是指审计证据的相关性和可靠性,相关性是指证据应与相关。

a.审计目标

b.审计范围

c.被审计单位的会计报表

d.客观事实

9:企业根据有关规定,将一台设备的折旧方法由原平均年限法改为加速折旧法,这种方法的改变属于( )。

a.会计估计的变更

b.会计政策的变更

c.会计差错调整

d.非调整事项调整

10:在上市公司披露的信息中占据主要地位的是

a.财务与会计信息

b.公司内部管理报告

c.公司董事、监事简历信息

d.有关合同签订信息

11:确保连续系统的反映经济业务、为编制会计报表提供依据,体现了

a.会计凭证设计的方法

b.会计程序设计的手段

c.会计账簿设计的意义

d.会计科目设计的依据

12:企业债权人取消公司应付帐款,应贷记的帐户是( )。

a.应付帐款

b.其他业务收入

c.投资收益

d.资本公积

13:用于购建固定资产的长期借款,在所购建的固定资产尚未交付使用之前,其利息费用应记入( )科目的借方。

a.长期借款

b.在建工程

c.财务费用

14:以收入和费用是否已经发生为标准,按照归属期来确定本期的收入和费用的原则称为( )。

a.收付实现制原则

b.配比原则

c.谨慎性原则

d.权责发生制原则

15:生产多品种产品企业,如果成本水平和各产品单位售价不变,在各产品单位贡献毛益一致的情况下,改变品种结构,则盈亏临界点的销售额

a.下降

b.上升

c.不变

d.不确定

16:材料销售取得的收入应在( )中核算。

a.产品销售收入

b.其他业务收入

c.营业外收入

d.投资收益

简答题

17:名词解释:商业汇票

18:会计核算形式是指会计凭证,会计帐簿和记帐程序的有机结合。

(1)请指出五种主要核算形式;

(2)就汇总记帐凭证核算形式,说明其程序。

19:假设a公司的成本资料如下:

销售单价 40元

单位变动成本 28元

固定成本总额 1,584,000元

要求:

(1)计算盈亏临界点销售量(分别以实物量和金额表示)。

(2)该公司为达到税前目标利润120,000元,其销售量应为多少?

(3)该公司如达到税后目标利润180,000元(税率40%),其销售量应为多少?

(4)假设变动成本中有50%为人工成本,固定成本中有20%为人工成本,此时,人工成本已上升10%,求盈亏临界点销售量(以实物量表示)。

20:试述资本金、资本、基金与资金的联系与区别。

21:资料:钱塘机械厂注册资金100万元,主要生产螺杆、螺帽。财务部门配有会计人员6人,其中财务科长1人,另5人分别负责采购及销售岗位、工资核算及总账报表岗位、固定资产核算岗位、成本核算岗位、稽核岗位的工作。

要求:

1)、设计采购及销售岗位责任(8分)。

2)、设计工资核算及总账报表岗位责任(10分)

3)、设计固定资产核算岗位责任(5分)

22:名词解释:审计证据

23:名词解释:成本

24:名词解释:永久性差异

25:长江公司以人民币为记账本位币,设有现汇银行存款账户,有关外币资金均通过该账户收付,有关外币业务资料如下:

(1)20×0年12月1日有关美元账户的余额如下:

账户名称 美元 折合汇率 人民币金额

外汇存款(美元户) 100008.7870000

应收外汇账款 8.7174000

短期外汇借款 55008.7478500

应付外汇账款 15008.7130500

长期外汇借款 80008.7696000

(2)该公司记录外币采用按当月1日市场汇率作为折合率,按月计算汇兑损益。20×0年12月31日的市场汇率为1美元兑换人民币8.80元。

(3)该公司20×0年12月份发生下列经济业务:

①自营出口产品一批,销售收入为8000美元,产品已发出,同时收回货款,并存入银行外汇户;

②自营从国外进口一批材料,实际价款为3000美元,材料已验收入库,货款尚未支付;

③偿还外币借款40000美元,其中:短期借款为15000美元,长期借款为25000美元。

④收回应收外汇账款20150美元,已存入银行外汇户;

⑤用外币长期借款购入设备一台,实际用银行外汇存款支付10000美元,设备已交付生产使用。

要求:

(1)根据上述经济业务,编制有关外币业务的会计分录;

(2)计算确定各外币账户的期末余额;

篇3:软件测试常见笔试题目

作为透平式压缩机的一种, 离心式压缩机具有排气量大、结构简单紧凑、运转率高等特点, 因此被广泛应用于石油化工及其它行业中。在离心式压缩机使用过程中, 由于润滑不合理引起的压缩机故障还是比较常见的, 不仅影响压缩机的运行效率, 而且还会减少相关机件使用寿命, 甚至造成压缩机故障停车及损坏。造成离心式压缩机润滑故障的原因很多, 但主要是对离心式压缩机的润滑原理及润滑系统了解不足造成的。

一、离心式压缩机的润滑

一般的离心式压缩机润滑油系统都是由润滑油箱、主油泵、辅油泵、油过滤器、油冷却器及相关阀门及仪表元件组成。

润滑油箱是润滑油供给、回收及储存的设备, 通常也是注油孔及放油孔所在处。润滑油箱内部有加热器, 当首次开车时, 油箱内部的油加热器给润滑油加温, 通常是保证油温在35℃以上, 以满足离心式压缩机的启动条件。润滑油箱的回油口和油泵的吸入口之间一般会分布在油箱的两端, 中间设有挡板, 确保回流到油箱的润滑油有沉降杂质及排气时间。油箱侧壁一般都会有液位计, 便于观察油箱的液位及油脂颜色的变化情况。

润滑油泵一般有两台, 一台为辅油泵, 一台为主油泵。现在比较成熟的离心式压缩机制造公司, 通常配备的辅油泵为独立的离心泵, 泵的吸入口及排出口都为独立系统, 多数用于压缩机开车前及卸载状态下的油路循环;主油泵通常设计为轴头泵, 利用压缩机主轴的转动带动轴头泵的主轴转动然后对主轴及相关配件进行润滑, 其轴头泵的优点主要是在离心式压缩机失去动力源的时候, 各个润滑点在主轴的惯性带动下能持续供油, 避免配件间干磨的现象发生, 因此可以省去再制造高位油箱的必要性。现在设计制造的压缩机辅油泵与主油泵之间, 都会有仪表联锁控制, 也就是说这两个泵之间不会出现同时启停的现象发生。

润滑油过滤器是对供油管路的润滑油过滤, 是保证供油油脂质量的关键设备。通常油过滤器内部都有滤芯或过滤网, 用来实现对润滑油的过滤作用。现在常用的基本都是高效滤纸制造的滤芯, 它的优点主要是过滤精度高、易更换, 而且安全可靠性非常高。

二、离心式压缩机润滑油的变质过程

压缩机在使用过程中润滑油的相关性能主要受到温度、氧分压、水分及机械杂质的影响。

温度是促使润滑油氧化的主要因素, 温度每升高10℃, 润滑油氧化速度接近增加两倍, 而且温度过高也会加大结焦和积碳的概率。

润滑油中的水分不仅能使润滑油乳化, 而且还能够使润滑油中酸值增加, 加速破坏润滑油添加剂中抗氧化性, 致使润滑油在同等工况下使用时, 含有水分的润滑油更加容易氧化。

氧分压即气体总压力与气体中氧的体积的百分数之积。润滑油的氧化速度与氧分压成正比例关系。因此压缩机运行时, 比压缩机静止时更容易氧化。例如:压缩机静止时的气体压力为外界大气压 (0.1Mpa) , 而压缩机运行时的气体压力为0.7Mpa, 那么显而易见压缩运行时润滑油的氧化速度是静止时的7倍。

润滑油中的机械杂质主要来源于三个方面:外界杂质或污染、配件磨损产生的颗粒、添加剂析出, 杂质在润滑油中不仅仅是污染物, 而且还是一种起到加速氧化作用的催化剂。如果润滑油中的杂质含量很多, 那么将不可避免的加速润滑油氧化, 并生产各种氧化产物, 致使润滑油的质量快速下降, 加快润滑油的更换周期, 造成生产成本的增加。

润滑油在使用过程中的“老化”与“氧化”是不可避免的, 它们是一系列非常复杂的物理过程与化学过程的变化。其中主要的物理过程是机械杂质与水分加速使润滑油乳化, 并同时变成氧化过程的催化剂;主要的化学过程是润滑油在高温、高氧分压的环境下, 润滑油的酸碱平衡值被破坏, 酸性物质越来越多, 随着酸性值的增高, 润滑油中的抗氧化剂会慢慢失效。

三、离心式压缩机的常见润滑系统事故

在润滑系统常见的故障中, 将列举两个真实案例, 通过案例跟大家探讨一下相关的故障原因及解决办法:

1、某厂某车间有一台国外进口的离心式压缩机, 其形式为三级压缩、两级冷却, 排气量可达到5万m2。这台压缩机在使用过程中发现, 三级压缩中的其中一级轴振动一直偏高, 并产生过一次联锁停车。在停车后, 逐步排查压缩机各元件, 均未发现有严重磨损或损坏现象, 经逐一检查论证后, 发现最大的疑点在润滑油润滑方面。

解决办法:压缩机开机以后, 逐步调节润滑油压力与温度, 使润滑油的流动性与油膜厚度达到最佳状态, 使压缩机轴在特定的情况下拥有最好的稳定性。

2、某厂某车间有五台国外进口压缩机, 这五台压缩机为同一厂家的同一型号机型, 正常生产时只要开启一台压缩机就可以满足管网用量, 因此车间规定每隔15天轮换一次压缩机, 五台压缩机依次轮换运行。在半年后, 车间设备管理人员发现, 五台压缩机润滑油箱都存在乳化现象, 并且润滑油中的酸值已经超过允许范围。

篇4:古今文章题目中的常见体裁标志

记,就是记载,描写的意思。大凡题目上用“记”字的一般都是记叙文。“记”字既可居句首,也可置句尾。有记人叙事的,如张溥的《五人墓碑记》;描绘景物的,如叶圣陶的《记金华的双龙洞》;描绘物体的,如薛福成的《观巴黎油画记》;也有长篇的,如吴承恩的《西游记》,刘鹗的《老残游记》。今天常用的文体如日记、游记、访问记等,也属于这一类。

论、说,就是阐明事理的意思。大凡题目上用“论”字的一般是议论文。古代的有苏洵的《六国论》、贾谊的《过秦论》等;近代的有谢觉哉的《论“同甘共苦”》、鲁迅的《“友邦惊诧”论》;今天常用的文体如社论、评论等也属于这一类。有的不用“论”字,而是用“谈”字,如吴晗的《谈骨气》和《谈书气》、何其芳的《谈修改文章》等。也有用“说”字的,如吴晗的《说谦虚》。“说”,在古文中是另一种文体,亦称“杂说”,多见于寓言性的杂文,如韩愈的《马说》、柳宗元的《捕蛇者说》。但在古文中也有用“说”字相当于“论”字的,如韩愈的《师说》。此外,今天也有用“评”、“议”等字来替代“论(说)”字的。在现代文中,有的还在“论”、“谈”、“说”、“议”、“评”字的前边加上修饰性的字,如“略论……”、“试谈……”、“浅说……”、“……刍议”、“……述评”等;“谈”、“说”等也可以叠用成“谈谈”、“说说”。

赋,是盛行于汉、魏、六朝时的韵文和散文综合体,通常用来写景叙事。如杜牧的《阿房宫赋》。在现代,有些写景叙事的散文也称为“赋”,如杨朔的《茶花赋》、峻青的《秋色赋》等。

传,常见的一种是用来记录某人生平事迹的。如范晔的《张衡传》、司马迁的《廉颇蔺相如列转》。现代文章中也有称为“小传”、“传记”、“自传”等的都属于这一类。另有一种记述故事的文章也称为“传”,如施耐庵的《水浒传》、马中锡的《中山狼传》、鲁迅的《阿Q正传》等。

赞,是我国古代的文体名,一般用于歌颂和赞美。今天有的作家写散文,诗歌题目上也用上个“赞“字,如茅盾的《白杨礼赞》,冰心的《樱花赞》。

歌、行,都是我国古代诗歌体裁的名称。“歌”与“行”不同,“歌”主要是能唱的诗,如李白的《秋浦歌》,杜甫的《茅屋为秋风所破歌》。现在流传的一些民歌、儿歌,也都能随口吟唱。用“行”的有自居易的《琵琶行》、汉乐府的《长歌行》等。

序,一种是书序,一般写在著作论文的前边,用来说明写作,意图或全书要旨的文字,也可放于书后,称为“跋”,如文天祥的《〈指南录〉后序》。今天有称“序言”的,如毛泽东的《〈农村调查〉序言》。另一种赠序,起于唐朝,是送别亲友时写下的赠言,如宋濂的《送东阳马生序》。赠序今天已不用。

书,一般是指是给亲友的信,今天称为“书信”。如王安石的《答司马谏议书》、林觉民的《与妻书》。也可用于公开的写信,如现代的《告台湾同胞书》等。此外,在封建社会里臣子向君主陈述事情的文章,有的称“表”,如诸葛亮的《出师表》,有的称“疏”,如贾谊的《论积贮疏》。

总之,许多文章的题目中都有表示体裁的字眼,我们阅读文章时,就可借助于题目上的这些字眼,大体上了解和把握文章的体裁。

篇5:金山软件笔试测试题目

我的理解:

四种,答题的时候我忘了reinterpret_cast怎么拼写。要求写成示例代码, 不过我没写(没上下文环境,还得我自个去自定义类型,太费事了)。

(2)explicit关键字的作用。

我的理解:

去除隐式转换。

(3)虚析构函数。

我的理解:

在一个继承体系中,基类的析构函数必须设置为虚函数,不然可能存在析构不完整的危险。

2、是一个改错题。大概考察的知识是:vector、多态、虚函数表指针。

我的理解:

(1)要实现多态,vector里边保存的必须是地址(指针),而不能是基类、引用。

(2)定义vector的const_iterator。

(3)派生类的构造函数是在派生类对象构造的最后阶段才被调用的,当调用构造函数的时候,对象的基类子对象、成员变量(对象)已经初始化完毕。所以派生类的构造函数不可以乱来。

3、容器的传参和erase操作

给出的是一个函数,其中关键的部分大概是这样:

for(vector::iterator iter = ivec.begin; iter != ivec.end; ++iter)

{

if (*iter == N)

ivec.erase(iter);

}

我的理解:

(1) 容器类对象传参的时候最好用引用。

(2) erase操作之后会导致迭代器失效。

(3) 可能会导致删除不彻底,因为erase之后iter指向了下一个元素,而for循环中又++iter,这样会跳过一个元素,而且可能跳到vector对象之外的地方,最后导致出错。(我只考虑到会跳过一个元素,没有想到如果最后一个被删元素刚好是vector对象的最后一个元素,那么会跳出对象之外的地方。其实这个问题几个星期前在csdn上回答过,不过我通过上机得出的答案一下子就被我抛到脑后)

4、智能指针。

大概意思是:引用计数型的智能指针存在循环引用的缺陷,需要一个“弱引用”智能指针。大概是要求实现这两个智能指针。

我的理解:

很遗憾。我想题目是想答题者实现boost库里的shared_ptr和weak_ptr,我知道这两个指针的存在,但问题是我没考虑过它们是怎么实现的。主要是弱指针不知道该怎么做。引用计数型的智能指针凑合着写了出来,不过写得超乱,而且构造函数有错误。

一方面是很少用手写代码,一方面是几乎没有自己亲手写过智能指针,虽然分析学习了不少简单例子。虽然以前看书的时候看到“循环引用”这回事,只是当时不知道是什么,现在依然不知道,忘了问why。

算法考察的内容:

1、有一个N位二进制数,找出其中没有相邻11的数的个数。例如:N=2时,00,01,10,11,其中没有相邻11的数的个数有3个。

我的理解:

求相邻11的数的个数。

N位数跟N-1位数有关系。如果一个数在N-1中是“相邻11”,那么在这个数前面添加上0或1它还是一个相邻11的数。这里边就至少有两倍的关系了。另外,如果N-1中有数是这样的:“10”,那么在N位数中,在它前面添加上1这个数就是“相邻11”了。那么N-1位数中有多少个“10”这样的数字呢?对于N-1位的数来说, 如果头一两位是“10”,后边就还有N-3位的二进制位,所以以“10”开头的数有2的(N-3)次方个。

列出如下:N就是在N-1的数前面加上1、0。

N=2

00 01 10 11

N=3

000 001 010 011

100 101 110 111

N=4

0000 0001 0010 0011

1000 1001 1010 1011

0100 0101 0110 0111

1100 1101 1110 1111

感觉这就是数字的组合的问题。另外,上边是我个人的理解,也不一定是对的。

(结果证明,我真的错了,唯一一道会写的算法题,泪奔……)

修正:非相邻11的数字的个数正如楼下所说是斐波那契序列。因为我一开始就没往“非相邻11”方向想,而是往“相邻11”方向考虑,所以没发觉另一个方向其实有捷径可通…….但我还是想把这条路走完,虽然走了弯路。

我的分析出差错的原因在这里:“所以以“10”开头的数有2的(N-3)次方个”,这句话没错,但是没考虑到这(N-3)个位里也有可能存在“相邻11”,导致了重复计算“相邻11”的数。必须减去才行。计算“相邻11”个数的函数如下:

int fun(int n)

{

[size=9pt]if (n return 0;

if (n == 2)

return 1;

if (n == 3)

return 3;

[size=9pt]return ((fun(n-1))*2 + (2}

以上方式实现比较垃圾。比较好的方式有(第二种更好一些,但第一种的思路很值得学习):

(1)

//实现:动态规划,递推算法

/*参考:

用动态规划的东西 “[j]保存i位长的二进制位,最后一位是j” 的时候的个数,那么

[0] = [i - 1][1] + [i - 1][0];

[1] = [i - 1][0];

*/

//20xx.9.19

#include

using namespace std;

int fun(int N);

int main

{

int N;

[size=9pt]cout cin >>N;

[size=9pt]cout return 0;

}

/////////////////////////////////////////////////////////////////////

int fun(int N)

{

//申请空间。时间换空间

int p = new int*[N];

for (int i = 0; i != N; ++i)

{

p = new int[2];

}

//算法核心。递推。

p[0][0] = 1;

p[0][1] = 1;

[size=9pt]for (int i = 1; i {

//求i个二进制位以0结尾的非11相邻数:i-1个二进制位的非“11相邻”数,后边填加上一个0,必定也是非11相邻数

p[0] = p[i-1][0] + p[i-1][1];

//求i个二进制位以1结尾的非11相邻数:i-1个二进制位的非“11相邻”数必须以0结尾.

p[1] = p[i-1][0];

}

//保存返回值

int ret = p[N-1][0] + p[N-1][1];

//释放空间

for (int i = 0; i != N; ++i)

{

p;

}

p;

return ret;

}

(2)

//实现:斐波那契数列实现

/*参考:

通过列出非相邻11的数的个数,可以发现其实这个就是斐波那契数列。2,3,5,8,13,……

*/

//20xx.9.19

#include

using namespace std;

int fun(int n);

int main

{

int n;

[size=9pt]cout cin >>n;

[size=9pt]cout return 0;

}

int fun(int n)

{

if (n == 1)

return 2;

if (n == 2)

return 3;

int f1 = 2;

int f2 = 3;

int f3;

[size=9pt]for (int i = 2; i {

f3 = f1 + f2;

f1 = f2;

f2 = f3;

}

return f3;

}

2、对一个服务器日志的分析。

日志里边记录了IP登录信息,信息内容有时间和IP地址。现在要统计

(1) 每一天登录次数最多的1000个IP。以登录次数为序,从高到低排序

(2) 每一周登录次数最多的1000个IP。以登录次数为序,从高到低排序

篇6:关于软件测试笔试题目

1、软件测试的目的是尽可能多的找出软件的缺陷。(Y)

2、Beta 测试是验收测试的一种。(Y)

3、验收测试是由最终用户来实施的。(N)α测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。经过α测试调整的软件产品称为β版本。紧随其后的β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对β版本进行改错和完善。 一般包括功能度、安全可靠性、易用性、可扩充性、兼容性、效率、资源占用率、用户文档八个方面。

4、项目立项前测试人员不需要提交任何工件。(Y)

5、单元测试能发现约80%的软件缺陷。(Y)

6、代码评审是检查源代码是否达到模块设计的要求。(N) 指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。

7、自底向上集成需要测试员编写驱动程序。(Y)

8、负载测试是验证要检验的系统的能力最高能达到什么程度。(N)负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行

9、测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)

10、代码评审员一般由测试员担任。(N)由若干程序员和测试员组成审查小组

11、我们可以人为的使得软件不存在配置问题。(N)

12、集成测试计划在需求分析阶段末提交。(N)

二、选折

1、软件验收测试的合格通过准则是:(ABCD)

A、 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

B、 所有测试项没有残余一级、二级和三级错误。

C、 立项审批表、需求分析文档、设计文档和编码实现一致。

D、 验收测试工件齐全。

2、软件测试计划评审会需要哪些人员参加?(ABCD)

A、项目经理B、SQA 负责人C、配置负责人D、测试组

3、下列关于alpha 测试的描述中正确的是:(AD)

A、alpha 测试需要用户代表参加B、alpha 测试不需要用户代表参加

C、alpha 测试是系统测试的一种D、alpha 测试是验收测试的一种

4、测试设计员的职责有:(BC)

A、制定测试计划B、设计测试用例C、设计测试过程、脚本D、评估测试活动

5、软件实施活动的进入准则是:(ABC)

A、需求工件已经被基线化B、详细设计工件已经被基线化C、构架工件已经被基线化

D、项目阶段成果已经被基线化

三、添空

1、软件验收测试包括: 正式验收测试,alpha测试,beta测试。

2、系统测试的策略有: 功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

3、设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

4、对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

四、简答

1、区别阶段评审的与同行评审

① 同行评审目的:发现小规模工作产品的错误,只要是找错误;

② 同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

③ 同行评审内容:内容小一般文档 < 40页, 代码 < 500行

④ 同行评审时间:一小部分工作产品完成

⑤ 阶段评审目的:评审模块阶段作品的正确性 可行性 及完整性

⑥ 阶段评审人数:5人左右评审人必须是专家 具有系统评审资格

⑦ 阶段评审内容: 内容多,主要看重点

⑧ 阶段评审时间: 通常是设置在关键路径的时间点上!

2、什么是软件测试

为了发现程序中的错误而执行程序的过程

3、简述集成测试的过程

系统集成测试主要包括以下过程:

1、构建的确认过程。

2、 补丁的确认过程。

3、 系统集成测试测试组提交过程。

4、 测试用例设计过程。

5、 测试代码编写过程。

6、 Bug的报告过程。

7、 每周/每两周的构建过程。

8、 点对点的测试过程。

9、 组内培训过程。

4、怎么做好文档测试

① 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。

② 检查文档的编写是否满足文档编写的目的

③ 内容是否齐全,正确

④ 内容是否完善

⑤ 标记是否正确

5、白盒测试有几种方法

总体上分为静态方法和动态方法两大类。

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

6、系统测试计划是否需要同行审批,为什么

需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

7、Alpha测试与beta的区别

Alpha测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

Beta测试 当开发和测试根本完成时所做的测试,最终的.错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

8、比较负载测试,容量测试和强度测试的区别

负载测试:

在一定的工作负荷下,系统的负荷及响应时间。

强度测试:

在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。 容量测试:容量测试目的是通过测试预先分析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据 的,并且它的目的是显示系统可以处理目标内确定的数据容量。

9、测试结束的标准是什么?

用例全部测试。覆盖率达到标准。缺陷率达到标准。其他指标达到质量标准

10、描述软件测试活动的生命周期?

测试周期分为计划、设计、实现、执行、总结。

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 设计:完成测试方案,从技术层面上对测试进行规划;

实现:进行测试用例和测试规程设计;

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

上一篇:我得到了赞扬作文下一篇:转发省2010流动人口专项活动通知(下发版)