东软软件测试工程师20套笔试题及参考答案

合集下载

东软笔试题

东软笔试题

东软笔试题1. 引言本文档是关于东软笔试题的解答和分析。

东软是一家知名的软件开发和咨询公司,笔试题目涉及多个领域的知识,包括编程、数据结构、算法等内容。

本文将逐题进行解答和分析,希望能给读者提供一些参考和启发。

2. 题目一2.1 题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。

2.2 解答思路这是一道经典的数组遍历和查找题目。

我们可以使用两层循环穷举所有可能的组合,判断其和是否等于目标值。

def twoSum(nums, target):n = len(nums)for i in range(n-1):for j in range(i+1, n):if nums[i] + nums[j] == target:return [i, j]该算法的时间复杂度为O(n^2),空间复杂度为O(1)。

2.3 测试样例下面是一些测试样例:Input: nums = [2, 7, 11, 15], target = 9 Output: [0, 1]Explanation: nums[0] + nums[1] = 2 + 7 = 9 Input: nums = [3, 2, 4], target = 6Output: [1, 2]Input: nums = [3, 3], target = 6Output: [0, 1]3. 题目二3.1 题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

3.2 解答思路这是一道字符串处理题目。

我们可以使用滑动窗口的思想来解决该问题。

我们维护一个窗口,窗口内的字符都是不重复的。

当遇到重复字符时,我们移动左边界,直到窗口中没有重复字符为止。

def lengthOfLongestSubstring(s):n = len(s)if n <=1:return nleft, right =0, 0max_len =0char_set = set()while right < n:if s[right] not in char_set:char_set.add(s[right])max_len = max(max_len, right - left + 1)right +=1else:char_set.remove(s[left])left +=1return max_len该算法的时间复杂度为O(n),空间复杂度为O(m),其中n 为字符串的长度,m为字符集的大小。

软件测试工程师笔试题(含答案)

软件测试工程师笔试题(含答案)
9.一个缺陷测试报告的组成 缺陷的标题�缺陷的基本信息�复现缺陷的操作步骤�缺陷的实际结果描述�期望的正确结 果描述�注释文字和截取的缺陷图象。 缺陷的标题� 缺陷的基本信息� 测试的软件和硬件环境� 测试的软件版本� 缺陷的类型� 缺陷的严重程度� 缺陷的处理优先级。 复现缺陷的操作步骤� 缺陷的实际结果描述� 期望的正确结果描述� 注释文字和截取的缺陷图像。
有弹簧的圆珠笔� 功能测试� 圆珠笔按下是否能正常写字�写字太重会不回缩回去�继续 按会不会弹回去 性能测试�圆珠心弹出弹回的快慢 负载测试�一直按�弹簧能接受多少次的升缩 兼容性测试�换其他的笔芯能不能行 强度测试�用力过度会怎样 可恢复性测试�如果弹簧压久了�是否可恢复等等 GUI 测试�笔的外观�拿笔的舒适性 安全性�考虑对笔芯的保护�是否对使用者造成危害等等
5.设计用例的方法、依据有那些� 白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\ 数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构吧,恩,这 个真不确定
黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析 方法\错误推测方法\ 因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求 规格说明书,详细设计说明书
查看杯子外观功能度用水杯装水看漏不漏水能不能被喝到安全性杯子有没有毒或细菌可靠性杯子从不同高度落下的损坏程度可移植性杯子再不同的地方温度等环境下是否都可以正常使用软件开发网兼容性杯子是否能够容纳果汁白水酒精汽油等易用性杯子是否烫手是否有防滑措施是否方便饮用用户文档使用手册是否对杯子的用法限制使用条件等有详细描述疲劳测试将杯子盛上水案例一放24小时检查泄漏时间和情况盛上汽油案例二放24小时检查泄漏时间和情况等压力测试用根针并在针上面不断加重量看压强多大时会穿透强度测试

东软笔试题

东软笔试题

东软笔试题东软笔试题1、下列变量定义错误的是Dint a;double b=4.5;boolean b=true;float f=9.8; (9.8f)2、6+5%3+2的值是 D 3%5=3219103、对于一个三位的正整数n,取出它的十位数字k(k为整型)的表示式是k = n / 10 % 10k = ( n - n / 100 * 100 )k = n % 10k = n / 104、下列语句序列执行后,k 的值是 Dint x=6, y=10, k=5;switch( x % y ) (=6)(long类型不行) {case 0: k=x*y;case 6: k=x/y;case 12: k=x-y;default: k=x*y-x; (default 位置能够改变) case后面没有break,因此执行最后一句}6055、下列语句序列执行后,i的值是:int i = 10;do { i/=2; } while( i- > 1 ); (减去1) 152-16、在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是:(同一个方法中参数不同,返回值类型能够不同也能够相同)public getSort(float x) 没有返回类型一定是构造函数不能重载int getSort(int y)(参数一样不是重载)double getSort(int x,int y) (参数不一样是重载)void get(int x, int y)7、下列哪个是合法的Java标识符:(两个答案) B CTree&GlassesFirstJavaApplet_$theLastOne273.58、设 a = 8,则表示式 a >>> 2 的值是:B(无符号右移动)左移是乘右是除12349、下面的程序名为Student.javapublic class Student{private String name;public Student(String s_name) // 1name = s_name; //2}public static void main(String args[ ]){Student s = new Student(); //3 }}使用如下指令编译:javac Student.java将会得到什么结果?将会顺利经过编译,并将产生一个Student.class的类文件编译时在//3处出错编译时在//2处出错编译时在//1处出错10、下面选项中能把字符串转换成float类型的是?: Bfloat value = new Float(str); 创立一个对象float value = Float.parseFloat(str);float value = Float.floatValue(str);float value = (new Float()).parseFlo at(str);11、下边程序运行的结果是?实例化子类对象要看父类1.class Base {2. Base() { System.out.print("Base "); }}public class Alpha extends Base { public static void main( String[] arg s ) {new Alpha();new Base();}}BaseBaseBase程序编译失败.程序运行但没有任何输出12、下面程序运行的结果是? A 值传递1. public class X {2. private static int a;3. public static void main(String [ ] args) {4. modify(a);5. System.out.println(a);6. }7. public static void modify(int a) {8. a++;9. }}1程序编译失败程序抛出异常13、下面程序运行的结果是?1.String s = "Hello" + 9 + 1;+字符连接(9+1+"hello"=10hello(string类型)) 2.System.out.println(s);Hello10Hello91Hello10.0程序编译失败14、下列说法正确的是? CA.一个子类能够有多个父类,一个父类也能够有多个子类B.一个子类能够有多个父类,但一个父类只能够有一个子类C.一个子类能够有一个父类,但一个父类能够有多个子类D.上述说法都不对15、下面程序运行的结果是?1. abstract class AbstrctIt {2. abstract float getFloat ();4. public class AbstractTest extends AbstractIt {5. private float f1=1.0f;6. private float getFloat () {retur n f1;} 权限只能扩大不能缩小7. }编译成功在第6行产生一个运行时异常在第6行产生一个编译错误在第2行产生一个编译错误16、下面的程序输出的结果是:Bpublic class A implements B {public static void main(String args[ ]){int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;接口(抽象方法和静态常量的结合)里的静态常量 public static final }i=0i=10程序有编译错误i=true17、方法methodA返回类型是:1. public class returnIt{2. returnType methodA(byte x, d ouble y) {3. return (short) x/y * 2;4. }intbytelongdouble18、下面的程序输出的结果是:A1. public class IfTest {2. public static void main(string[] args) {3. int x = 3;4. int y = 1;5. if (x = y) =:赋值运算符(==)比较运算符6. System.out.println("Not e qual");7. else8. System.out.println("Equal ");9. }10.}EqualNot Equal编译失败程序没有任何输出结果19、在下面程序中,变量i能够使用的数据类型是:(两个答案) A B1. switch (i) {2. default:3. System.out.println("Hello");4. }charbytefloat 不行double 不行object20、应用程序的main方法中有以下语句,则输出的结果是:A int[] x={122,33,55,678,-987};int y=x[0];for(int i=1;iif(x[i]>y)y =x[i];}System.out.println(y);678122-9873321、程序输出的结果是?C1. public class X {2. public static void main(String [ ] args) {3. try {4. badMethod();5. System.out.print("A");6. }7. catch (Exception ex) {8. System.out.print("B");9. }10. finally {11. System.out.print("C");12. }13. System.out.print("D");14. }15. public static void badMethod() {}17. }BDACDABCD22、程序输出的结果是?BSystem.out.println(4 3);: 二进制安位与15723、关于下述程序哪个是正确的构造器重载(两个正确)public class ConstOver {public ConstOver (int x, int y, int z) {}}ConstOver ( ) { }protected int ConstOver ( ) { } 构造函数没有返回类型private ConstOver (int z, int y, byte x) { }public Object ConstOver (int x, int y , int z) { }public void ConstOver (byte x, byte y, byte z) { }24、下述程序编译运行后在//1和//2处分别打印出什么值?public class Test9静态变量和静态块只会初始化一次{static int i = 1;static{i++;}public Test9(){10. i++;12. public static void main(String[] args)13. {14. Test9 t1 = new Test9();15. System.out.println(t1.i); //116. Test9 t2 = new Test9();17. System.out.println(t2.i); //218. }19. }2和23和33和44和325、下列答案正确的是:两个答案 A Bint[] arr = new int[10];arr[0] 是nullarr[10]是0arr[9] 是0arr[0] 是026、编译器能够为类A分配一个默认构造器的是?(两个答案) A Dclass A {}class A {public A() { }}class A {public A(int x) { }}class Z { }class A extends Z {void A() { }}27、下面程序运行的结果是:1.public class Foo {2.public int i = 3;3. public static void main(String a rgs[]) {4. Object o = new Foo();5. Foo foo = (Foo)o;6. System.out.println("i = " + foo.i);7. }8.}i=3i = 0.程序编译错误程序运行时抛出异常28、下面程序运行的结果是:1. class Exc0 extends Exception { }2. class Exc1 extends Exc0 { }3. public class Test {4. public static void main(String ar gs[]) {5. try {6. throw new Exc1();7. } catch (Exc0 e0) {8. System.out.println("Ex0 caug ht");9. } catch (Exception e) {10. System.out.println("excepti on caught");11. }12. }13. }Ex0 caughtexception caught编译失败,错误在第2行编译失败,错误在第6行29、下面表示式计算的结果和返回值类型分别是?(两个答案) B DMath.ceil(0.1 + Math.floor(Math.ran dom())); 0-1之间的小数0.01.0floatdouble一个随机数30、下面程序运行的结果是:1.public interface Test {2. int frood = 42;3.}4.class TestImpl implements Test {5. private static int frood;6. public static void main(String[] args) {7. System.out.println(++frood);8. }9.}14243二、编程题注意:书写清晰,看不清楚不给分,注意字体大小,写不下能够写在背面,标清题号。

(完整版)软件测试笔试题及答案

(完整版)软件测试笔试题及答案

一、选择题1.软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性(C)是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。

A.成熟性; B.易恢复性;C.容错性; D.可靠性依从性2.关于软件质量的描述,正确的是__B____A.软件质量是指软件满足规定用户需求的能力;B.软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性;C.软件质量保证过程就是软件测试过程;D.以上描述都不对3.____B__方法根据输出对输入的依赖关系设计测试用例。

A.路径测试B.等价类 C.因果图D.边界值4.下列关于软件验收测试的合格通过准则错误的是:___C___A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求;B.所有测试项没有残余一级、二级和三级错误;C.立项审批表、需求分析文档、设计文档和编码实现不一致;D.验收测试工件齐全5.测试设计员的职责有:___B___①制定测试计划②设计测试用例③设计测试过程、脚本④评估测试活动A.①④B.②③ C.①③D.以上全是6.对于业务流清晰的系统可以利用D场景法贯穿整个测试用例设计过程广在用例中综合使用各种测试方法,对于参数配置类的软件,要用C正交试验法选择较少的组合方式达到最佳效果,如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用B因果图法和判定表驱动法A.等价类划分B.因果图法C.正交试验法D.场景法、7.下列软件实施活动的进入准则描述错误的是:__D____A.需求工件已经被基线化B.详细设计工件已经被基线化C.构架工件已经被基线化D.项目阶段成果已经被基线化8.正式的技术评审FTR(Formal Technical Review)是软件工程师组织的软件质量保证活动,下面关于FTR指导原则中错误的是__C____A.评审产品,而不是评审生产者的能力B.要有严格的评审计划,并遵守日程安排C.对评审中出现的问题要充分讨论,以求彻底解决D.限制参与者人数,并要求评审会之前做好准备9.下列关于文档测试描述错误的是__A____A.文档测试主要检查文档的正确性、完备性、可理解性、可操作性和易维护性;B.正确性是指不要把软件的功能和操作写错,也不允许文档内容前后矛盾;C.完备性是指文档不可以“虎头蛇尾”,更不许漏掉关键内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东软软件测试工程师20套笔试题及参考
答案
问题:东软软件测试工程师20套笔试题及参考答案-测试基础(1)回答:
试述软件的概念和特点?软件复用的含义?构件包括哪些?
瀑布模型和螺旋模型的主要区别是什么?
软件生存周期及其模型是什么?
什么是软件测试?软件测试的目的与原则
净室软件工程的策略是什么?
软件配置管理的作用?软件配置包括什么?
什么是软件质量?软件包是什么?
目前主要的测试用例设计方法是什么?
软件的安全性应从哪几个方面去测试?
参考答案:答案如下:
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、文档的完整集合。

软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。

软件复用是提高软件生产力和质量的一种重要技术。

早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计
决定、体系结构、需求、设计、代码和文档等一切有关方面。

可以被复用的软件成分一般称作可复用构件
答案如下:
参照TP书上第六章45/46页的讲解,参考一下书上的说法进行对比即可。

考虑弹性、风险、成本,等几个方面。

答案如下:
软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。

在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。

这样的一个过程,称为生命周期模型(Life Cycle Model)。

答案如下:
使用人工或自动手段,来运行或测试某个系统的过程。

其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

软件测试的目的:
测试是程序的执行过程,目的在于发现错误
一个成功的测试用例在于发现至今未发现的错误
一个成功的测试是发现了至今未发现的错误的测试
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。

确保产品满足性能和效率的要求
确保产品是健壮的和适应用户环境的
软件测试的原则:
教材的说法:软件测试应尽早执行,并贯穿于整个软件生命周期软件测试应追溯需求
测试应由第三方来构造
穷举测试是不可能的,要遵循Good-enough原则
必须确定预期输出(或结果)
必须彻底检查每个测试结果
充分注意测试中的群集现象
缺陷的二八定理
严格执行测试计划,排除测试的随意性
注意合法合理的输入,也要注意非法的非预期的输入
检查程序是否是否做了不该做的
测试应从小规模开始,逐步转向大规模
反复使用同样的测试会使软件具有抵抗力
关注缺陷的修复
另一种说法:应当把尽早和不断地测试作为开发者的座右铭。

程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。

设计测试用例时,应该考虑到合法的输入和不合法的输入,以及
各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。

一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。

对测试错误结果一定要有一个确认的过程。

一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。

制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。

回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。

妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。

答案如下:
增量计划。

开发一个采用增量策略的项目计划,建立每个增量的功能、它的项目大小、以及净室开发进度表。

必须特别小心以保证通过认证的增量将被定时集成。

需求收集。

使用类似于在第11 章引入的技术,为每个增量开发一个客户级需求的更详细的描述。

盒结构规约。

使用一个运用盒结构的规约方法[HEV93]来描述功能规约。

遵从操作分析原则,盒结构在每一个精化级别上分离和分开行为、数据及过程的创造性定义。

形式化设计。

使用盒结构方法,净室设计是规约的自然的无缝的扩展。

虽然,在两个活动间可进行清楚的区分,但是,规约(称为黑盒)是被递进地求精(在一个增量内)以成为类似于体系结构的和过程的设计(分别称为状态盒和清晰盒)。

正确性验证。

净室小组对设计及代码进行一系列严格的正确性验证活动。

验证从最高层次的盒结构(规约)开始,然后移向设计细节和代码。

正确性验证的第一层次通过应用一组正确性问题[LIN88]来进行,如果这没有证明规约是正确的,则使用更形式化的(数过学的)验证方法。

代码生成、检查和验证。

以某种专门语言表示的盒结构规约被转换为合适的程序设计语言。

然后,使用标准的走查或检查技术(第8 章)来保证代码和盒结构的语义相符性,以及代码的语法正确性。

然后,对源代码进行正确性验证。

统计性测试计划。

分析软件的项目级使用情况,计划和设计一组执行用途的概率分布的测试用例(25.4 节)。

如图25-1 所示,这个净室活动是和规约、验证及代码生成并行进行的。

统计性使用测试。

记住,对计算机软件进行彻底测试是不可能的,因此,总需要设计有限数量的测试用例。

统计性使用技术[POO88]执行一系列由特定对象的所有用户的所有可能的程序执行的统计样本(上面提到的概率分布)所导出的测试。

认证。

一旦完成验证、检查和使用测试(并且所有错误被修正),则开始进行增量集成前的认证工作。

答案如下:
软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。

一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。

软件配置包括如下内容:
配置项识别
工作空间管理
版本控制
变更控制
状态报告
配置审计
答案如下:
简单的说:软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

比较长的说法:
现代质量管理认为,质量是客户要求或者期望的有关产品或者服务的一组特性,落实到软件上,这些特性可以是软件的功能、性能和安全性等等。

这些特性决定了软件产品保证客户满意的能力,并且,这些特性应该是可以度量的。

我们还可以从另一个角度,即软件产品是如何生产出来的,来间
接的推断软件质量。

我们称之为软件的流程质量,以有别于前面所说的软件产品质量。

所谓流程,我们可以将其理解为一个活动序列和与此相关的输入、输出、约束条件、实现方法、辅助工具等等因素共同组成的系统。

ISO9001 和SW-CMM 都主要是从流程角度来探讨软件质量和质量改进的。

当然,我们还能从其它角度,比如软件的生产者-人的素质,来诠释软件质量,但不管怎样,软件的产品质量是最终的检验标准,而最终的检验者就是客户。

从这个意义上说,软件质量就是客户满意度。

软件包(Software Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。

可分为应用软件包和系统软件包两大类。

应用软件包与特定的应用领域有关,又可分为通用包及专用包两类。

通用软件包根据社会的一些共同需求开发,专用软件包则是生产者根据用户的具体需求定制的,可以为适合其特殊需要进行修改或变更。

答案如下:
白盒测试:
逻辑覆盖
循环覆盖
基本路径覆盖
黑盒测试:
边界值分析法
等价类划分
错误猜测法
因果图法
状态图法
测试大纲法
随机测试
场景法
答案如下:
软件安全性测试包括程序、数据库安全性测试。

根据系统安全指标不同测试策略也不同。

用户认证安全的测试要考虑问题:明确区分系统中不同用户权限
系统中会不会出现用户冲突
系统会不会因用户的权限的改变造成混乱
用户登陆密码是否是可见、可复制
是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
系统网络安全的测试要考虑问题
测试采取的防护措施是否正确装配好,有关系统的补丁是否打上模拟非授权攻击,看防护系统是否坚固
采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的
黑客攻击工具攻击试一下,现在最常用的是NBSI 系列和IPhacker IP )
采用各种木马检查工具检查系统木马情况
采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题:
系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)系统数据可管理性
系统数据的独立性
系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。

相关文档
最新文档