测试用例

测试用例编写

感情迁移 提交于 2019-12-02 06:26:29
一、前置知识点: 软件相关知识,软件测试基础,测试流程(需求分析,计划的制定,测试用例的编写与执行,对测试结果的分析报告),测试生命周期 按软件测试手段划分:黑盒(不知道内部结构,根据软件暴露出来的结构,功能进行测试)、灰盒(半透明盒子,少数内部结构,可进行数据对比,如订单功能,更具生成的订单与数据库数据进行对比,验证是否一致)、白盒(技术难度最高,根据软件结构推出其功能) 软件测试方向:功能(验证软件是否满足用户的表面需求)、性能(测试软件的工作效率)、安全(测试软件能够保护用户信息) 测试点划分:兼容性(软件在不同平台上的表现)、易用性(软件是否友好,符合用户使用习惯)、UI元素(页面布局与需求是否一致是否美观) 二、如何编写测试用例(文档) 是测试工作后的核心,一组在测试时输入输出的标准,软件需求的具体对照 作用:检验软件是否满足客户需求,体现一个测试人员的工作量,展现测试用例的设计思路 包含内容:用例编号(ID)、用例名称(言简意赅)、测试背景(属于哪个部分)、前置条件(满足的条件)、优先级、重要级、测试数据(输入)、测试步骤、预期结果,实际结果、备注 三、编写流程: 需求分析--提取测试点--测试用例编写--测试用例评审 需求分析(业务需求{关注系统是否满足业务}、用户需求{关注系统是否满足用户习惯}、功能需求{关注系统是否满足功能要求}) 来源: https:/

Python接口测试框架实战与自动化进阶✍✍✍

帅比萌擦擦* 提交于 2019-12-02 05:50:36
Python接口测试框架实战与自动化进阶 一、fiddler在工作中的运用 1、如何抓接口  抓紧手机端接口    ①、在电脑终端输入:ipconfig ,找到电脑ip    ②、打开手机,连接WiFi,进入WiFi详情,改用手动代理,将ip设置为电脑端的ip,端口默认(8888)      ③、打开fiddler,找到并打开Fiddler Options ,选择Connections栏,做如下改动:    这样就可以尝试抓取接口了。 注: Python requests中文文档参考: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html 二、unittest使用 python自带的包 1、unittest简单使用 使用 unittest的test类:TestCase ,重载相关方法: import unittest class TestMethod(unittest.TestCase): @classmethod def setUpClass(cls): print('重载setUpClass类方法,类实例化(初始化)时调用') @classmethod def tearDownClass(cls): print('重载tearDownClass方法,所有方法执行完后调用') def setUp

测试的复习大纲

帅比萌擦擦* 提交于 2019-12-01 19:51:10
花了一个多星期整理上课使用的ppt,书写不易,请大家多多支持 文章目录 概述 计算机系统的软件可靠性问题 软件质量 软件可靠性 度量 软件故障 定义 错误 故障 失效 软件测试与软件可靠性 软件测试 软件生存周期 黑盒测试 测试原则 黑盒测试与白盒测试 黑盒测试 白盒测试 软件测试过程 单元测试 静态测试与动态测试 静态测试 动态测试 回归测试 $\alpha$测试 $\beta$测试 测试与调试 测试生命周期 测试工具 测试评估 软件质量评估 软件过程成熟度 第二章 三角形问题 NextDate函数 股佣金问题 功能性测试(黑盒测试) 优点 问题 常用测试方法 边界值分析 等价类测试 基于决策表的测试 第三章 结构性测试 结构性测试 常见的白盒测试方法有: 逻辑覆盖 程序控制图 McCabe的基本路径法 测试观点 符号测试 基本思想 程序插装 考虑的方面 用途 指导方针 基本原则 覆盖指标 数据流测试 定义/使用测试 定义/使用路径覆盖测试 概述 计算机系统的软件可靠性问题 1994年,Intel奔腾芯片缺陷 千年虫问题 ”冲击波“计算机病毒 2008年奥运会门票预售叫停 系统访问量超8倍 票务系统抗压测试 性能测试 软件质量 软件质量包括正确性,可靠性,可读性,可移植性和健壮性,主要含义是软件的可靠性 软件可靠性 特定环境下,在给定时间内,无障碍运行的概率 度量

使用TestNG框架测试用例执行顺序问题

情到浓时终转凉″ 提交于 2019-12-01 19:21:09
既然是讨论执行顺序问题,那么用例肯定是批量执行的,批量执行的方法有mvn test、直接运行testng.xml文件,其中直接运行testng.xml文件的效果与pom文件中配置执行testng.xml效果是一样,所以本次只讨论mvn test 批量运行方式 一、用例准备 1、 测试用例 编写一些测试用例,单纯为了测试,内容只进行输入,没有任何逻辑。 public class FirstTest { @Test public void testFirst(){ System.err.println("first test"); } } 2、pom文件配置 要使用mvn test方式批量运行用例,需要在pom文件中配置一下内容 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> </plugin> </plugins> </build> 二、执行顺序梳理 1、mvn test 默认顺序 如果pom文件只是进行了上步骤的配置,那么执行mvn test,用例是多线程无序执行的,如果要按顺序执行要配置为单线程,在<plugin>标签内增加如下配置

ERP测试用例设计

旧巷老猫 提交于 2019-12-01 18:52:42
1、一般的ERP系统设计大概包括以下几方面: 功能测试 、业务流程测试、数据逻辑测试、接口测试、兼容性测试、 性能测试 、易用性测试、用户体验测试等等; 2、ERP系统测试用例分为几类来写比较好:功能用例、业务流程用例、数据逻辑用例、接口用例, 最好是把功能与流程类的测试用例分开来写; 测试用例应该从以下几个方面入手: 一、功能用例设计:相对而言比较简单,根据需求规格说明书、界面原型提取测试功能点/项, 运用等价类、边界值、错误猜测、正交表等基本用例设计方法来设计; 需要根据文档/功能点/业务的变化进行修订/细化用例,提高功能用例的覆盖度; 如:身份证输入文本框,需要用到等类、边界值等方法,需要考虑15位和18位的身份证,需要考虑末位为字母的情况等…… 二、业务流程用例设计:关键在于理解实际业务、实际应用场景,最常用的操作过程和使用方法,必要时还要考虑操作习惯; 首先,需要结合业务模型或业务流程图,同需求分析人员、业务专家共同确认实际业务流程/运用场景,整理清楚最基本最常用的业务流程和应用场景; 接着,理清用例设计思路,画出用例设计流图,确定流程用例模板和风格; 然后,运用场景法、数据流程设计法、基本路径等方法设计业务流程用例; 1、简单模块流程单一,无分支或者分支少,用例设计也比较容易,根据业务流程设计测试数据; 2、复杂模块/子系统/系统,必定会存在多个分支

测试工程师面试常见问题(测试基础,人事问题,自由提问环节)

时光总嘲笑我的痴心妄想 提交于 2019-12-01 18:14:14
对测试面试常见问题做一些总结归纳,以便后期查找: 测试基础: 1.项目流程 2.测试流程 3.bug包含哪些元素 4.bug的生命周期 5.用例包含哪些元素 6.怎么提一个质量比较高的bug 7.如果没有需求文档或者产品说明书,可以进行测试吗?可以从哪些方面开展测试? 8.如果你提了一个bug,开发觉得不是一个bug,你会怎么处理? 9.你项目中用了哪些工具,掌握到什么程度? 10.为什么要写测试用例?写测试用例的关键是什么? 11.如果两天后项目就要发版了,但是你的工作还没有做完,你会怎么做? 12.你印象最深的一个bug是什么?是什么原因引起的?是怎么解决的? 13.你印象最深的一个用例是什么? 14.如果你对接的开发老是犯一些低级错误,你会怎么处理? 15.如果在工作中你和领导的意见不一致,你会怎么处理? 16.你认为一个好的用例的评判标准是什么? 17.你写用例一般从哪些方面考虑? 18.你了解哪些测试方法,请举例说明。 程序题: 冒泡排序等 考察基本编程能力和编程思想 人事问题: 1.近3-5年的职业规划? 2.你觉得你想对其他人有什么优势? 3.稳定性? 4.是否愿意加班? 5.为什么想从事测试工作? 6.你找工作时,最考虑的因素是什么? 7.你对我们公司有过什么了解吗? 8.如果在工作中,你和领导的意见不一致,你会怎么解决? 你可以对公司提问: 1.什么时候可以转正?

软件测试工程师经典面试题

a 夏天 提交于 2019-12-01 18:12:28
  软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架性的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块 (一到两年工作经验) 。今天这篇帖子主要讲解之前面试自己面试过程中或者周围人面试过程中经常被问到且比较经典的面试题,一家之言,如有异议或者有想问的问题,可以在评论区留言,看到后将在第一时间内回复! 1、软件测试的流程是什么?    分析: 每当HR问一个问题的时候我们都可以用1~2s的时间去想HR想要从这个问题中获取什么信息,这点搞清楚之后再去回答就很好回答了。如果有工作经验,直接按照公司流程回答即可,如果是刚转行或者刚实习,那按标准回答即可,文中回答仅供参考;    回答: 项目经理或者PD把项目需求文档提前下发给相关的研发人员,研发人员抽出一定的时间记录文档内需求不明确或者遗漏的点为后面的评审做准备;在需求评审会议上,各研发人员提出自己的疑问并解决,需求评审最终通过之后会出一份最终的需求规格说明书; (需求评审阶段)     需求规格说明书评审通过后,开发经理开始编写开发计划,测试经理开始编写测试计划

Pytest从测试类外为测试用例动态注入数据

半世苍凉 提交于 2019-12-01 17:04:09
今天Nelly问我Pytest能不能支持从TestClass类外传入参数?从类外批量传入各个test方法需要的参数。因为数据文件可能有很多情况,不方便依次匹配。 然而又必须用类对用例进行归类及复用,数据要通过类外进行遍历。不能直接使用pytest.mark.parametrize。 这里采取的一个做法是: 添加命令行选项 --data,接受一个yaml文件 data这个fixture方法里,获取--data传进来的文件路径,打开并加载所有数据,从request中获取调用data 的用例名,从所有数据中取出该条用例的数据返回 具体参考以下代码: data.yaml文件内容,注意数据字段要与测试方法名一致,方便自动对应数据。 test_a: a: 1 b: 2 test_b: a: 3 b: 4 conftest.py文件内容 import pytest import yaml def pytest_addoption(parser): # 添加运行参数 parser.addoption("--data", action="store", help="data file") @pytest.fixture def data(request): file_path = request.config.getoption("--data") # 获取--data参数传的文件路径 with

Python接口测试框架实战与自动化进阶 学习 教程

假如想象 提交于 2019-12-01 15:13:07
Python接口测试框架实战与自动化进阶 学习 教程 一、fiddler在工作中的运用 1、如何抓接口  抓紧手机端接口   ①、在电脑终端输入:ipconfig ,找到电脑ip   ②、打开手机,连接WiFi,进入WiFi详情,改用手动代理,将ip设置为电脑端的ip,端口默认(8888)     ③、打开fiddler,找到并打开Fiddler Options ,选择Connections栏,做如下改动:    这样就可以尝试抓取接口了。 注:Python requests中文文档参考: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html 二、unittest使用 python自带的包 1、unittest简单使用 使用unittest的test类:TestCase ,重载相关方法: import unittest class TestMethod(unittest.TestCase): @classmethod def setUpClass(cls): print('重载setUpClass类方法,类实例化(初始化)时调用') @classmethod def tearDownClass(cls): print('重载tearDownClass方法,所有方法执行完后调用') def setUp

Pytest命令行执行测试

こ雲淡風輕ζ 提交于 2019-12-01 11:59:43
Pytest命令行执行测试 from collections import namedtuple Task = namedtuple('Task', ['summary','owner','done','id']) # __new__.__defaults__创建默认的Task对象 Task.__new__.__defaults__ = (None, None, False, None) def test_default(): """ 如果不传任何参数,则默认调用缺省对象Task.__new__.__defaults__ = (None, None, False, None) """ t1 = Task() t2 = Task(None, None, False, None) assert t1 == t2 def test_member_access(): """ 利用属性名来访问对象成员 :return: """ t = Task('buy milk', 'brian') assert t.summary == 'buy milk' assert t.owner == 'brian' assert(t.done, t.id) == (False, None) def test_asdict(): """ _asdict()返回一个字典 """ t_task = Task('do