什么是软件测试
- 发现程序员在开发中存在的代码以及逻辑错误
- 审核产品的完成是否符合用户需求
- 提高用户体验
- 交付更高质量的产品 4. 交付更高质量的产品
怎么搭建测试环境
1,确定系统
2,安装服务器
3,安装jdk 配置环境变量
4,安装数据库 配置数据库
软件测试的原则:
测试用例中一个必须部分是对预期输出或接过进行定义程序员应避免测试自己编写的程序编写软件的组织不应当测试自己编写的软件应当彻底检查每个测试的执行结果测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”应避免测试用例用后即弃,除非软件本身就是个一次性的软件计划测试工作时不应默许假定不会发现错误程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比软件测试是一项极富创造性,极具智力的挑战性的工作
一份测试计划应该包括哪些内容?
背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。
测试项目的流程中一般有 测试策划 、 测试设计 、 测试准备 、 测试执行 、 测试总结 五个阶段
性能测试,负载测试,压力测试有什么区别
性能测试(Performance Test):通常收集所有和测试有关的所有性能,被不同人在不同场合下进行使用。
压力测试stress test:是在一定的『负荷条件』下,长时间连续运行系统给系统性能造成的影响。 负载测试Load test:在一定的『工作负荷』下,给系统造成的负荷及系统响应的时间。
软件测试流程:测试计划-》需求分析-》测试用例-》测试用例执行-》提交bug-》回归测试
软件得生命周期计划 需求分析 设计 编码 测试 运行维护
Bug的生命周期生命周期中的一般缺陷状态:新建–>指派–>已解决–>待验–>关闭 如果待验的bug在验证时没有解决好,我们则需要进行循环,重新指派 中间其他状态:拒绝、延期等。
提交 确认 分配 修复 验证 关闭
OSI网络7层协议
应用层 会话层 表示层 传输层 网络层 数据链路层 物理层
7、缺陷报告的组成
编号 标题 发现者 日期 所属模块 版本 处理人 缺陷状态 严重程度 优先级 缺陷描述
缺陷的状态(status)表明缺陷此时所处的情况或处理状态
(1)测试人员发现bug,把缺陷的状态写成:new(新提交的bug)
(2)开发经理看到此bug,进行验证,如果是bug,把缺陷状态改为:open(打开的bug,开发组承认的bug);如果不是bug,把缺陷状态改为:rejected(拒绝的bug)
(3)开发人员看到指派给自己的bug,进行bug修改,修改完后,把状态改为:fixed(已经修复的bug,待返测的bug)
(4)测试人员对修复的bug进行返测,如果返测成功,把bug的状态改为:closed(关闭的bug,归档的bug);如果返测失败,把bug的状态改为:reopen(重新打开的bug,返测为通过的bug)整个过程称为缺陷的处理流程(缺陷的跟踪过程)
9、如果提交高质量缺陷?
一个报告提交一个缺陷
缺陷描述的清晰 易读 准确
对优先级和严重程度划分准确
所提交的缺陷不错任何评价
不可重复的缺陷也要提交
黑盒测试设计测试用例的方法有哪些?
等价划分法
边界值
因果图
判定表
场景法
正交排列法
测试大纲法
白盒常用的测试方法
语句覆盖 判定覆盖 条件覆盖
简单描述回归测试、冒烟测试、随机测试
回归测试:是指修改旧代码后,重新进行测试以确认修改后有没有引入新的错误或者导致其他代码产生错误
冒烟测试:是指对一个新版本进行大规模的系统测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。引入到软件测试中,就是指测试小组正式测试一个新版本之前,先投入较少的人力和时间去验证一个软件的主要功能,如果主要功能都没有运行通过,则打回开发组重新开发,这样做的好处是可以节省时间和人力投入到不可测的项目中
随机测试:是指测试中的所有的输入数据都是随机产生的,其他的目的是模拟用户的真是操作,并发现一些边缘性的问题。随机性的测试可以发现一些隐蔽的错误,但是也有很多缺点,例如测试不统计、无法统计代码覆盖率和需求盖率、发现的问题难以重现。一般是在放下测试的最后执行,随机测试更专业的升级版本叫做探索性测试。
20、简单描述单元测试、集成测试、系统测试、验收测试
单元测试:通过模块(类/方法/函数)测试,使代码达到设计要求 主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
集成测试:将经过单元测试的模块逐步组装成完整的程序。 主要目的是检查各单元与其它程序部分之间的接口是否存在问题,各模块功能之间是否有影响。
系统测试:是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起进行测试。 系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方 ,进行改正。
验收测试:验收测试是在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的最后一次软件测试活动,也称为交付测试。 通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要
23、如何测试一个登陆页面
1,什么都不输入,点击提交按钮,看提示信息。
2,输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。
3,输入错误的用户名或者是密码,验证登录失败,并且提示相应的错误信息。
4,登陆成功后能否跳转到正确的页面
5,用户名和密码,如果太短或者是太长,应该怎么处理
6,用户名和密码,中有特殊字符(比如空格)和其他非英文的情况如何处理
7,记住用户名的功能
8,用户名和密码前后有空格的处理
9,密码是否加密
10,如果有验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个颜色是否好用
11,登录页面中的注册、忘记密码,登出用另一个账号登录等连接是都正确
12,输入密码时候,大写键盘开启的时候要有提示信息
Q、什么是测试用例一组由前提条件、输入、执行条件、预期结果等组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档
1,写测试用例,需要设计说明书和软件模板
2、测试用例主要包含哪些内容:编号、日期、设计和测试人员、优先级、标题、目标、环境、输入数据/动作、预期结果2,设计测试用例的原则:正确性,代表性,可判断性,重现性
3,用例的管理过程:编写→评审(修改→再次评审)→使用→保存管理→维护/升级