问题总结

【问题总结】测试流程

  1. 你们项目组测试流程是什么?
    (1)先从配置库获取需求文档,参加需求评审
    需求评审的参与者是全体项目组成员,包括产品经理,项目经理,开发,测试。主要由产品经理介绍本次项目的业务流程,并解决开发或测试提出的需求疑问。
    (2)等需求明确以后,测试主管编写测试计划,分配测试任务
    (3)测试人员针对自己负责的模块准备测试用例,主要从独立功能/业务场景/非功能3个方面准备用例
    (4)编写完用例后,进行用例评审,确保用例准备充分
    (5)等待开发提测,部署项目,执行测试,执行测试时先对主流程进行冒烟测试,如果冒烟测试通过了,则按照独立功能/业务场景/非功能顺序进行测试,如果冒烟测试不通过,直接返给开发,要求开发确保主流程测试通过再进行提测
    (6)测试完后,将bug汇总提交到测试管理工具Jira上进行跟踪管理,直到bug被关闭
    (7)编写测试报告,支持项目上线
    功能分析
    以你最熟悉的项目,说一下你是怎么测试的?
    我测试的项目是iwebshop,项目是一个电商网站,主要用于购物。前台功能主要包括登录、注册、搜索、立即购买、加入购物车等功能,后台功能主要包括添加商品、修改商品、删除商品、添加订单、修改订单、删除订单等功能。
    我主要负责的模块是商品和订单模块,商品模块包括添加商品、修改商品、删除商品等功能,订单模块包括添加订单、修改订单、删除订单等功能。
    以修改订单功能为例,首先明确需求,比如:修改商品价格的时候,价格是否可以为0;修改商品个数的时候,个数是否可以为0;不勾选是否需要发票复选框时,是否可以输入税金等等。明确需求后,准备测试点:首先看界面的默认数据是否正确,有没有错别字,界面上的按钮是否正常,下拉框能否正常显示。然后分析输入项组成规则,及输入项之间的关联关系,准备测试数据,比如商品价格的规则是正浮点数,那么它的有效类就是正整数和正小数,无效类就是负数、汉子、特殊字符、空。然后再分析数据库中不可见数据,比如订单的创建时间,发货时间等等。最后分析预期输出结果,订单修改成功了,前后台查看订单时都可以看到修改后的订单,数据库中的数据也会发生相应的修改,如果订单修改失败,应该提示相应的错误。
    为了保证测试用例的完整,除了上面的功能测试,我还进行了非功能测试,比如界面的兼容性测试,兼容到ie,firefox,chrome,还有界面的易用性测试,看界面设计是否美观,是否符合用户的操作习惯,界面的规则提示或者错误信息提示是否明确等。
    在执行测试用例的过程中,我发现的bug有修改商品价格的时候,价格可以改为0,商品的数量可以为负数、小数,收货地址省市县,只选择一个或者两个可以提交成功等等。
    项目整体
  2. 测试了几个浏览器及版本?
    Iwebshop测试了IE8-IE11,firefox43.0,chrome64.0
  3. 该项目你测试了几个版本?
    测试了4个版本,第一个版本经历了4个月上线的,每次迭代大概1-2周
  4. 项目周期多长时间?测试时间多长?
    项目周期是4个月,测试了1个月
  5. 这个项目做了多长时间?几个开发几个测试?
    项目做了4个月,8个开发,3个测试
  6. 你们公司哪个部门负责上线?项目上线后还测吗?
    我们公司由运维部门负责上线,上线后还会进行随机测试,重点测试主流程。
    工具类
  7. 用过哪些测试管理工具?具体怎么用的?
    (1)配置管理工具SVN
    给同事要配置库的地址,账户,密码,在电脑桌面右击SVN checkout,输入地址,点击确定,输入账号密码。如果要新增文档,在指定文件夹新建文档,右击TortoiseSVN,选择add,右击commit提交文档,注意填写备注;如果要更新版本资料,则右击update;如果要删除文件,则右击TortoiseSVN,选择delete;如果要比较两个版本的差别,则右击TortoiseSVN,选择diff with previous version。
    (2)测试管理工具Jira
    a.测试人员进入系统将发现的bug提交到Jira上,并且分配给相应的开发
    点击创建按钮,填写内容:选择项目、选择问题类型、主题、描述、选择优先级、环境、附件(缺陷截图)、经办人
    b.开发看到这个bug后会打开bug,如果开发接受了bug,则进行修复,修复完成后再分配给相应的测试,测试人员对开发修复的bug进行复测,如果复测通过了,那么关闭bug,如果复测不通过,那么继续分配给开发,一直跟踪到bug被关闭;如果开发不接受bug,那么我们首先要检查自己的bug是否描述准确,再测试一遍确认是否为bug,这些都确认了以后还没有与开发达成一致,那么就把bug反馈给测试主管,召开bug评审会,讨论bug是否需要修复。
    (3)用例管理工具Testlink
    a. 创建新项目:第一次进到系统没有项目时,先建项目,注意勾选启用产品需求功能
    b. 创建新用户:点击admin下面的小人按钮,点击create,填写用户名,密码,邮箱,分配角色
    c. 创建测试计划:点击测试计划管理,填写名称,勾选活动,公共复选框,点击 创建
    d. 创建需求:在产品需求下,点击产品需求规格,新建产品需求规格,添加产品需求信息
    e. 创建用例集和用例:在测试用例下点击编辑测试用例,点击右侧左上角小齿轮会出现绿色+号按钮,点击添加用例集信息,创建好后会在左侧下方看到建好的用例集,双击打开,在右侧点击第二个绿色+号按钮创建测试用例
    f. 创建版本管理:在测试计划下点击版本管理,创建版本
    g. 添加/删除测试用例到测试计划,并将测试用例分配给用户:选择要分配的用户,选择版本,勾选要分配的测试用例,点击增加选择的测试用例
    h. 执行测试:点击执行过的测试用例,在每一步骤执行通过后,将result改为通过,并将下面的结果也改为通过,点击保存
    i. 查看结果:在测试执行里点击测试报告和进度,可以看到测试计划报告,测试计划的进度,失败的用例等等
    (4)抓包工具fiddler
    a测试项目中重要的敏感数据是否加密传输
    打开iwebshop网站登录界面,输入用户名密码,点击登录,在fiddler左侧列表中找到带绿色箭头的请求打开,在右侧窗口中可以看到抓取的数据。
    发现的问题:用户名密码都是明文传输,存在安全隐患
    b.打断点,测试服务器端对用户提交的数据是否进行校验
    (1) 在fiddler工具中设置断点:点击rules---automatic breakpoints---before request
    或者在fiddler左侧列表下面点击all processes右侧的小方格出现红色大T图标即可
    (2) 进入到iwebshop注册页面,填写符合规则的注册信息,点击提交按钮
    (3) Fiddler工具拦截到数据,在左侧列表中出现红色大T请求,双击请求,在右侧窗口中可以看到被拦截的注册数据,对数据进行修改,点击”run to completion”,若出现多个红色大T图标,需要多次点击此按钮
    c.过滤无效的请求
    在fiddler右侧窗口中点击filters标签,勾选use filters,选择show only following hosts,在输入框输入要监测的服务器IP地址,多个ip可以用英文下的逗号隔开
    d.自动响应(mock挡板操作)
    (1) 进入到后台页面,在fiddler左侧列表中找到后台页面的请求,右击点击save---response---response body
    (2) 输入前台网址,找到前台对应的请求
    (3) 启动自动响应功能:点击autoresponder标签,勾选3个复选框
    (4) 将前台对应的请求拖拽到右侧空白区域,点击fiddler右侧最下方的下拉框,选择find a file,找到桌面保存的后台文件,点击save
    (5) 刷新前台网址,看到后台系统首页
    e.抓取https的包
    (1) 先导出fiddler证书:tools---fiddler option---https标签下,勾选所有复选框,点击”export Root certificate to Desktop”把fiddler证书导到桌面
    (2) 把fiddler证书导入到相应浏览器中
    (5)网页效率性测试工具httpwatch
    打开httpwatch工具,点击record,开始录制,访问iwebshop网站,在time chart右侧分析时间柱,blocked空白:检查本地网络和本地缓存时间,由缓存量的大小决定,send发送:发送http请求消耗的时间,由数据包的大小和带宽决定,receive接收:接收http响应结果耗费的时间,也是由数据包的大小和带宽决定,wait等待:等待服务器处理耗费的时间,由并发的用户量和服务端程序复杂度决定,cache read读缓存的时间,由缓存量大小决定,network网络占用总时间。
  8. 用fiddler工具做过哪些测试?发现了什么问题?
    a.用fiddler对iwebshop登录功能进行测试,发现了用户名密码没有加密,存在安全隐患。
    b.用fiddler打断点,测试服务器端是否对用户提交的数据进行校验
    用例类
  9. 这个项目你写了多少条用例?
    写了130条
  10. 你写的用例设计方法在项目中哪些地方用到了?
    添加商品功能用了等价值边界法,商品筛选功能用了正交试验法。
  11. 如何确保用例写全了?
    首先进行独立功能测试,独立功能测试完成后进行业务场景测试,再进行非功能测试,最后通过用例评审分析哪些地方不正确或者没有分析到的。
    安全测试类
  12. fiddler工具如何进行安全性测试?
    (1) 打开fiddler,打开iwebshop登录页面,输入用户名密码,点击登录,在fiddler左侧列表中找到带绿色箭头的请求打开,在右侧可以看到用户名密码没有加密
    (2) 用fiddler打断点,在iwebshop注册页面,输入符合规则的注册信息,点击注册,在fiddler中点击带有红色T的请求,右侧webforms中可以看到提交的数据,把其中的数据修改成不符合规则的数据,点击所有run to completion,看是否通过,如果通过了则没有对服务器端数据进行校验,存在安全隐患
  13. Sql注入测试原理
    通过输入特殊字符(or,’’,=),达到修改后台sql语句的目的。比如登录功能的sql语句为select * from iwebshop_user where username=’输入的用户名’ and password=’输入的密码’,我们在登录界面输入用户名’or 1=1 or ‘’=’,密码123456,那么sql语句为select * from iwebshop_user where username=’’or 1=1 or ‘’=’’ and password=’123456’,根据sql语句运算规则,先运算and,再运算or,那么where后面的条件就变为F or T or T/F,对于or运算来说,由一个为T即为T,所以没有防止sql注入的话,这样是可以通过的。
    缺陷类
  14. 你在测试过程中发现了多少缺陷?说一下你发现的最有价值的bug.
    我在测试过程中发现了30个bug,发现最有价值的bug是修改订单时商品件数没有校验,可以输负数,小数,特殊字符等;修改商品时收货人地址省市县只选择一个或两个可以提交成功。
  15. 说一下你们项目组缺陷管理流程
    测试人员将bug提交到Jira上,并分配给相应的开发,开发看到这个bug后会打开bug,如果开发接受了bug,则进行修复,修复完成后再分配给相应的测试,测试人员对开发修复的bug进行复测,如果复测通过了,那么关闭bug,如果复测不通过,那么继续分配给开发,一直跟踪到bug被关闭;如果开发不接受bug,那么我们首先要检查自己的bug是否描述准确,再测试一遍确认是否为bug,这些都确认了以后还没有与开发达成一致,那么就把bug反馈给测试主管,召开bug评审会,讨论bug是否需要修复。
  16. 说一下缺陷生命周期
    new、open、fixed、rejected、reopen、closed
  17. 你提交的bug,开发拒绝修复,你怎么办?
    首先要检查自己的bug是否描述准确,再测试一遍确认是否为bug,这些都确认了以后还没有与开发达成一致,那么就把bug反馈给测试主管,召开bug评审会,讨论bug是否需要修复。
    性能类
    Httpwatch工具你是怎么用的?
    打开httpwatch工具,点击record,开始录制,访问iwebshop网站,在time chart右侧分析时间柱,blocked空白:检查本地网络和本地缓存时间,由缓存量的大小决定,send发送:发送http请求消耗的时间,由数据包的大小和带宽决定,receive接收:接收http响应结果耗费的时间,也是由数据包的大小和带宽决定,wait等待:等待服务器处理耗费的时间,由并发的用户量和服务端程序复杂度决定,cache read读缓存的时间,由缓存量大小决定,network网络占用总时间。

    推荐阅读