一、阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪些?
软件生命周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程(从酝酿到废弃的过程)
生命周期从收到应用软件开始算起,到该软件不再使用为止。它有如下各方面的内容:初始构思、需求分析、功能设计、内部设计、文档计划、测试计划、文档准备、集成、测试、维护、升级、再测试、逐步淘汰(phase-out)、等等常见的软件生命周期模型:瀑布模型,迭代式模型,快速原型模型,螺旋模型
二、什么是版本控制,常用的版本控制系统有哪些?
版本控制(Revision control)是一种软件工程技巧,在在开发的过程中,确保由不同人所编辑的
同一文件都得到更新及历史记录的保存。
Git(读音为/gt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到。常大的项目版本管理。Git是Linus Torvalds 为了帮助管理Linux内核开发而开发的一个开放源码的本控制软件。https://git-scm.com/doc
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS 迁
移Subversion 。
https://tortoisesvn.net/support.html
三、简述软件测试与软件开发之间的关系?
1.项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。
2.需求分析阶段:确定测试需求分析、系统测试计划的制定,评审后成为管理项目。测试需求分析是对产品生命周期中测试所需求的资源、配置、每阶段评判通过的规约;系统测试计划则是依据软件的需求规格说明书,制定测试计划和设计相应的测试用例。
3.详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。
4.编码阶段:由开发人员进行自己负责部分码的测试。在项目较大时,由专人进行编段的测试任务。
5.测试阶段(单元、集成、系统测试):依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。
开发和测试是一个有机的整体!在产品的发布之前,开发和测试是循环进行的,测出的缺陷要经开发人员修改后继续测试。在开发的同时测试经理开始编写测试用例,测试文档要参考开发文档,所以开发和测试是不可分割的,少了任何一个都不能开发出产品。
从角色方面看,像理论和实验的关系,开发人员通过自己的想象创造出一套思想,之后测试人员再对它进行检验、证伪,开发人员再修改的过程从而不断丰富产品。从方法方面看,是演绎和归纳的关系,一个要掌握大量的技一个要不断的从实例中学习。因这两方面的不同,所以开发和测试看上去做的工作很不一样。
开发与测试是相辅相承、密不可分的,开发人员开发出新的产品后要通过测试判断产品是否完全满足用户的需求。如果发现缺陷,提交给开发人员进行修复,然后再转交测试人员进行回归测试,直到产品符合需求规格说明。一个符合用户需求的产品是开发和测试共同努力的成果
四、请说出XHTML和HTML的区别
1、文档顶部doctype声明不同,xhtml的doctype顶部声明中明确规定了xhtml DTD的写法;
2、html元素必须正确嵌套,不能乱;
3、属性必须是小写的;
4、属性值必须加引号;
5、标签必须有结束,单标签也应该用“/”束掉;
五、.请写出至少5个HTML块元素标签
div p ul li table h1 h2 h3 ... h6 form 等
六、请写出至少5个HTML行内元素标签
span a i label img input button textarea select等
七、在linux中find和grep的区别?
Linux系统中 grep 命令是一中强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep 全称是Global RegularExpression Print,表示全局正则表达式版本,它的使用权限是所有用户。
linux下的find:
功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。
语法:find 起始目录寻找条件操作说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件。
八、为什么要使用数据库
数据保存在内存
优点:存取速度快
缺点:数据不能永久保存
数据保存在文件
优点:数据永久保存
缺点:1)速度比内存操作慢,频繁的I0操作。
2)查询数据不方便
数据保存在数据库
1)数据永久保存
2)使用SQL语句,查询方便效率高。
3)管理数据方便
九、什么是MySQL?
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle 旗下产品。
MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS
(Relational Database Management System ,关系数据库管理系统)应用软件之一。
在Java企业级开发中非常常用,因为MySQL是开源免费的,并且方便扩展。
十、.HTTP的get请求和post请求的区别?
1.在客户端,Get 方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
2.GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
3.安全性问题。正如在(1)中提到,使用Get的时候,参数会显示在地址栏上,而Post不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入据不是中文字符而且包含敏感数据,那么使用post 为好。
4.安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一URL的多个请求应该返回同样的结果。
十一、为什么将Python 作为编程的入门语言
因为他具备以下特质:
1.解释性
2.动态特性
3.面向对象
4.语法简洁
5.开源
6.丰富的社区资源
实际上 Python的优点远不止这些
十二、isinstance和type的区别
type0不会认为子类是一种父类类型。
isinstance(会认为子类是一种父类类型。
十三、range和xrange的区别?
两者用法相同,不同的是 range 返回的结果是一个列表,而 xrange的结果是一个生成器,前者
是直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所
以当列表很长时,使用xrange 性能要比range 好。
十四、如何理解Python 中字符串中的字符?
有三种不同的含义:
1、转义字符2、路径名中用来连接路径名3、编写太长代码手动软换行。
十五、谈谈你对面向对象的理解?
面向对象是相对于面向过程而言的。面向过程语言是一种基于功能分析的、以算法为中心的程序
设计方法;而面向对象是一种基于结构分析的、以数据为中心的程序设计思想。在面向对象语言
中有一个有很重要东西,叫做类。面向对象有三大特性:封装、继承、多态。
十六、常用的 Python 标准库都有哪些?
os 操作系统,time 时间,random 随机,pymysql连接数据库,threading 线程,multiprocessing进程,queue 队列。
第三方库:django 和flask 也是第三方库,requests , virtualenv, selenium , scrapy ,
xadmin , celery , re, hashlib , md5。
常用的科学计算库(如Numpy,ScipyPandas)。
十七、apache和nginx的区别?
Nginx相对Apache的优点:
轻量级,同样起web 服务,比apache 占用更少的内存及资源;
抗并发,nginx处理请求是异步非阻塞的,支持更多的并发连接,而 apache则是阻塞型的,在
高并发下nginx能保持低资源低消耗高性能;
配置简洁;
高度模块化的设计,编写模块相对简单;社区活
跃。
Apache相对Nginx 的优点:rewritenginx的rewrite 强大;模块超多,基本想到的都可以找到;少 bug,nginx的bug相对较多;超稳定。
十八、什么是API?
API是(Application Programming Interface)首字母缩略词,即应用程序编程接口。
API是一组用于构建软件应用程序的规程,协议和工具。
API充当软件应用程序之间的接口,并允许两个软件应用程序相互通信。
API是一组软件功能,可以由其他软件执行。
十九、列举API测试中使用的一些常用协议?
thrift
HTTP
REST
SOAP
JMS
UDDI
dubbo
二十、如何对app进行弱网测试
弱网测试可以测试APP的加载时间、可用性、稳定性和健壮性。这时我们就可以借助工具来模拟
不同的网络状况,模拟2G、3G或弱网情况进行测试。工具可以选择Fiddler 也可以选择 Charles
也可以选择其他工具。
以上就是我总结的一部分软件测试面试题,大家感兴趣可以关注我,持续更新中~