精华内容
下载资源
问答
  • 判断题目对错的软件
    万次阅读 多人点赞
    2020-11-04 23:43:16

    嵌入式软件工程师面试遇到的经典题目

    1、找错误

    char * s1="hello";
    char * s2="world";
    char * s3=strcat(s1,s2);
    

    这样做对吗,如果不对请说明原因。

    解答:
    不对,s1与s2都为常量指针,其内容不可修改,运行就会产生段错误。

    下面的代码有何问题?

    void test1()
    {
     char string[10];
     char* str1 = "0123456789";
     strcpy( string, str1 );
    } 
    
    

    字符串strl的末尾是以’ \0 ’结尾的,所以他的长度是11,而string的长度不够。。。。

    但是我自己写了这样的程序,他是可以拷贝的。。。。

    2、下面的代码输出是什么,为什么?

    void foo(void)
    {
    	unsigned int a=6;
    	int b=-20;
    	(a+b>6)?puts(">6"):puts("<6")
    }
    

    输出“>6”,应为无符号数和有符号相加,有符号的整形数会转化成一个无符号的整型数,而且负的有符号整型数转换后会变得非常大,所以相加会大于6。

    3、C语言编译时动态链接和静态链接得区别是什么?

    动态库:
    1、链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,节省内存。
    2、程序升级简单,因为app里面没有库的源代码,升级之后只要库的名字不变,函数名以及参数不变,只是实现做了优化,就能加载成功。
    3、. 加载速度比静态库慢
    4、发布程序需要提供依赖的动态库

    静态库:
    1、静态库被打包到程序中加载速度快
    2 、发布程序无需提供静态库,应为已经在app中,移植方便
    3 、 链接时完整的拷贝至可执行文件中,被多次使用就会有多次冗余拷贝
    4、 更新,部署,发布麻烦

    4、C语言关键字static得作用是什么?

    ①隐藏作用, 可以在不同的文件中定义同名变量和同名函数。
    ②对于变量来说, 保持变量持久, 静态数据区的变量会在程序刚刚运行时就完成
    初始化, 也是唯一一次初始化; 储存在静态数据区, 静态存储区只有两种变量(全
    局变量和 static 静态变量) 。
    ③默认初始化为 0x00,和全局变量一样的属性, 减少程序员的工作量。

    5、分别说明一下三个变量声明得含义:

     int const *p;
    
    int * const p;
    
    int const *p const;
    

    int const*p=const int *p; const修饰的是指针 p,表示指针p的值不能改变,而p(即地址)是可以改变的;

    int * const p; const修饰的是p(即地址)是常量,不可改变,但是*p的值可以改变。

    int const *p const ; 上面两种情况兼得,表示只读,其地址以及地址中的值都不可改变

    6、简述TCP/IP镞包含哪些分段,每一层有哪些常用协议?

    应用层:http dns telnet ftp TFTP 。。。。
    传输层:tcp udp
    网络层:ip ICMP ARP rarp
    数据链路层:ethnet ethnet2 802.3 ppp fr x.25 hdlc
    物理层:比特流

    7、从在浏览器地址栏中输入www.baidu.com到看到百度首页,这个过程中间经历了什么?都涉及到哪些网络协议?

    按照时间顺序:
    1.客户端浏览器获取用户在地址栏输入的域名。
    2.客户端浏览器将域名发送给DNS域名系统,请求解析。
    3.DNS解析域名得到相应的IP,返回给客户端浏览器。
    4.客户端浏览器根据IP向服务器发起TCP三次握手,建立TCP连接。
    5.客户端浏览器向服务器发送HTTP请求,请求百度首页。
    6.服务器通过HTTP响应向客户端浏览器返回百度首页文件。
    7.释放TCP连接。
    8.客户端浏览器解析HTML文件,根据文件内容获取CSS、JS等资源文件,将页面渲染展示给用户。

    TCP/IP五层模型中网络层及以上用到的协议:
    1.应用层:HTTP、DNS、HTTPS
    2.传输层:TCP、UDP
    3.网络层:IP、ARP

    8、编写strcat函数

    2.strcat函数原型
    
    char *my_strcat(char *dest,const char *src) //将源字符串加const,表明其为输入参数
    {
      char *strDest=dest;
      assert(dest!=NULL && src!=NULL);      //对源地址和目的地址加非0断言
      //若使用while(*Dest++),则会出错,指向'\0'之后,会出现dest++,则指向了个'\0'的下一个位置,
      while(*dest !='\0')
      {
        dest++;                                            //循环体内的++可以使指向字符串结束标志'\0'
      }
      while((*dest++=*src++)!='\0');
      return strDest; 
    }
    

    之后会问为什么要char *的返回值:
    主要是为了实现链式表达式。
    如 strcpy(buf, strcat(dest, src) );

    9、使用C语言中的#define来定义一个常量来表示一年有多少秒?

    #define SECONDS_PER_YEAR (606024*365)UL

    一定要加括号,宏定义只是替换,不加括号会出错。。。。

    10、实现把字符串转化成整数

    int my_atoi(char *str)
    {
    	int sum=0,status=1;
    	if(str == NULL)
    	{
    		return 0;
    	}
    	if(*str == '-')
    	{
    		status = -1;
    		str++;
    	}
    	while((*str)!='\0')
    	{
    		sum=sum*10+ ((*str)-'0');
    		str++;
    	}
    	return sum*status;
    	
    }
    
    

    11、写一个程序验证系统的大小端存储格式

    /*方法1*/
    typedef union {
    	int i;
    	char c;
    }my_union;
     
    int checkSystem1(void)
    {
    	my_union u;
    	u.i = 1;
    	return (u.i == u.c);
    }
    /*方法2*/
    int checkSystem2(void)
    {
    	int i = 0x12345678;
    	char *c = &i;
    	return ((c[0] == 0x78) && (c[1] == 0x56) && (c[2] == 0x34) && (c[3] == 0x12));
    }
    
    

    12、如何判断一个byte数据中有多少bit为1?

    int select(unsigned char data)
    {
    	int count=0,i=1;
    	while(data!=0)
    	{
    		count +=  (data & i);
    		data >>= 1;
    	}
    	return count;	
    }
    
    

    13、 C语言中关键字volatile的含义

    volatile 的意思是“易失的,易改变的”。这个限定词的含义是向编译器指明变量的内容可能会由于其他程序的修改而变化。
    一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份

    一般说来,volatile用在如下的几个地方:

    1、中断服务程序中修改的供其它程序检测的变量需要加volatile;

    2、多任务环境下各任务间共享的标志应该加volatile;

    3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;

    一个参数既可以是const还可以是volatile吗?解释为什么。
    是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。

    14、进程间通信的方式有哪些?

    1.无名管道( pipe ): 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

    2.有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

    3.消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

    4.信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

    5.信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

    6.共享内存( shared memory ) : 共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

    7.套接字( socket ) : 套解字也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

    15、堆和栈的区别

    ①、申请方式不同:栈由系统自动分配,堆是由人为自行开辟(malloc,new)
    ② 、申请的大小不同:栈是从高地址像低地址分配的,分配空间较小,堆是由地址向高地分配的,空间较大
    ③ 、申请效率不同:栈由系统分配,分配速度较快,堆一般较慢
    ④ 、栈是连续的地址空间,堆不是连续的地址空间,很容易产生内存碎片,浪费内存。

    16、分别给出bool,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)

    	Bool: if(!var)
    	Int : if(var==0)
    	Float:  const float val=0.00000001
    			If((var >= -val) && (var <= val))
    
    

    17、 进程和线程的区别

    进程和线程的根本区别是进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。另外区别还有资源开销、包含关系、内存分配、影响关系、执行过程等。

    • 资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

    • 包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

    • 内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。

    • 影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

    • 执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行。

    进程和线程的根本区别是进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位

    18.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

    #define MIN(A, B) ((A) <= (B)? (A) : (B))
    这个测试是为下面的目的而设的:
    (1)标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符 变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为 了能达到要求的性能,嵌入代码经常是必须的方法。
    (2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if -then-else更优化的代码,了解这个用法是很重要的。
    (3)懂得在宏中小心地把参数用括号括起来。
    (4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?
    least = MIN(*p++, b);
    宏定义#define MIN(A, B) ((A) <= (B) ? (A) : (B))对MIN(*p++, b)的作用结果是:
    ((*p++) <= (b) ? (*p++) : (b))这个表达式会产生副作用,指针p会作两次++自增操作。

    19.预处理器标识#error的目的是什么?

    这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。
    编译程序时,只要遇到 #error 就会跳出一个编译错误当程序比较大时,往往有些宏定义是在外部指定的(如makefile),或是在系统头文件中指定的,当你不太确定当前是否定义了 XXX 时,就可以改成如下这样进行编译:
    #ifdef XXX
    #error “XXX has been defined”
    #else

    #endif
    这样,如果编译时出现错误,输出了XXX has been defined,表明宏XXX已经被定义了。

    20. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

    这个问题用几个解决方案。我首选的方案是:

    while(1) 
    { 
    } 
    

    一些程序员更喜欢如下方案:

    for(;;) 
    { 
    } 
    

    这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。
    第三个方案是用 goto

    Loop: 
    ... 
    goto Loop; 
    

    应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。

    21. 用变量a给出下面的定义

    (1)一个整型数(An integer): int a;
    (2)一个指向整型数的指针(A pointer to an integer): int *a;
    (3)一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an
    integer): int **a;
    (4)一个有10个整型数的数组(An array of 10 integers) :int a[10];
    (5)一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to
    integers): int *a[10];
    (6)一个指向有10个整型数数组的指针(数组指针):int (*a)[10];int *p[n](指针数组)
    (7)指向函数的指针,该函数有一个整型参数并返回一个整型数(函数指针):int (*a)(int);
    (8)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整
    型数( An array of ten pointers to functions that take an integer argument and return an
    integer ): int (*a[10])(int)。
    人们经常声称这里有几个问题是那种要翻一下书才能回答的问题,我同意这种说法。当我写这篇文章时,为了确定语法的正确性,我的确查了一下书。 但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)。因为在被面试的这段时间里,我确定我知道这个问题的答案。应试者如果不知道所有的答案(或至少大部分答案),那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么做准备呢?

    22. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码 ,第一个设置a的bit 3,第二个清除a的bit 3。在以上两个操作中,要保持其它位不变。

    对这个问题有三种基本的反应
    (1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。
    (2)用bit fields。bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间
    是不可移植的,同时也保证了的你的代码是不可重用的。我最近不幸看到Infineon为其较复杂的通信芯片写的驱动程序,它用到了bit fields因此完全对我无用,因为我的编译器用其它的方式来实现bit fields的。从道德讲:永远不要让一个非嵌入式的家伙沾实际硬件的边。
    (3)用#define和bit masks操作。这是一个有极高可移植性的方法,是应该被用到的方法。最佳的解决方案如下:

    #define BIT3 (0x1 < <3) 
    static int a; 
    void set_bit3(void) 
    { 
    a |= BIT3; 
    } 
    void clear_bit3(void) 
    { 
    a &= ~BIT3; 
    } 
    

    一些人喜欢为设置和清除值而定义一个掩码同时定义一些说明常数,这也是可以接受的我希望看到几个要点:说明常数、|=和&=~操作。

    23. 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa55。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

    这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下:

    int *ptr; 
    ptr = (int *)0x67a9; 
    *ptr = 0xaa55; 
    

    一个较晦涩的方法是:

    *(int * const)(0x67a9) = 0xaa55; 
    

    即使你的品味更接近第二种方案,但我建议你在面试时使用第一种方案。

    24. C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?

    int a = 5, b = 7, c;
    c = a+++b;
    这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:
    c = a++ + b;
    因此, 这段代码持行后a = 6, b = 7, c = 12。
    如果你知道答案,或猜出正确答案,做得好。如果你不知道答案,我也不把这个当作问题。我发现这个问题的最大好处是:这是一个关于代码编写风格,代码的可读性,代码的可修改性。

    25. 整型数组作为参数传递时,无法在子函数中获得其长度!只有字符串可以,因为它有一个尾巴标识(‘\0’)!所以,整型的数组长度,必须与数组名一同传递到子函数才可以!

    更多相关内容
  • 软件调试的目的是 A A 单元测试的主要目的是针对编码过程中可能存在的各种错误 A. 找出错误所在并改正之 B单元测试一般是由程序开发人员完成的 B. 排除存在错误的可能性 C单元测试是一种不需要关注程序结构的测试 C....
  • 注意:判断题第六题不用做 测试题目 试题一满分120分 一判断题每题1分正确的在括号内打T错误的打F输入其它任何符号或者不输入都视为0分总共21分 1软件测试的目的是尽可能多的找出软件的缺陷 T 2Beta 测试是验收测试的...
  • 注意:判断题第六题不用做 测试题目 试题一满分120分 一判断题每题1分正确的在括号内打T错误的打F输入其它任何符号或者不输入都视为0分总共21分 1软件测试的目的是尽可能多的找出软件的缺陷 T 2Beta 测试是验收测试的...
  • 北京鼎普科技股份有限公司软件测试笔试题目 1-4判断题很简单很常见我就不写出来了 5自底向上的集成测试需要编写桩模块( ) 1软件测试的对象包括_ (备注选择题很简单我只写出题目具体选项我就不写了目的在于让网友们有...
  • 软件测试笔试面试题目完全汇总

    万次阅读 多人点赞 2019-03-06 13:29:37
    1、软件测试的流程 2、web测试和APP测试的区别 仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的。那么区别在哪里呢? 由于载体不一样,所以系统测试和一些细节可能会不一样。 那么我们就要先...

    软件缺陷:

    1)软件未实现产品说明书要求的功能

    2)软件出现了产品说明书指明不应该出现的错误

    3)软件实现了产品说明书未提到的功能

    4)软件未实现产品说明书虽未明确提及但应该实现的目标

    5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好。

    软件测试:为了发现软件产品中的各种缺陷,而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期。 简单的说,软件测试是以发现错误为目的而执行的一个程序或系统的过程。

    软件测试的目的:

    1.验证软件需求和功能是否得到完整实现
    2.验证软件是否可以发布
    3.尽可能多的发现软件中的bug
    4.尽可能早的发现软件中的bug
    5.对软件质量做出合理评估
    6.预防下个版本可能出现的问题
    7.预防用户使用可能出现的问题
    8.发现开发过程中的问题和风险

    软件测试的原则:

    1、所有测试的标准都是建立在用户需求之上 。
    2、合理控制测试深度与广度,完全测试不可能,测试的投入与产出要均衡。
    3、80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正,16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来。
    4、尽可能早的开展测试,越早发现错误,修改的代价越小。
    5、发现错误较多的程序段,应进行更深入的测试。
    6、软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试 。
    7、软件开发人员即程序员应当避免测试自己的程序
    8、严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作

    软件测试的流程

    在这里插入图片描述

    web测试和APP测试的区别

    仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的。那么区别在哪里呢?
    由于载体不一样,所以系统测试和一些细节可能会不一样。
    那么我们就要先来了解,web和app的区别。

    web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。

    首先从系统架构来看的话,web测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是app端是不能够保证完全一致的,除非用户更新客户端。如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。

    接着是性能方面,web页面可能只会关注响应时间,而app则还需要关心流量、电量、CPU、GPU、Memory这些了。至于服务端的性能是没区别,这里就不谈。

    相比较web测试,app更是多了一些专项测试:

    健壮性测试:

    一些异常场景的考虑以及弱网络测试。这里的异常场景就是中断,来电,短信,关机,重启等。

    而弱网测试是app测试中必须执行的一项测试。包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。需要测试丢包,延时的处理机制。避免用户的流失。这些在前面的弱网测试那篇已经讲过,这里不再讲了。
      
    安装、卸载、更新:
      web测试是基于浏览器的所以不必考虑这些。而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,更新的强制更新与非强制更新、增量包更新、断点续传、弱网,卸载后删除app相关的文件等等。
      
    就自动化来讲,web大多用的selenium、webdriver,而app则是appium。
    性能使用的工具web则是LR,app使用Jmeter要多一点

    如何提交高质量的缺陷报告单

    1、 缺陷的概要描述要清晰准确,要使相关开发负责人员能够一目了然问题是什么。
    2、 一个完整的缺陷报告单,必须包含其必要的元素信息,例如:概要描述,缺陷发现人,测试环境,浏览器,缺陷重现步骤,严重等级,指派人,所属功能模块等等,必要元素信息必须描述全面清楚。
    3、 缺陷的重现步骤必须描写清晰明了,使相关开发负责人能够根据重现步骤准确的重现所提交的缺陷,使其定位缺陷的原因所在。
    4、测试数据,测试的数据作为重现缺陷的一个重要元素信息,一定要将测试时所使用的信息给描写清楚准确。让开发人员根据测试所提供的测试数据准确重现缺陷。
    5、附件截图信息,附件或截图信息能让开发人员能够一目了然的清楚问题的所在。
    在这里插入图片描述

    如何对web系统进行全面测试?

    原文地址:http://www.51testing.com/html/04/n-3727304.html
    一、 功能测试
      1、链接测试
      链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。 链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
      2、表单测试
      当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
      3、Cookies测试
      Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。 如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
      4、设计语言测试
      Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。
      5、数据库测试
      在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。 在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
    二、 性能测试
      1、连接速度测试
      用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。 另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
      2、负载测试
      负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
      3、压力测试
      负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。 进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。 压力测试的区域包括表单、登陆和其他信息传输页面等。
    三、 可用性测试
      1、导航测试
      导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助? 在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。 导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。 Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
      2、图形测试
       在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。
      图形测试的内容有:
      (1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
      (2)验证所有页面字体的风格是否一致。
      (3)背景颜色应该与字体颜色和前景颜色相搭配。
      (4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
      3、内容测试
      内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。 信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的拼音与语法检查功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓相关文章列表。
      4、整体界面测试
      整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致? 对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。 对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
    四、 客户端兼容性测试
      1、平台测试
      市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。 因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
      2、浏览器测试
      浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。 测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
    五、 安全性测试
      Web应用系统的安全性测试区域主要有:
      (1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
      (2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
      (3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
      (4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
      (5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

    测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机

    原文地址:https://blog.csdn.net/slforeverlove/article/details/47080279

    优秀测试人员应具备的素质:

    1)沟通能力与表达能力
    2)好奇心与怀疑精神
    3)责任感与抗压能力
    4)自信心,坚持自己的观点
    5)耐心与细心
    6)逆向思维的能力
    7)善于学习与总结
    8)团队协作精神
    9)文档编写能力

    优秀测试人员应具备的技能:

    1)精通业务知识
    2)具备软件编程能力,比如C,C++,JAVA等。
    3)可以用脚本语言编写小测试工具
    4)主流操作系统应用与网络知识,可以搭建测试环境
    5)熟练掌握各种数据库知识
    6)精通软件测试理论与方法
    7)掌握常用测试与开发工具的使用
    8)优秀的文档编写能力

    软件测试的分类:

    1)按照是否执行被测试软件来分:

    静态测试:是指不运行软件,测试包括代码检查、静态结构分析、代码质量度量等,主要对软件需求说明书、设计说明书、软件源代码进行检查与分析。

    动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析差异原因,并分析软件运行效率、健壮性等性能。 动态测试是目前公司主要的测试方式

    2)按照测试技术分为黑盒测试和白盒测试:

    黑盒测试:黑盒测试又叫功能测试或数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,通过软件的外部表现来发现其缺陷和错误。

    白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构进行测试程序,通过测试来检测产品内部逻辑是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

    3)按照测试手段来分,可以分为手工测试和自动化测试

    4)按照过程阶段来分,可以分为单元测试、集成测试、系统测试和验收测试

    单元测试:通过模块(类/方法/函数)测试,使代码达到设计要求 主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。

    集成测试:将经过单元测试的模块逐步组装成完整的程序。 主要目的是检查各单元与其它程序部分之间的接口是否存在问题,各模块功能之间是否有影响。

    系统测试:是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起进行测试。 系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方 ,进行改正。

    验收测试:验收测试是在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的最后一次软件测试活动,也称为交付测试。 通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。

    软件开发流程(软件生命周期):

    计划-》需求分析-》设计-》程序编写-》测试-》运行/维护

    软件测试流程:

    测试计划-》需求分析-》测试用例-》测试用例执行-》提交bug-》回归测试

    软件开发模型:

    在这里插入图片描述

    软件测试模型:

    V模型:反映了测试与开发阶段之间一一对应的特点,测试在开发之后,出错后回归测试量大。
    在这里插入图片描述
    W模型:测试伴随整个开发周期,测试与开发同步进行,有利于尽早发现问题
    在这里插入图片描述
    H模型:软件测试活动完全独立,与其他流程并行。

    白盒测试方法

    白盒测试方法有 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

    1.语句覆盖每条语句至少执行一次。

    2.判定覆盖每个判定的每个分支至少执行一次。

    3.条件覆盖每个判定的每个条件应取到各种可能的值。

    4.判定/条件覆盖同时满足判定覆盖条件覆盖。

    5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

    6.路径覆盖使程序中每一条可能的路径至少执行一次。

    设计用例的方法、依据有那些?

    测试分为白盒测试和黑盒测试,回答时,要注意分开说。白盒测试用例设计有如下方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。依据就是代码结构。

    黑盒测试用例设计方法:基于用户需求的测试、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验法、场景法。依据是用户需求规格说明书,详细设计说明书。

    一个测试工程师应具备那些素质和技能?

    一个好的测试工程师,不仅要基础扎实,对自身的性格、责任心都有非常高的要求。具体如下:(1)掌握基本的测试基础理论(2)本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现(3)可熟练阅读需求规格说明书等文档(4)以用户的观点看待问题(5)有着强烈的质量意识(6)细心和责任心(7)良好的有效的沟通方式(与开发人员及客户)(8)具有以往的测试经验(9)能够及时准确地判断出高危险区在何处.

    集成测试通常都有哪些策略?

    大致说四点即可,当然说全更好。集成测试有十种策略:(1)大爆炸集成(2)自顶向下集成(3)自底向上集成(4)三明治集成(5)分层集成(6)基干集成(7)基于功能的集成(8)基于消息的集成(9)基于风险的集成(10)基于进度的集成.

    什么是兼容性测试?兼容性测试侧重哪些方面?

    兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。

    兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。

    兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。

    我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?

    1、检查系统是否有中毒的特征;

    2、检查软件/硬件的配置是否符合软件的推荐标准;

    3、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务;

    4、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;

    5、在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。

    测试的策略有哪些?

    黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)

    正交表测试用例设计方法的特点是什么?

    用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;

    对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;

    具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。

    描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?

    详见bugZilla使用指南

    在Bugzilla中,Bug报告状态分为以下几种状态,

    待确认的      unconfirmed
    
    新提交的      new
    
    已分配的      assigned
    
    问题未解决的 reopened
    
    待返测的       resolved
    
    待归档的       verified
    
    已归档的       closed
    

    Bug处理意见(Resolution)

    已修改的      fixed
    
    不是问题       nvalid
    
    无法修改       wontfix
    
    以后版本解决  later
    
     保留           remind
    
     重复           duplicate
    
     无法重现      workforme 
    

    在这里插入图片描述

    你觉得bugzilla在使用的过程中,有什么问题?

    界面不稳定;

    根据需要配置它的不同的部分,过程很烦琐。

    流程控制上,安全性不好界定,很容易对他人的Bug进行误操作;

    没有综合的评分指标,不好确认修复的优先级别。

    描述测试用例设计的完整过程?

    需求分析 + 需求变更的维护工作;

    根据需求 得出测试需求;

    设计测试方案,评审测试方案;

    方案评审通过后,设计测试用例,再对测试用例进行评审;

    单元测试的策略有哪些?

    单元的常见错误一般出现在以下五个方面,因此这五个方面是单元测试应该关注的重点。

    1、单元接口。

    2、局部数据结构。

    3、独立路径。

    4、出错处理。

    5、边界条件

    在单元测试时,由于单元本身不是一个独立的程序,一个完整的可运行的软件系统并没有构成,所以需要设置一些辅助测试单元,辅助测试单元有两种,一种是驱动单元,另外一种是桩单元。

    1、驱动单元(Driver):用来模拟被测单元的上层单元,相当于被测函数的主函数,如main函数。所以驱动单元主要完成以下4个步骤:

    (1)接受测试数据,包含测试用例输入和预期输出;

    (2)把测试用例输入传送给被测单元,驱动被测单元测试;

    (3)将被测单元的实际输出和预期输出进行比较,得到测试结果;

    (4)将测试结果输出到指定位置。

    2、桩单元(Stub):用来代替被测单元工作过程中调用的子单元。

    桩单元模拟的单元可能是自定义函数:这些自定义函数可能尚未编写完成,为了测试被测单元,需要构造桩单元来代替它们,可能存在错误,会影响测试结果,所以需要构造正确无误的桩单元来达到隔离的目的。

    驱动单元和桩单元都是额外的开销,虽然在单元测试的时候必须写,但是并不需要作为最终的产品提供给客户。

    单元测试策略

    一般的单元执行策略有三种:孤立的单元测试策略(Isolation Unit Testing),自顶向下的单元测试策略(Top Down Unit Testing)和自底向上的单元测试策略(Bottom Up Unit Testing)。需要注意的是:在集成测试中也有自顶向下和自底向上的测试策略,但是测试对象不同。

    1、孤立的单元测试策略(Isolation Unit Testing)

    方法:不考虑每个模块与其它模块之间的关系,为每个模块设计桩模块和驱动模块,每个模块进行独立的单元测试。

    优点:这个方法比较简单,最容易操作,可以达到很高的结构覆盖率,可以并行开展,该方法是纯粹的单元测试。

    缺点:桩函数和驱动函数工作量很大,效率低。

    2、自顶向下的单元测试策略(Top Down Unit Testing)

    方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块,其次对第二层进行测试,使用上面已经测试过的单元做驱动模块,以此类推,直到测试完所有模块。

    优点:可以节省驱动函数的开发工作,效率高。

    缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。

    3、自底向上的单元测试策略(Bottom Up Unit Testing)

    方法:先对最底层的模块进行单元测试,将模拟调用该模块的模块设置为驱动模块,然后再对上面一层做单元测试,用下面已经测试好的模块做桩模块,以此类推,直到测试完所有模块。

    优点:可以节省桩函数的开发工作量,测试效率较高。

    缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产生很大影响。

    LoadRunner分哪三部分?

    脚本生成器;

    场景控制器;

    结果分析器。

    LoadRunner进行测试的流程?

    1、 测试设计

    2、 创建虚拟用户脚本

    3、 创建运行场景

    4、 运行场景

    5、 监视场景

    6、 分析测试的结果

    以上,最好是结合一个案例,根据以上流程来介绍。

    什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样?

    在同一时间点,支持多个不同的操作。

    LoadRunner中提供IP伪装,集合点,配合虚拟用户的设计,以及在多台电脑上设置,可以比较好的模拟真实的并发。

    集合点,即是多个用户在某个时刻,某个特定的环境下同时进行虚拟用户的操作的。集合点失败,则集合点的操作就会取消,测试就不能进行。

    TestDirector有些什么功能,如何对软件测试过程进行管理?

    需求管理

    n 定义测试范围

    n 定义需求树

    n 描述需求树的功能点

    测试计划

    n 定义测试目标和测试策略。

    n 分解应用程序,建立测试计划树。

    n 确定每个功能点的测试方法。

    n 将每个功能点连接到需求上,使测试计划覆盖全部的测试需求。

    n 描述手工测试的测试步骤

    n 指明需要进行自动测试的功能点

    测试执行

    n 定义测试集合。

    n 为每个测试人员制定测试任务和测试日程安排。

    n 运行自动测试。

    缺陷跟踪

    n 记录缺陷

    n 查看新增缺陷,并确定哪些是需要修正的

    n 相关技术人员修改缺陷

    n 回归测试

    n 分析缺陷统计图表,分析应用程序的开发质量。

    你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)?

    Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

    Functional testing (功能测试),也称为behavioral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
    Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。

    一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

    1.和BUG对应的软件版本
    2.开发的接口人员,测试人员
    3.BUG的优先级
    4.BUG的严重程度
    5.BUG可能属于的模块
    6.BUG的标题
    7.BUG的描述
    8.BUG的截图
    9.BUG的状态
    10.BUG的错误类型(数据,界面。。。。)
    在这里插入图片描述

    Beta测试与Alpha测试有什么区别?

    Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场
    Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试

    软件的评审一般由哪些人参加?其目的是什么?

    在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。

    人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审那个阶段

    阶段评审与项目评审有什么区别?

    阶段评审对项目各阶段评审:对阶段成果和工作

    项目评审对项目总体评审:对工作和产品

    什么是扇入?什么是扇出?

    参考答案:

    扇入:被调次数,扇出:调其它模块数目

    什么是桩模块?什么是驱动模块?

    桩模块:被测模块调用模块

    驱动模块:调用被测模块

    你认为做好测试计划工作的关键是什么?

    软件测试计划就是在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试;

    做好测试计划工作的关键:目的,管理,规范

    1、 明确测试的目标,增强测试计划的实用性
    编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确

    2.坚持“5W”规则,明确内容与过程
    “5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

    3.采用评审和更新机制,保证测试计划满足实际需求
    测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。

    4、分别创建测试计划与测试详细规格、测试用例
    应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

    简述一下缺陷的生命周期?

    提交->确认->分配->修复->验证->关闭

    软件的安全性应从哪几个方面去测试?

    (1)用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议

    (2)加密机制

    (3)安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描

    (4)数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理

    (5)防病毒系统

    软件配置管理工作开展的情况和认识?

    软件配置管理贯穿于软件开发、测试活动的始终,覆盖了开发、测试活动的各个环节,它的重要作用之一就是要全面的管理保存各个配置项,监控各配置项的状态,并向项目经理及相关的人员报告,从而实现对软件过程的控制。

    软件测试配置管理包括4个最基本的活动:

    配置项标识

    配置项控制

    配置项状态报告

    配置审计

       软件配置管理通常借助工具来辅助,主要有MS SourceSafe、Rational ClearCase等
    

    你觉得软件测试通过的标准应该是什么样的?

    缺陷密度值达到客户的要求
    

    引入测试管理的含义?

    风险分析,进度控制、角色分配、质量控制

    一套完整的测试应该由哪些阶段组成?

    参考答案:测试计划、测试设计与开发、测试实施、测试评审与测试结论

    单元测试的主要内容?

    模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

    集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容?

    (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

    (2)一个模块的功能是否会对另一个模块的功能产生不利的影响;

    (3)各个子功能组合起来,能否达到预期要求的父功能;

    (4)全局数据结构是否有问题;

    (5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。

    简述集成测试与系统测试关系?

    (1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书;

    (2)集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。

    软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些?

    用户手册

    安装和设置指导

    联机帮助

    指南、向导

    样例、示例和模板

    授权/注册登记表

    最终用户许可协议

    软件系统中除用户文档之外,文档测试还应该关注哪些文档?

    开发文档

    软件需求说明书

        数据库设计说明书
    
        概要设计说明书
    
        详细设计说明书
    
        可行性研究报告
    

    管理文档

        项目开发计划
    
        测试计划
    
        测试报告
    
        开发进度月报
    
        开发总结报告
    

    简述软件系统中用户文档的测试要点?

    (1)读者群。文档面向的读者定位要明确。对于初级用户、中级用户以及高级用户应该有不同的定位

    (2)术语。文档中用到的术语要适用与定位的读者群,用法一致,标准定义与业界规范相吻合。

    (3)正确性。测试中需检查所有信息是否真实正确,查找由于过期产品说明书和销售人员夸大事实而导致的错误。检查所有的目录、索引和章节引用是否已更新,尝试链接是否准确,产品支持电话、地址和邮政编码是否正确。

    (4)完整性。对照软件界面检查是否有重要的分支没有描述到,甚至是否有整个大模块没有描述到。

    (5)一致性。按照文档描述的操作执行后,检查软件返回的结果是否与文档描述的相同。

    (6)易用性。对关键步骤以粗体或背景色给用户以提示,合理的页面布局、适量的图表都可以给用户更高的易用性。需要注意的是文档要有助于用户排除错误。不但描述正确操作,也要描述错误处理办法。文档对于用户看到的错误信息应当有更详细的文档解释。

    (7)图表与界面截图。检查所有图表与界面截图是否与发行版本相同。

    (8)样例与示例。像用户一样载入和使用样例。如果是一段程序,就输入数据并执行它。以每一个模块制作文件,确认它们的正确性。

    (9)语言。不出现错别字,不要出现有二义性的说法。特别要注意的是屏幕截图或绘制图形中的文字。

    (10)印刷与包装。检查印刷质量;手册厚度与开本是否合适;包装盒的大小是否合适;有没有零碎易丢失的小部件等等。

    单元测试主要内容是什么?

    单元测试大多数由开发人员来完成,测试人员技术背景较好或者开发系统软件时可能会安排测试人员进行单元测试,大多数进行的单元测试都是开发人员调试程序或者开发组系统联合调试的过程。讨论这个问题主要是扩充一下读者的视野。

    单元测试一般包括五个方面的测试:

    (1)模块接口测试:模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。模块接口测试也是集成测试的重点,这里进行的测试主要是为后面打好基础。测试接口正确与否应该考虑下列因素:

    -输入的实际参数与形式参数的个数是否相同;

    -输入的实际参数与形式参数的属性是否匹配;

    -输入的实际参数与形式参数的量纲是否一致;

    -调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;

    -调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;

    -调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;

    -调用预定义函数时所用参数的个数、属性和次序是否正确;

    -是否存在与当前入口点无关的参数引用;

    -是否修改了只读型参数;

    -对全程变量的定义各模块是否一致;

    -是否把某些约束作为参数传递。

    如果模块功能包括外部输入输出,还应该考虑下列因素:

    -文件属性是否正确;

    -OPEN/CLOSE语句是否正确;

    -格式说明与输入输出语句是否匹配;

    -缓冲区大小与记录长度是否匹配;

    -文件使用前是否已经打开;

    -是否处理了文件尾;

    -是否处理了输入/输出错误;

    -输出信息中是否有文字性错误。

    -局部数据结构测试;

    -边界条件测试;

    -模块中所有独立执行通路测试;

    (2)局部数据结构测试:检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确,局部功能是整个功能运行的基础。重点是一些函数是否正确执行,内部是否运行正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:

    -不合适或不相容的类型说明;

    -变量无初值;

    -变量初始化或省缺值有错;

    -不正确的变量名(拼错或不正确地截断);

    -出现上溢、下溢和地址异常。

    (3)边界条件测试:边界条件测试是单元测试中最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点,边界测试执行的较好,可以大大提高程序健壮性。

    (4)模块中所有独立路径测试:在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体做法就是程序员逐条调试语句。常见的错误包括:

    -误解或用错了算符优先级;

    -混合类型运算;

    -变量初值错;

    -精度不够;

    -表达式符号错。

    比较判断与控制流常常紧密相关,测试时注意下列错误:

    -不同数据类型的对象之间进行比较;

    -错误地使用逻辑运算符或优先级;

    -因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;

    -比较运算或变量出错;

    -循环终止条件或不可能出现;

    -迭代发散时不能退出;

    -错误地修改了循环变量。

    模块的各条错误处理通路测试:程序在遇到异常情况时不应该退出,好的程序应能预见各种出错条件,并预设各种出错处理通路。如果用户不按照正常操作,程序就退出或者停止工作,实际上也是一种缺陷,因此单元测试要测试各种错误处理路径。一般这种测试着重检查下列问题:

    -输出的出错信息难以理解;

    -记录的错误与实际遇到的错误不相符;

    -在程序自定义的出错处理段运行之前,系统已介入;

    -异常处理不当;

    -错误陈述中未能提供足够的定位出错信息。

    如何理解强度测试?

    强度测试是为了确定系统在最差工作环境的工作能力,也可能是用于验证在标准工作压力下的各种资源的最下限指标。

    它和压力测试的目标是不同的,压力测试是在标准工作环境下,不断增加系统负荷,最终测试出该系统能力达到的最大负荷(稳定和峰值),而强度测试则是在非标准工作环境下,甚至不断人为降低系统工作环境所需要的资源,如网络带宽,系统内存,数据锁等等,以测试系统在资源不足的情况下的工作状态,通过强度测试,可以确定本系统正常工作的最差环境.

    强度测试和压力测试的测试指标相近,大多都是与时间相关的指标,如并发量(吞吐量),延迟(最大\最小\平均)以及顺序指标等

    强度测试需要对系统的结构熟悉,针对系统的特征设计强度测试的方法

    如何理解压力、负载、性能测试测试?

    性能测试是一个较大的范围,实际上性能测试本身包含了性能、强度、压力、负载等多方面的测试内容。

    压力测试是对服务器的稳定性以及负载能力等方面的测试,是一种很平常的测试。增大访问系统的用户数量、或者几个用户进行大数据量操作都是压力测试。而负载测试是压力相对较大的测试,主要是测试系统在一种或者集中极限条件下的相应能力,是性能测试的重要部分。100个用户对系统进行连续半个小时的访问可以看作压力测试,那么连续访问8个小时就可以认为负载测试,1000个用户连续访问系统1个小时也可以看作是负载测试。

    实际上压力测试和负载测试没有明显的区分。测试人员应该站在关注整体性能的高度上来对系统进行测试。

    什么是系统瓶颈?

    瓶颈主要是指整个软硬件构成的软件系统某一方面或者几个方面能力不能满足用户的特定业务要求,“特定”是指瓶颈会在某些条件下会出现,因为毕竟大多数系统在投入前。

    严格的从技术角度讲,所有的系统都会有瓶颈,因为大多数系统的资源配置不是协调的,例如CPU使用率刚好达到100%时,内存也正好耗尽的系统不是很多见。因此我们讨论系统瓶颈要从应用的角度讨论:关键是看系统能否满足用户需求。在用户极限使用系统的情况下,系统的响应仍然正常,我们可以认为改系统没有瓶颈或者瓶颈不会影响用户工作。

    因此我们测试系统瓶颈主要是实现下面两个目的:

    -发现“表面”的瓶颈。主要是模拟用户的操作,找出用户极限使用系统时的瓶颈,然后解决瓶颈,这是性能测试的基本目标。

    -发现潜在的瓶颈并解决,保证系统的长期稳定性。主要是考虑用户在将来扩展系统或者业务发生变化时,系统能够适应变化。满足用户目前需求的系统不是最好的,我们设计系统的目标是在保证系统整个软件生命周期能够不断适应用户的变化,或者通过简单扩展系统就可以适应新的变化。

    文档测试主要包含什么内容?

    在国内软件开发管理中,文档管理几乎是最弱的一项,因而在测试工作中特别容易忽略文档测试也就不足为奇了。要想给用户提供完整的产品,文档测试是必不可少的。文档测试一般注重下面几个方面:

    文档的完整性:主要是测试文档内容的全面性与完整性,从总体上把握文档的质量。例如用户手册应该包括软件的所有功能模块。

    描述与软件实际情况的一致性:主要测试软件文档与软件实际的一致程度。例如用户手册基本完整后,我们还要注意用户手册与实际功能描述是否一致。因为文档往往跟不上软件版本的更新速度。

    易理解性:主要是检查文档对关键、重要的操作有无图文说明,文字、图表是否易于理解。对于关键、重要的操作仅仅只有文字说明肯定是不够的,应该附有图表使说明更为直观和明了。

    文档中提供操作的实例:这项检查内容主要针对用户手册。对主要功能和关键操作提供的应用实例是否丰富,提供的实例描述是否详细。只有简单的图文说明,而无实例的用户手册看起来就像是软件界面的简单拷贝,对于用户来说,实际上没有什么帮助。

    印刷与包装质量:主要是检查软件文档的商品化程度。有些用户手册是简单打印、装订而成,过于粗糙,不易于用户保存。优秀的文档例如用户手册和技术白皮书,应提供商品化包装,并且印刷精美。

    配置和兼容性测试的区别是什么?

    配置测试的目的是保证软件在其相关的硬件上能够正常运行,而兼容性测试主要是测试软件能否与不同的软件正确协作。

    配置测试的核心内容就是使用各种硬件来测试软件的运行情况,一般包括:

    (1)软件在不同的主机上的运行情况,例如Dell和Apple;

    (2)软件在不同的组件上的运行情况,例如开发的拨号程序要测试在不同厂商生产的Modem上的运行情况;

    (3)不同的外设;

    (4)不同的接口;

    (5)不同的可选项,例如不同的内存大小;

    兼容性测试的核心内容:

    (1)测试软件是否能在不同的操作系统平台上兼容;

    (2)测试软件是否能在同一操作系统平台的不同版本上兼容;

    (3)软件本身能否向前或者向后兼容;

    (4)测试软件能否与其它相关的软件兼容;

    (5)数据兼容性测试,主要是指数据能否共享;

    配置和兼容性测试通称对开发系统类软件比较重要,例如驱动程序、操作系统、数据库管理系统等。具体进行时仍然按照测试用例来执行。

    软件文档测试主要包含什么?

    随着软件文档系统日益庞大,文档测试已经成为软件测试的重要内容。文档测试对象主要如下:

    -包装文字和图形;

    -市场宣传材料、广告以及其它插页;

    -授权、注册登记表;

    -最终用户许可协议;

    -安装和设置向导;

    -用户手册;

    -联机帮助;

    -样例、示范例子和模板;

    -……

    文档测试的目的是提高易用性和可靠性,降低支持费用,因为用户通过文档就可以自己解决问题。因文档测试的检查内容主要如下:

    -读者对象——主要是文档的内容是否能让该级别的读者理解;

    -术语——主要是检查术语是否适合读者;

    -内容和主题——检查主题是否合适、是否丢失、格式是否规范等;

    -图标和屏幕抓图——检查图表的准确度和精确度;

    -样例和示例——是否与软件功能一致;

    -拼写和语法;

    -文档的关联性——是否与其它相关文档的内容一致,例如与广告信息是否一致;

    文档测试是相当重要的一项测试工作,不但要给予充分的重视,更要要认真的完成,象做功能测试一样来对待文档测试。

    没有产品说明书和需求文档地情况下能够进行黑盒测试吗?

    这个问题是国内测试工程师经常遇到的问题,根源就是国内软件开发文档管理不规范,对变更的管理方法就更不合理了。实际上没有任何文档的时候,测试人员是能够进行黑盒测试的,这种测试方式我们可以称之为探索测试,具体做法就是测试工程师根据自己的专业技能、领域知识等不断的深入了解测试对象、理解软件功能,进而发现缺陷。

    在这种做法基本上把软件当成了产品说明书,测试过程中要和开发人员不断的进行交流。尤其在作项目的时候,进度压力比较大,可以作为加急测试方案。最大的风险是不知道有些特性是否被遗漏。

    ##3 测试中的“杀虫剂怪事”是指什么?
    “杀虫剂怪事”一词由BorisBeizer在其编著的《软件测试技术》第二版中提出。用于描述测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来越少的现象。就像老用一种农药,害虫就会有免疫力,农药发挥不了效力。这种现象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势。

    为了克服这种现象,测试人员需要不断编写新的测试程序或者测试用例,对程序的不同部分进行测试,以发现更多的缺陷。也可以引用新人来测试软件,刚刚进来的新手往往能发现一些意想不到的问题。

    在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?

    在进行配置测试时,测试工程师仍然会发现一些普通的缺陷,也就是与配置环境无关的缺陷。因此判断新发现的问题,需要在不同的配置中重新执行发现软件缺陷的步骤,如果软件缺陷不出现了,就可能是配置缺陷;如果在所有的配置中都出现,就可能是普通缺陷。

    需要注意的是,配置问题可以在一大类配置中出现。例如,拨号程序可能在所有的外置Modem中都存在问题,而内置的Modem不会有任何问题。

    完全测试程序是可能的吗?

    软件测试初学者可能认为拿到软件后需要进行完全测试,找到全部的软件缺陷,使软件“零缺陷”发布。实际上完全测试是不可能的。主要有以下一个原因:

    -完全测试比较耗时,时间上不允许;

    -完全测试通常意味着较多资源投入,这在现实中往往是行不通的;

    -输入量太大,不能一一进行测试;

    -输出结果太多,只能分类进行验证;

    -软件实现途径太多;

    -软件产品说明书没有客观标准,从不同的角度看,软件缺陷的标准不同;

    因此测试的程度要根据实际情况确定。

    软件测试的风险主要体现在哪里?

    我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。举个例子,程序员为了方便,在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出,碰巧程序发布前这些代码中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试。如果客户碰到它,这将是代价昂贵的缺陷,因为交付后才被客户发现。

    因此,我们要尽可能的选择最合适的测试量,把风险降低到最小。

    发现的缺陷越多,说明软件缺陷越多吗?

    这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽脑汁的思考,但是找到一个后,会接二连三的发现很多缺陷,颇有个人成就感。其中的原因主要如下:

    -代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味可能也复制了缺陷。

    -程序员比较劳累是可以导致某些连续编写的功能缺陷较多。程序员加班是一种司空见惯的现象,因此体力不只时容易编写一些缺陷较多的程序。而这些连续潜伏缺陷恰恰时测试工程师大显身手的地方。

    “缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。

    所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

    从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:

    -没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,再加上修改缺陷可能引入新的缺陷,因此在交付期限的强大压力下,必须放弃某些缺陷的修改。

    -有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。

    -不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。

    最后要说的是,缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。

    软件测试人员就是QA吗?

    软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。

    软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。

    如何减少测试人员跳槽带来的损失?

    在IT行业里跳槽已经是一种司空见惯的现象,而且跳槽无论给公司还是给个人都会带来一定的损失。测试队伍也无疑会面临跳槽的威胁,作为测试经理管理者,只有从日常工作中开始做起,最能最大限度的减少损失。建议我们从以下两个方面做起:

    -加强部门内员工之间的互相学习,互相学习是建立学习型组织的基本要求,是知识互相转移的过程。在此基础上,可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化。

    -通常情况下,企业能为员工提供足够大的发展空间时,如果不是待遇特别低,员工都不会主动离开企业。因此我们要想留住员工,管理者就应该把员工的个人成长和企业的发展联系起来,为员工设定合理发展规划并付诸实现。不过这项要求做起来比较,要有比较好的企业文化为依托.

    以windows对文件的复制粘帖功能为例,尽可能多地写出测试思路

    1、 基本功能测试: 文件的复制粘贴功能,首先关键字“文件”,文件有不同的分类(图片、视频、音频、文档等),每个分类又有不同的类型(文档类型:txt doc execl pdf等),每个文件又有不同的大小,而且文件还有很多权限,是不是隐藏,是不是只是管理员可执行。选择不同分类的不同类型,不同大小的文件做测试资源。比如:文档类型里面txt文件可以分为 1.KB的txt文件、1MB的txt文件、1GB的txt文件。。。。
    下一个关键字 复制粘贴 复制有多种方式 右击选择、Ctrl+C、 拖动复制,对应粘贴也有各种方式。然后从哪复制,粘贴到哪,比如 可以有本机硬盘、移动硬盘、优盘、内存卡、软盘、光盘、连接手机存储,复制到网络地址等等。复制粘贴后文件是不是可用,文件权限是不是有变化。复制过去容量不够怎么处理?复制过后有重名文件怎么处理?复制过程中取消、关机、拔优盘怎么处理?复制过程能不能执行文件?

    2.性能测试:复制粘贴功能性能怎么样?复制文件的速度可不可以接受?同时复制多个文件是不是可以完成?复制文件过程中占用CPU资源大不大,耗电量大不大?

    3.兼容性测试 Windows XP, Windows 7, Windows 8 , Windows 8.1, Windows 10等各种windos版本是不是都支持这个功能。

    4.交互测试; 复制粘贴文件时,使用windows存储的其他功能是否有影响?比如播放本地的音频、视频、等同时复制文件是不是有影响。一边复制,一边粘贴是不是有影响。

    粘贴的稳定性:粘贴完了大小会不会变化,内容格式会不会变化,粘贴不上,误操作以后还能不能找到复制的内容等

    粘贴的安全性:粘贴的内容粘贴好了以后会不会存在别处泄露等

    2.性能测试:(1)时间:复制粘贴的响应时间?页面的显示时间?(2)负载:多次重复进行复制粘贴是否有异常?复制粘贴容量很大的一个或多个文件是否能承受?(3)强度:保证容量足够的条件下,分别复制粘贴50GB,100GB,500GB,…大小的文件,看什么时候出现失败,失败后的表现,能否重新正常复制粘贴50G?(4)容量:在不同CPU资源条件下,持续复制粘贴5分钟,最多能复制粘贴多少容量的文件?

    5.界面测试:复制粘贴时进度条的显示界面是否与系统的设计风格一致?显示界面是否有文字性错误?显示界面的布是否合理?界面上的按钮是否可用(如:是否可以选择中止?是否可用最小化?)

    6.本地化测试:不同语言环境下的显示正常

    7.辅助性测试:高对比度下能否显示正常

    链接:https://www.nowcoder.com/questionTerminal/ad274cafadf64222bb8805df45828741?orderByHotValue=1&pos=3
    来源:牛客网

    1 、复制粘贴方法

    快捷键测试:测试 Ctrl+C ,是否正确执行复制、 Ctrl+v 是否支持粘贴功能

    右键测试:查看复制粘贴功能是否正确执行;

    在 cmd 命令行中使用复制粘贴命令;

    2 、文件大小测试

    源文件为空, 0 字节;

    源文件正常大小;

    源文件为超大文件: **G/ 等;

    3 、文件格式

    测试各种文件格式下是否正常复制粘贴:如:图片、声音、视频、压缩文件、办公文件: word\excel\ppt 等、二进制文件;

    测试共享文件、隐藏文件

    4 、复制和粘贴文件路径

    在系统不同文件路径下复制粘贴,

    测试相对路径和绝对路径下文件复制粘贴;

    测试文件夹下和另一个不同文件夹复制粘贴;

    测试不同 C\D\E 盘之间;

    测试复制粘贴至:移动硬盘、 U 盘、读卡器以及其它外部存储设备;

    5 、异常测试

    测试被损坏文件、不完整文件名称、禁止复制和粘贴的文件、超出规定大小文件等;

    同名称文件测试是否提醒替换或覆盖;

    6 、兼容性

    测试不同操作系统之间、不同应用程序(如: QQ );

    7 、性能测试:

    测试复制粘贴可支持最大文件大小;复制粘贴操作的相应速度、执行完毕时间;

    一次支持不同格式的文件同时操作;

    支持大量文件同时复制粘贴;

    登录界面测试用例设计

    一、界面测试点:

    1、界面的设计风格是否与UI的设计风格统一;

    2、界面中的文字简洁易懂;

    3、界面中没有错别字;

    二、用户名与密码在输入时,要考虑:

    1、正确的用户名与正确的密码;

    2、正确的用户名与错误的密码;

    3、错误的用户名与正确的密码;

    4、错误的用户名与错误的密码;

    5、空的用户名和空的密码;

    6、正确的用户名和空的密码;

    7、空的用户名和正确的密码;

    8、用户名的前/中/后含有空格;

    9、密码的前/中/后含有空格;

    10、用户名与密码使用的字符范围及位数限制的测试(等价类及边界值,会用到强制的复制与粘贴来实现不允许输入的字符,以及一些保留字的测试);

    11、牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用;

    三、安全性测试:

    1、密码是否隐蔽显示;

    在这里插入图片描述

    3、不能直接输入,就copy,是否数据检验出错;

    还要准确定位每一个输入框的功能,每一种错误情况下,出现的错误提示要准确或者合适。

    四、兼容性测试:

      1.不同浏览器测试
      2.浏览器不同版本测试
    

    五、其他测试点:

    1、输入框之间考虑tab键是否支持;

    2、登录按钮要考虑回车键是否支持;

    3、取消后的默认位置(一般为空白的用户名输入框);

    4、登录后的跳转页面是否正确(一般为首页);

    5、要考虑多次点击登录和取消按钮的界面反应;

    6、考虑是否支持多用户在同一机器上登录;

    7、考虑一用户在多台机器上登录;

    8、登录页面中的注册等链接是否正确

    展开全文
  • 大学扫一扫题目出答案软件,可以拍照搜大学题目的app,大学电路分析搜题软件更多相关问题【判断题】CSS可以将网页内容和格式进行分离,提供页面布局更强的控制能力以及更快的下载路遥文学创作梦想的展开和飞翔,离不...

    大学扫一扫题目出答案软件,可以拍照搜大学题目的app,大学电路分析搜题软件

    更多相关问题

    【判断题】CSS可以将网页内容和格式进行分离,提供对页面布局更强的控制能力以及更快的下载

    路遥文学创作梦想的展开和飞翔,离不开曹谷溪、闻频、陶正等人的引导和支持。

    【单选题】下列关于P53描述错误的是

    下面哪些属于王维的诗作()

    二十世纪七十年代后人类提出了可持续发展战略

    【判断题】新闻发布会时机上是单位为树立正面形象而举办的会议。

    设在纯水中难溶强电解质M2A3、M2A、MA2、MA的溶解度分别为1´10-3、 1´10-3、1´10-4、1´10-5mol·L-1,四种物质的Ksp

    【判断题】请判断译文的正误: 原文:我从一星期前开始就生病了。 译文:I have been ill since a week ago.

    对于基态原子中的电子来说,下列各组量子数中不可能存在的是

    【单选题】下列关于P53描述错误的是

    【单选题】The bady _____ an attempt to stand up , but failed. (2.0分)

    【多选题】关于 C 值悖论的描述正确的有哪些?

    【判断题】“单品宝”工具不能制作划线折扣价

    【多选题】下面哪些属于王维的诗作()

    【单选题】治愈白血病最有希望的手段是

    【单选题】诊断贫血较为重要的依据是

    【判断题】满减促销需要客户领券后才能享受优惠

    【多选题】文献综述的“述”包含哪些词语的含义?

    请判断译文的正误:

    原文:我从一星期前开始就生病了。

    译文:I have been ill since a week ago.

    【论述题】阅读下列材料,回答问题。《豌豆荚里的豌豆》课堂教学片段师:刚才我们同学都说到这两种果实里的种子不一样,如果我们要把黑板上的小问号去掉,该怎么办?生1:解剖,剥开……师:要剥开我们得注意,这些

    【多选题】关于 C 值悖论的描述正确的有哪些?

    【单选题】The bady _____ an attempt to stand up , but failed. (2.0分)

    下面哪些属于王维的诗作()

    【单选题】川大记忆项目作为回忆入口的是:

    【单选题】下列关于P53描述错误的是

    【单选题】将同浓度的 HAc 与 NaOH 溶液等体积混合,混合后溶液显

    【单选题】The bady _____ an attempt to stand up , but failed. (2.0分)

    我们可以使用采用喊麦法来锻炼我们的声音。

    我们可以使用采用喊麦法来锻炼我们的声音。

    【单选题】将同浓度的 HAc 与 NaOH 溶液等体积混合,混合后溶液显

    【单选题】孔子说,“仁远乎哉?我欲仁,斯仁至矣”,“有能一日用其力于仁矣乎?我未见力不足者”反映的是中华传统美德中的()

    商品优惠券创建后会自动透出在无线端和PC端

    【多选题】实习生的安全和劳动权利有:()

    【单选题】在讨论艺术作品的本源问题时,用梵高的《一双农鞋》阐述存在主义文论的是( )

    【单选题】川大记忆项目作为回忆入口的是:

    原创文章,作者:长度题库,如若转载,请注明出处:http://www.cctbmz.com/list18/96477.html

    展开全文
  • 今天分享的是小米的嵌入式软件开发工程师的笔试题目。这份题目很奇怪,操作系统,数据结构,网络基础,Java,C++,数据库,正则表达式,Linux都考到了。当时做题的时候,我都怀疑发卷子了。。。还好最后两道大题都...

    哈喽,大家好。我又来分享笔试题目了。今天分享的是小米的嵌入式软件开发工程师的笔试题目。这份题目很奇怪,操作系统,数据结构,网络基础,Java,C++,数据库,正则表达式,Linux都考到了。当时做题的时候,我都怀疑发错卷子了。。。还好最后两道大题都做了出来,否则,笔试很容易就挂了。面试这个公司的时候,一共面了两轮技术面,一轮HR面。最后也收获了Offer。但是,已经是十月中旬,手上没有三方协议了,很可惜,错过了。面经可以参考下这篇文章2020秋招联发科小米等面经分享

    本文已同步更新在github,点击跳转。希望大家能给个star支持下!

    选择题

    1.已经获得除CPU以外的所有所需资源的进程处于()状态

    A 就绪状态

    B 阻塞状态

    C 运行状态

    D 活动状态

    A

    进程的五状态模型:

    运行态:该进程正在执行。

    就绪态:进程已经做好了准备,只要有机会就开始执行。

    阻塞态(等待态):进程在某些事情发生前不能执行,等待阻塞进程的事件完成。

    新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控制块已经创建但是还没有加载到内存中的进程。

    退出态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。

    2.某二叉树的中序遍历序列为32145,后序遍历序列为32145,则前序遍历序列为

    A 54123

    B 32154

    C 32541

    D 54321

    A

    二叉树的中序遍历序列为 32145 ,后序遍历序列为32145 ,可知该树只有左子树结点,没有右子树结点, 5 为根结点。

    中序遍历序列与后序遍历序列相同,说明该树只有左子树没有右子树,因此该树有 5 层,从顶向下依次为54123 。

    具体分析过程也可以参考下北京联发科嵌入式软件工程师笔试题目解析

    3.若已知一个栈的入栈顺序是1,2,3…,n,其输出序列为P1,P2,P3,…Pn,若P1是n,则Pi=()?

    A i

    B n-i+1

    C 不确定

    D n-i

    B

    栈的排列遵循先进后(即后进先出)出的原则

    因为P1是n,是出栈的第一个数字,说明在n之前进栈的数字都没有出栈。所以这个顺序是确定的。

    还可以知道,最后出栈的一定是数字1,也就是Pn。代入这个式子,是正确的。

    4(多选题).下面协议中属于应用层协议的是()

    A ICMP、ARP

    B FTP、 TELNET

    C HTTP、SNMP

    D SMTP、POP3

    BCD

    1、物理层:以太网 、 调制解调器 、 电力线通信(PLC) 、SONET/SDH 、 G.709 、 光导纤维 、 同轴电缆、 双绞线等。

    2、数据链路层:Wi-Fi(IEEE 802.11)、WiMAX(IEEE 802.16) 、ATM 、 DTM 、 令牌环 、以太网、FDDI、 帧中继、 GPRS 、 EVDO、HSPA 、HDLC 、 PPP 、 L2TP 、PPTP 、ISDN·STP、CSMA/CD等。

    3、网络层协议:IP IPv4 、IPv6、 ICMP、ICMPv6·IGMP、IS-IS 、IPsec 、ARP 、RARP 、RIP等。

    4、传输层协议:TCP、 UDP、TLS 、 DCCP、 SCTP 、 RSVP 、OSPF 等。

    5、应用层协议:DHCP 、DNS、 FTP 、Gopher 、 HTTP、 IMAP4 、 IRC、 NNTP 、 XMPP、POP3 、SIP、 SMTP、SNMP 、SSH、TELNET 、 RPC 、RTCP 、RTP 、RTSP、SDP 、 SOAP、GTP、STUN 、NTP、SSDP 、 BGP 等。

    5.下列程序段的时间复杂度是()

    int fact(int n){
    	if(n<=1){
    		return 1;
    	}
    	return n*fact(n-1);
    }
    

    A O(log2n)

    B O(nlog2n)

    C O(n)

    D O(n*n)

    C

    当n<=1时执行return 1这一个语句,每次返回上一层都执行n*fact(n-1)这一个语句,共执行n-1次。因此共执行基本语句n次,时间复杂度为O(n)

    6.下列排序算法中最好情况和最坏情况的时间复杂度相同的是?()

    A 堆排序

    B 快速排序

    C 冒泡排序

    D 归并排序

    A C D

    堆排序在最好和最坏情况下的时间复杂度均为O(nlogn)

    快速排序最好和最坏情况下的时间复杂度分别为O(nlogn)和O(n^2 )

    冒泡排序排序在最好和最坏情况下的时间复杂度均为O(nlogn)

    归并排序在最好和最坏情况下的时间复杂度均为O(nlogn)

    7.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是?()

    A n

    B 2n

    C n-1

    D 2n-1

    A

    归并排序是将两个或两个以上的有序子表合并成一个新的有序表。在归并排序中,核心步骤是将相邻的两个有序序列归并为一个有序序列。

    题目中告诉我们,有两个各有n个元素的有序序列,要将这两个序列归并成一个有序序列,其方法是依次从小到大取每个序列中的元素进行比较,将较小的放进一个新的序列中,直到取完一个有序序列中的所有元素。再把另一个序列中剩下的元素放进新序列的后面即可。

    最好的情况是一个有序序列中的最小元素大于另一个有序序列中的所有元素,这样只需要比较n次。

    8.将递归算法转换为非递归算法通常需要使用()

    A 栈

    B 队列

    C 队列

    D 广义表

    A

    9.在MySql中, productname regexp '[1-3]xiaomi’的含义是()

    A productname 匹配“xiaomi重复1次或5次”的字符串

    B productname 匹配“xiaomi字符串前一个字符为1或3“的字符串

    C productname 匹配“xiaomi重复1到3次”的字符串

    D productname 匹配“xiaomi字符串前一个字符为1到3“的字符串

    D

    10.同个进程的不同线程以下不能被共享的是?()

    A 全局变量

    B 堆

    C 文件句柄

    D 栈

    D

    线程共享的进程环境包括:

    进程代码段、进程的公有资源(如全局变量,利用这些共享的数据,线程很容易的实现相互之间的通信)、进程打开的文件描述符、消息队列、信号的处理器、进程的当前目录、进程用户ID、进程组ID

    线程独占资源:

    线程ID、寄存器组的值、用户栈、内核栈(在一个进程的线程共享堆区(heap))、错误返回码、线程的信号屏蔽码、线程的优先级

    专项选择题

    1.下列Java函数的执行结果是什么()

    static boolean foo(charc)
    {
    	System.out.print(c);
        return true;
    }
    public static void main(string[] args){
        int i = 0;
        for(foo('B');foo('A')&&(i<2);foo('C'))
        {
    		i++;
            foo('D');
        }
    }
    

    A BADCBDCB

    B BACDBACD

    C BADCADCA

    D 运行时抛出异常

    C

    1.其实foo(‘B’);就是初始化条件,只会执行一次,所以第一个打印的肯定是B。

    2.因为i=0;循环条件是i<2 (由此可知,循环i等于2的时候就会停止循环),所以0<2满足条件,接着会输出A。然后执行i++;i就变成1了,在输出D
    ,在最后输出C。一次循环后的结果是:BADC。

    3.第二次循环的开始是foo(‘B’);是初始条件,所以不会执行。直接从foo(‘A’)开始,输出A,然后i为1,且小于2,此时循环体内再次执行i++;i的值为2了,再次输出D,最后输出C。第二次循环输出:ADC。

    4.然后循环再次执行for(foo(‘B’);foo(‘A’)&&(i<2);foo(‘C’)),直接输出A。i的值在第二轮循环后的值变成了2,2<2不成立,终止循环,输出A。

    故输出结果是:BADCADCA。

    2.下列有关软链接表述正确的是?()

    A 不可以对不存在的文件创建软链接

    B 不能对目录创建软链接

    C 和普通件没有什么不同,inode都指向同一个文件在硬量中的区块

    D 保存了其代表的文件的绝对路径是另一种文件。在硬盘上有独立的区块,访问时替代自身路径

    C

    A:错。后半句说的是硬链接。硬链接是共同拥有同一个inode,不过是每个链接名不同,暂时理解成不同的文件名却指向同一文件。一个文件每加一个硬链接linkcount加1。

    B:错。可以对目录创建软链接。如下图所示。

    D:错。可以对不存在的文件创建软链接,如下图所示。

    3.选项中那一行代码可以替换//add code here 而不产生编译错误()

    public abstruct class MyClass{
        publicint testInt = 5;
        //addcode here
        publicvoid method(){  
        }
    }
    

    A public abstruct void another Method(){}

    B testInt = testInt * 5

    C public int method();

    D public abstruct void another Method(int a)

    D

    A:该项方法有abstract修饰,所以是抽象方法,由于抽象方法不能有方法体,所以A项错误

    B:类体中只能定义变量和方法,不能有其他语句,所以B项错误

    C:选项中的方法和类中的方法重复,所以会发生编译异常,所以C项错误

    4.有关Java静态初始化块说法不正确的是?()

    A 用户可以控制何时执行静态初始化块

    B 无法直接词用静态初始化块

    C 在创建第一个实例前,将自动调用静态初始化块来初始化

    D 静态初始化块没有访问修饰符和参数

    A

    JAVA的初始化顺序:

    父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法

    5(多选题)以下分别对变量a给出定义,正确的有()

    A 一个有10个指针的数组,该指针指向同一个整型数:int *a[10];

    B 一个指向10个整型数组的指针:int ( *a)[10];

    C 一个指向函数的指针,该函数有一个整型数并返回一个整型数:int *a(int);

    D 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数:int ( *a[10])(int);

    ABD

    C改为:int (*a)(int)

    指针数组:首先是一个数组,数组里面的元素都是指针;(存储指针的数组)

    数组指针:首先是一个指针,指针指向一个一维数组;(指向数组的指针)

    函数指针:一定要理解,回调中经常使用函数指针;

    指针函数:就是一个普通函数,只是返回值是指针形式;

    6(多选题)下列叙述正确的是()

    A 指针可以为空,引用不能为空。

    B 不存在指向空值的引用,但是存在指向空值的指针

    C 引用必须被初始化,但是指针不必

    D 指针初化后不能被改变,引用可以改变所指对象

    ABC

    D:引用初始化以后不能被改变,指针可以改变所指的对象

    7.下列关于C++容器描述错误的是?()

    A list类型支持双向顺序访问,在list中任何位置插入删除都很快

    B deque类型支持快速顺序访间,在头尾插入/删除速度很快

    C C++标准库map的底层实现为红黑树

    D vector类型在每次调用 pushback时都在栈上开辟新内存

    B

    deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。

    8(多选题)C++中,下列数据类型的转换,哪个可能会发生信息丢失?

    A int -> double

    B int -> long

    C long -> float

    D int -> char

    CD

    精度丢失只会发生在从大范围到小范围的转换

    32位编译器:

    char short int long float double 指针

    1 2 4 4 4 8 4

    64位编译器:

    char short int long float double 指针

    1 2 4 8 4 8 8

    9.在Java中,要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以()

    A 使用 private关键字

    B 让该类不使用任何关键字

    C 使用public关键字

    D 使用protected关键字

    B

    default和protected的区别是:

    前者只要是外部包,就不允许访问。

    后者只要是子类就允许访问,即使子类位于外部包。

    总结:default拒绝一切包外访问;protected接受包外的子类访问

    10(多选题)list和vector的区别有哪些()

    A vector拥有一段连续的内存空间,因此支持随机存取,如果需要高效的随即存取,而不在乎插入和删除的效率,使用 vector.

    B list拥有一段不连续的内存空间,因此支持随机存取,如果需要大量的插入和删除,而不关心随即存取,则应使用list

    C 已知需要存储的元素时,使用list较好

    D 如果需要任意位置插入元素,使用 vector较好

    AB

    C:已知需要存储的元素时,vector要好

    D:如果需要任意位置插入元素,list要好

    编程题1(字符串筛选)

    给定一个字符串,需要去除所有之前曾经出现过的字符,只保留第一次出现的字符。

    样例输入:hello,welcome to xiaomi

    样例输出:helo,wcmtxia

     思路

    1. 首先需要定义两个数组,分别为“输入的字符串数组”old[ ] 以及 “输出的字符串数组” new[ ];

    2. 取old数组中的第一个字符去和new数组中的每一个字符串相比较是否相同,若出现相同,则取old数组的下一个字符再次与new中每一个字符相比较,若都不相同则存入new的数组中;

    3. 最后输出数组new;

    代码

    #include <stdio.h>
    void killsame(char *o, char *n)
    {
      int i=0, j, k=0;
      int label;
      
      while(o[i] != '\0')
      {
      	label = 1;
      	for(j=0; j<i; j++)
      	{
      		if (o[i] == n[j])
      			label = 0;  //一旦相同标志位置0
      	}
      	if(label)  // 不相等
      		n[k++]=o[i];
      	i++;
      }	
      n[k]='\0';  //结尾给\0
      puts(n);  //输出
    }
    
    int main(void)
    {
      printf("Please input a string you want:\n");
      char old[126]; 
      char new[126];
      scanf("%s",old);
      killsame(old, new);//去重
      return 0;
    }
    

    编程题2(字符串有效判断)

    给定一个只包括’’(’,’)’,’{’,’}’,’[’,’]'的字符串,判断字符串是否有效

    有效字符串需满足:

    1.左括号必须使用相同类型的右括号闭合

    2.左括号必须以正确的顺序闭合

    注意空字符串可被认为是有效字符串

    输入描述:待判断的字符串,多个字符串需换行输入

    输出描述:每个字符串的判断结果,多个结果需换行输出

    样例输入:
    () [] {}
    样例输出:
    true

    样例输入:
    ([)]
    样例输出:
    false

    样例输入:
    {[]}
    样例输出:
    true

    思路

    栈先入后出特点恰好与本题括号排序特点一致,所以用栈来实现。

    当左括号出现的时候入栈,当右括号出现的出栈,如果匹配就继续,不匹配就错误。

    当字符串遍历完成之后,栈内仍有字符串就错误。

    用一个数组进行和一个记录栈顶值的int进行了栈的模拟,代码很简单,很好理解。

    代码

    #include <stdiio.h>
    bool isValid(char * s){
       
        int len = strlen(s);
        char stack[3500];
        int top = -1;
        int i = 0;
        for( i=0;i<len;i++)
        {
          if((s[i] == '(')||(s[i] == '{')||(s[i] == '['))
            stack[++top] = s[i];
          else
            {
                   if(top<0)//出现了右括号,但数组为空,即没有左括号与之匹配
                    return false;
                    if((s[i] == ')'))
                    {
                         if(stack[top]!='(') return false;
                         else top--;
                    }
    
                 if((s[i] == '}'))  
                 {
                  if(stack[top]!='{') return false;
                   else top--;
                 }
            
                if((s[i] == ']'))  
                {
                  if(stack[top]!='[') return false;  
                  else top--;
                }
    
            }   
        }
        if(top>=0) //数组内仍有左括号,没有右括号与之匹配
            return false;\
            //这里一定要有返回值
             return true;
    }
    int main(void)
    {
    	printf("Please enter a bunch of brackets:\n");
    	char brackets[100]; 
    	scanf("%s",brackets);
    	printf(isValid(brackets));  
        return 0;
    }
    

    今天的题目就分享到这里,下一篇文章,将会分享大厂的笔试题目解析。

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/qq_16933601/article/details/115752525

    展开全文
  • 软件测试题目

    千次阅读 2019-10-30 10:21:24
    单项选择题:共20小题,每小题1 分,满分20分;请将答案填入题后括号中。...1.在软件生命周期的哪一个阶段,软件缺陷修复费用最低 ( A ) (A)需求分析(编制产品说明书) (B)设计 (C) 编码(D)产品发布 2....
  • 软件测试题目汇总

    千次阅读 2020-06-09 21:28:49
    软件测试:为了发现软件产品中的各种缺陷,而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期。 简单的说,软件测试是以发现错误为目的而执行的一个程序或系统的过程。 软件测试的目的: 1....
  • 2021年4月蓝桥杯软件类省赛:题目+解析(完整版)

    万次阅读 多人点赞 2021-04-22 14:40:56
    题目+解答 2020年4月蓝桥杯(软件类)第二次模拟赛:题目+解答 2020年3月蓝桥杯(软件类)第一次模拟赛:题目+解答 2019年4月蓝桥杯(软件类)省赛:真题+解答 第一题:卡片 解析: 首先要理清题目:从1开始,从小往...
  • 广东开心版小学英语点读学习软件根据人教版教材编写,发音标准。...软件会在显出相应单元的单词或句子的读音,用户可以把正确的内容写入文本框,点确认判断对错。 广东开心版小学英语点读学习软件截图
  • 1、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。(初级) ( × ) 2、发现错误多的模块,残留在模块中的错误也多。( √ ) (初级) 3...
  • 白盒测试题目

    2015-06-23 16:23:52
    这个是白盒测试的一个题目,只是一个题目,没有答案
  • 2020年10月蓝桥杯(软件类)省赛:题目+解答

    千次阅读 多人点赞 2020-10-23 00:48:11
    系列文章: 2020年3月蓝桥杯(软件类)第一次模拟赛:题目+解答 2020年4月蓝桥杯(软件类)第二次模拟赛:题目+解答 一、填空题 试题A:门牌制作 (5分) 【问题描述】 小蓝要为一条街的住户制作门牌号。 这条街一共...
  • 2019-软件工程.doc

    2022-07-02 09:21:27
    ()是职业软件工程师的... 三个不同的概念 题目5 还未回答 满分1.00 未标记标记题目 题干 软件对硬件和环境有着不同程度的依赖性,这导致了软件()问题。 选择一项: A. 通用性 B. 复杂性 C. 升级和移植 D. 脆弱性
  • 小学生计算题生成软件,自动生成20道加减乘除题,自动判断评分,生成的题目可保存为TXT文本格式,自动判断评分
  • 软件测试工程师笔试题目

    万次阅读 多人点赞 2018-11-04 22:00:53
    软件测试工程师笔试题目   一.选择题   1、 系统测试使用( C )技术, 主要测试被测应用的高级互操作性需求, 而无需考虑被测试应用的内部结构。 A、 单元测试 B、 集成测试 C、 黑盒测试 D、白盒测试   2...
  • 问题:输入两个ip区间段,判断是否有交集Python3版解决方案ip1 = input() ip2 = input() ip3 = input() ip4 = input() def transIp2Num(ip): _1,_2,_3,_4 = ip.split('.') num = int(_4)*1 + int(_3)*256 + int(_2...
  • 北邮复试 机试
  • 软件工程期末考试题库(超全)

    万次阅读 多人点赞 2020-12-18 18:25:49
    软件工程期末考试题库 选择题 具有风险分析的软件生命周期模型是(  C   )。 A.瀑布模型      B.喷泉模型  C.螺旋模型        D.增量模型 软件工程的基本要素包括方法、工具和( A )。 ...
  • 最新国家开放大学电大专科管理信息系统机考网考判断题题库及答案 判断题目1 企业的组织结构犹如一个金字塔自上而下责权递减但人数递增 选择一项 题目2 软件工程的方法大约产生于20世纪90年代 选择一项 ...
  • 最新国家开放大学电大专科管理信息系统机考网考判断题题库及答案 ?最新国家开放大学电大专科管理信息系统机考网考判断题题库及答案 ?判断题 ?题目1 ?企业的组织结构犹如一个金字塔自上而下责权递减但人数递增 ?选择...
  • 精挑细选,整理了100道软件测试面试题,都是非常常见的面试题,篇幅较长,所以只放出了题目,答案在评论区! 测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 2、我现在有个程序,发现在 Windows ...
  • 2086道Python客观题+456道Python编程题在线练习软件,所有题目自动判断对错,并不定期增加新题目。提供游客账号,也可以免费注册正式账号使用更多功能,例如只查看未答题目或只查看特定章节的题目。任课教师可以联系...
  • 软件测试工程师笔试题,试卷内包含分数
  • 软件测试基础题目

    千次阅读 2018-08-03 11:11:09
    验收测试:购买者对软件的试用过程。黑盒 回归测试:在软件维护阶段,验收测试结果进行验证和修改。 8、 简要画出软件测试V模型?   8、 简要画出软件测试W模型?       8、...
  • 2020年 第十一届 蓝桥杯 软件类Java B组 决赛 (国赛) 题目 + 个人答案试题 A: 美丽的 2试题 B: 扩散试题 C: 阶乘约数试题 D: 本质上升序列试题 E: 玩具蛇试题 F: 皮亚诺曲线距离试题 G: 游园安排试题 H: 答疑试题 ...
  • 最新国家开放人学电人专科管理信息系统机考网考判断题题库及答案 判断题目1 企业的组织结构犹如一个金字塔自上而下责权递减但人数递增 选择一项 题日2 软件工程的方法大约产生于20世纪90年代 选择一项 ...
  • 下面我就介绍一个可以自动完成选项变换和题目变换的一个软件,能够一键解决你导入题目时候遇到的难题。 木木试题助手 有图有真相 http://mutou888.com/projects/exam/index.html 可随机打乱试题选项和试题...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,070
精华内容 20,428
关键字:

判断题目对错的软件