测试笔试题

做了几套题,个别题竟然错了。汗颜。摘录下:

1.有关字节换算的

字节 byte:8个二进制位为一个字节(B),最常用的单位,字节也就是B。

1KB (Kilobyte 千字节)=1024B

1MB (Megabyte 兆字节 简称“兆”)=1024KBA

1GB (Gigabyte 吉字节 又称“千兆百”)=1024MB

测试笔试题_第1张图片

扩展资料:版

字节和字的换算关系:

一个字等于多少个字节,与系统硬件(总线、cpu命令字位数等)有关,不应该毫无前提地说一个字等于多少位。

正确的说法:

①:1字节(byte) = 8位(bit)

②:在16位的系权统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)

在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)

在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)

2.软件的6大质量特性:

ISO9126质量模型:软件质量模型的6大特性和27个子特性。

ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成,建议大家深入理解各特性、子特性的含义和区别,在测试工作需要从这6个特性和27个子特性去测试、评价一个软件。这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这几个方面着手进行测评。

测试笔试题_第2张图片

 

2qw一、功能性
1、适合性:提供了相应的功能
2、准确性:正确(用户需要的)
3、互操作性:产品与产品之间交互数据的能力
4、保密安全性:允许经过授权的用户和系统能够正常的访问相应的数据和信息,禁止未授权的用户访问.......
5、功能性的依从性:国际/国家/行业/企业 标准规范一致性
二、可靠性:产品在规定的条件下,在规定的时间内完成规定功能的能力
1、成熟性:防止内部错误导致软件失效的能力
2、容错性:软件出现故障,自我处理能力
3、易恢复性:失效情况下的恢复能力
4、可靠性的依从性
三、易用性:在指定使用条件下,产品被理解、 学习、使用和吸引用户的能力
1、易理解性
2、易学性
3、易操作性
4、吸引性
5、易用性的依从性
四、效率性:在规定台条件下,相对于所用资源的数量,软件产品可提供适当性能的能力
1、时间特性:平均事务响应时间,吞吐率,TPS(每秒事务数)
2、资源利用性:CPU 内存 磁盘 IO 网络带宽 队列 共享内存
3、效率依从性
五、软件维护性:"四规", 在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力
1、易分析性:分析定位问题的难易程度
2、易改变性:软件产品使指定的修改可以被实现的能力
3、稳定性:防止意外修改导致程序失效
4、易 测试性:使已修改软件能被确认的能力
5、维护性的依从性
六、软件可移植性:从一种环境迁移到另一种环境的能力
1、适应性:适应不同平台
2、易安装性:被安装的能力
3、共存性
4、易替换性
5、可移植性的依从性

3.Alpha测试与beta的区别

alpha测试版,有点相当于内部测试,一般开发人员在场   ,是由用户做测试,但开发人员在场,一般是请用户到开发现场去测试 
beta测试版,完全交给用户,由用户做测试,返回测试报告,相当于发行前的一个版本   

Alpha测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。 
Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

1、测试时间不同:

Beta测试是百软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段。

alpha测试简称“α测试”,可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度度之后再开始。

2、测试的目的不同:

α测试的目的是评价软件产品的FLURPS(即功能、局域化、知可用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试即为非正式验收道测试。

Beta测试是一种验收测试,通过了验收测试,产品就会进入发布阶段。

3、测试人员及场所不同:

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由程序版员或测试员完成。α测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。

Beta测试由软件的最终用户们在一个或多个客户场所进行。开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。

4.软件缺陷等级划分

A类—严重错误,包括以下各种错误: 1.由于程序所引起的死机,非法退出 2.死循环 3.数据库发生死锁 4.因错误操作导致的程序中断 5.功能错误 6.与数据库连接错误 7.数据通讯错误

B类—较严重错误,包括以下各种错误: 1.程序错误 2.程序接口错误 3.数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误: 1.操作界面错误(包括数据窗口内列名定义、含义是否一致) 2.打印内容、格式错误 3.简单的输入限制未放在前台进行控制 4.删除操作未给出提示 5.数据库表中有过多的空字段

D类—较小错误,包括以下各种错误: 1.界面不规范 2.辅助说明描述不清楚 3.输入输出不规范 4.长操作未给用户提示 5.提示窗口文字未采用行业术语 6.可输入区域和只读区域没有明显的区分标志

E类—测试建议

5.请描述TCP/IP建立连接的过程

采用三次握手,建立一个连接。

第一次握手,客户端发送syn包(syn=j)到服务端,并进入SYN_SEND状态,等待服务器确认;

第二次握手,服务端收到syn包,必须确认客户的SYN(ack=j+1),同时也发送一个syn包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手,客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入EATABLISHED状态,完成三次握手 

6.测试分为那几个阶段?并对每个阶段详细说明

按照开发阶段划分,软件测试可分为单元测试、集成测试、系统测试和验收测试

集成测试:针对每个单元的测试,以确保每个模块能正常工作为目标

集成测试:对已经测试过的模块进行组装,进行集成测试。目的就是在于检验与软件设计相关的程序结构问题。

系统测试:检验软件产品能够与系统的其他部分(比如:硬件、数据库及操作人员)协调工作。

验收测试:检验软件产品质量的最后一道工序,主要突出用户的作用,同时软件开发人员也有一定程度的参与。

7.什么是软件测试?软件测试的目的与原则

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试的目的:

测试是程序的执行过程,目的在于发现错误
一个成功的测试用例在于发现至今未发现的错误
一个成功的测试是发现了至今未发现的错误的测试
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
确保产品满足性能和效率的要求
确保产品是健壮的和适应用户环境的

        1)软件测试是为了发现错误而执行程序的过程。

        2)测试是为了证明程序有错,而不是证明程序无错。(发现错误不是唯一目的)

        3)一个好的测试用例在于它发现至今未发现的错误。

        4)一个成功的测试是发现了至今未发现的错误的测试。

注意:

        1、测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。

        2、没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。例如Bev Littlewood发现一个经过测试而正常运行了n个小时的系统有继续正常运行n个小时的概率。

 

软件测试的原则:

测试用例中一个必须部分是对预期输出或接过进行定义
程序员应避免测试自己编写的程序
编写软件的组织不应当测试自己编写的软件
应当彻底检查每个测试的执行结果
测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
应避免测试用例用后即弃,除非软件本身就是个一次性的软件
计划测试工作时不应默许假定不会发现错误
程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比
软件测试是一项极富创造性,极具智力的挑战性的工作

 

       1)应当把“尽早地不断地进行软件测试“作为软件开发者的座右铭。

       2)测试用例应由测试数据和与之对应的预期输出结果这两部分组成。

       3)程序员应避免检查自己的程序。

       4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。

       5)充分注意测试中的群集现象。

       6)严格执行测试计划,排除测试的随意性。

       7)应当对每一个测试结果做全面的检查。

       8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

一、Testing shows presence of defects
       测试显示软件存在缺陷
       测试只能证明软件中存在缺陷,但并不能证明软件中不存在缺陷。软件测试是为了降低存在缺陷的可能性,即便是没有找到缺陷,也不能证明软件是完美的。
二、Exhaustive testing is impossible
       穷尽测试是不可能的
       现在软件的规模越来越大,复杂度越来越高,想做到完全性的测试是不可能的。在测试阶段,测试人员可以根据风险和优先级来进行集中和高强度的测试,从而保证软件的质量。
三、Testing early
       测试尽早介入
       为什么测试要尽早介入呢,简单的说就是保证软件质量,降低风险和成本。测试人员一般在需求阶段就开始介入,使缺陷在需求或设计阶段就被发现,缺陷发现越早,修复的成本就越小。
四、Defect clustering
       缺陷集群性(2/8原则)
       缺陷集群性表明小部分模块包含大部分的缺陷。软件测试中存在Pareto原则:80%的缺陷发现在20%的模块中。
       一个功能模块发现的缺陷越高,那存在的未被发现的缺陷也越高,故发现的缺陷与未发现的缺陷成正比。
五、Pesticide Paradox
      杀虫剂悖论
      反复使用相同的杀虫剂会导致害虫对杀虫剂产生免疫而无法杀死害虫。软件测试也一样。如果一直使用相同的测试方法或手段,可能无法发现新的bug。
      为了解决这个问题,测试用例应当定期修订和评审,增加新的或不同的测试用例帮助发现更多的缺陷。
      测试人员不能一直依赖于现有的测试技术,而要不断的提升测试方法以提高测试效率。
六、Testing is context dependent
      测试活动依赖于测试内容
      根据业务的不同,软件测试内部也分为不同的行业,比如游戏行业、电商行业、金融行业。不同的行业,测试活动的开展都有所不同,比如测试技术、测试工具的选择,测试流程都不尽相同,所以软件测试的活动开展依赖于所测试的内容。
七、Absence of error - fallacy
       没有错误是好是谬论
      有可能99%没有bug的软件也是不能使用的。如果对错误的需求进行了彻底的测试,这种情况就发生了。软件测试不仅是找出缺陷,同时也需要确认软件是否满足需求。如果开发出来的产品不满足用户的需求,即便找到和修复了缺陷也作用不大。

 

8.系统测试的策略有哪些?列出任意10种即可

功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试

9.8位ASCII字符编码的最大值

8位ASCII字符编码的最大值是255。 计算机中存储数据用的是二进制。 8位二进制最高位位权为2^7,最低位位权为2^0(也就是1)。 最大数为(11111111)2 = (100000000 - 1)2 = (2^8 - 1)10 = 255.

10.为什么说单元测试能发现约80%的软件缺陷

这是软件工程长期的历史数据统计和测试zd经验总结得来的,没听说过有典故或理由。当然要发现这80%的缺陷也版是要依靠设计出良好的测试用例,另外顺便提下,软件测试行业有个二八原则,就是软件80%的缺陷权存在与20%的代码中

因为缺陷放大理论,在单元测试阶段发现的bug会在系统测试阶段被放大,放大倍数完全符合80/20理论

11.SQL语言的分类

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

2 .数据操纵语言DML
数据操纵语言DML主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE

3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 视图 索引 同义词 簇

DDL操作是隐性提交的!不能rollback 

4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT:授权。


2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
回滚---ROLLBACK
回滚命令使数据库状态回到上次最后提交的状态。其格式为:
SQL>ROLLBACK;


3) COMMIT [WORK]:提交。


    在数据库的插入、删除和修改操作时,只有当事务在提交到数据
库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看
到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分
别说明这三种类型。


(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:
SQL>COMMIT;


(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。


(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
系统将自动进行提交,这就是自动提交。其格式为:
SQL>SET AUTOCOMMIT ON;

12.其它

单元测试一般以白盒为主,测试的依据是模块功能规格说明

为保证测试活动的可控性,必须在软件测试过程中进行软件测试配置管理,一般来说,软件测试配置管理中最基本的活动包括配置项标识、配置项控制、配置状态报告、配置审计

13.怎样进行文档测试

  非代码的文档测试主要检查文档的正确性、完备性和可理解性。软件驱动的文档还得像程序一样运行测试。

  正确性是指不要把软件的功能和操作写错,也不允许文档内容前后矛盾。

  完备性是指文档不可以“虎头蛇尾”,更不许漏掉关键内容。文档中很多内容对开发者可能是“显然”的,但对用户而言不见得都是“显然”的。

  文档要让大众用户看得懂,能理解。术语、缩写用户是否理解?内容和主题是否一致?

  很多程序员能编写出好程序,却写不出清晰的文档。与文档作者密切合作,对文档仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例是进行文档测试的基本方法。

你可能感兴趣的:(测试面试)