送给佳佳同学的礼物:测试流程及并行测试介绍

需求:

我带的实习生佳佳同学即将离开公司去追寻自己的梦想了,想着该送给她什么样的礼物呢? 后来想想,送给她几个培训课程吧。希望能成为她成长的一份助推力,也感谢她在公司这4个月来的工作;

首先为她介绍的是:测试流程介绍及并行测试思想

测试流程介绍:

1. 测试计划制定 —— 根据项目具体需求制定相应的测试计划方案,该方案需要包括以下几点:

a. 测试环境配置:包含功能、容灾、压力和性能的测试环境架构设计及机器资源配置信息;

b. 测试内容:1. 列举本次测试所需覆盖的测试范围;2. 本次测试的重点;

c. 测试手段: 介绍本次测试所涉及到的技术方法;

d. 测试日常安排: 包括1. 测试人员; 2. 测试总时间; 3. 具体日程安排等信息;

2. 测试用例设计 —— 根据项目需求文档、设计文档及开发代码进行用例设计,具体流程如下:

a. 进行用例设计(有测试人员独立进行设计);

b. 用例评审会议(在用例设计完成之后,要求开发、测试人员、及其他项目相关人员一起对所设计的用例进行评审,评审结果在当天通过邮件的形式发出);

c. 根据评审结果修改测试用例设计,再次通过评审后完成最终版本的用例设计;

3. 自动化测试 —— 主要指功能测试:

a. 使用技术手段实现测试用例,使其能够进行自动化测试;

b. 完成自动化代码编写之后,即可进行功能测试;

4. BUG —— 主要指在发现疑似BUG之后的处理方式:

a. 当测试过程中发现疑似BUG的时候,需要首先排除Case自身设计及编码问题,之后排除因为测试环境等其他因素的影响。在这里可以采用debug定位、log日志定位等问题定位方法;

b. 在确认没有上述因素的影响之后,可以与开发人员进行沟通, 与其详细描述BUG的产生原因、复现该BUG的场景,最终确认是否为BUG;

c. 在相关测试平台上登记BUG。 登记BUG主要是为了1. 针对该BUG增加相应的测试用例;2. 在后续其他测试人员接收该项目之后,能够在每次版本更新测试的时候,重点关注该BUG场景;3. 体现产品质量及测试人员的工作价值;

5. 性能与压力测试 —— 在完成功能测试,开发版本稳定之后,就需要进行性能和压力测试:

a. 设计性能和压力测试场景,主要需要考虑一下几点:

1. 产品功能点: 如,该产品是Nginx版本的Tair缓存数据库的Restful客户端,那么增删改查是必备的测试场景;

2. 并发请求数: 

并发请求数的设定相对比较复杂:

首先,需要保证机器性能如CPU占用率、内存使用、网络流量等机器性能指标没有成为瓶颈的前提下,查看QPS曲线在不同并发数下的变化曲线;

其次,选择QPS曲线稳定的临界点,选择临界点两边的几组并发数作为每个测试场景内的并发请求数。

3. 预期的机器性能阈值: 在性能测试过程中所需要关注的一些性能指标:

1. 产品的性能指标:如 QPS、用户平均等待时间、服务器平均响应时间、吞吐量等等;

2. 机器的性能指标:如CPU占用率、内存使用、网络流量等等;

b. 工具选择:web server的性能测试工具有很多种,选择合适的性能测试工具非常重要:

1. 自己开发的压测脚本: 缺点:不够权威、反馈数据不够全面或者开发成本高;

2. http load 或者 web bench: 个人认为功能不够强大、反馈的测试数据也不够全面;

 3. Apache ab: 经过前面几篇博文的修改介绍之后,功能强大,支持1. 按时间测试;2. 多个url、header、cookie读取测试。反馈测试数据也比较全面,如:总请求数、数据总传输量、QPS、服务器平均响应时间、用户平均等待时间、网络流量等等信息;

c. 数据统计与图表绘制: 完成性能和压力测试后,需要验证测试过程是否正确无其他因素干扰,并且及时统计数据并绘制成相应的测试图表;

d. 最后是对上述数据及图表进行分析,提供解释说明;

6. 容灾及安全测试 —— 根据不同的产品,设计不同的容灾及安全测试方案;

7. 制作测试报告 —— 在完成以上所有测试工作之后,需要制作一份详细的测试报告,主要包括一下几点:

a. 测试环境信息描述: 

1. 软件环境描述: 操作系统、软件版本等;

2. 硬件环境描述: 服务器相关硬件信息,如CPU、内存、网卡等;

3. 测试环境部署描述: 详细介绍测试环境的部署情况;

b. 测试覆盖情况:

1. 功能测试测试点及其用例覆盖情况;

2. 压力测试场景描述;

3. 性能测试场景描述;

4. 容灾测试场景描述;

c. 测试缺陷列表:

1. BUG描述 —— 详细说明BUG的复现场景;

2. 级别 —— 根据危险程度分为高、中、低 三个等级;

3. 状态 —— 根据修复情况分为 已修复、 未修复 两种;

4. 提交人及验证人信息;

d. 潜在风险分析:

1. 风险描述 —— 详细说明该风险的触发场景;

2. 建议 ——建议应用方及开发人员如何避免该风险的出现;

e. 性能测试结果分析:

根据上述整理的测试数据及所绘制的图表,详细分析该性能测试的整个过程及相应测试参数、性能参数的意义,并给出相应的性能建议及风险规避方案;

8. 产品发布及线上验证:

产品发布上线后,对产品进行验收性测试;

9. 持续集成 —— 实现持续集成测试

a. 持续集成工具:主要有:CruiseControl、Hudson、LuntBuild、TeamCity、AntHill等,我们主要使用hudson作为持续集成工具;

b. 工作步骤:

1. 测试代码入库;

2. 搭建持续集成环境;

3. 设置每日回归和触发回归条件;

并行测试思想介绍:

服务器平台的并行测试思想如下图所示:

并发测试流程图

简要说明:

第一步:测试人员针对需求文档及开发设计文档进行整理分析(若没有相关文档,测试人员在对需求进行分析整理之后,制作相应的文档材料);

第二步:在开发人员代码编写期间,测试人员根据整理分析后的文档材料,进行:

1. 测试用例设计;

2. 用例评审,评审完成后提交到svn服务器上供开发自测参考;

3. 测试用例代码实现;

4. 搭建hudson自动化回归环境;

第三步:开发人员代码编写完成后提交到svn服务器上,自动触发hudson进行自动化回归测试,回归结束后将测试结果反馈给开发人员,开发人员根据该结果对代码进行修改,提交svn, 再次自动化回归测试,反复进行这个过程,一直到功能测试最终完成,形成稳定功能版本的开发代码;

第四步:代码功能测试完成后,由测试人员进行性能/压力测试,并将测试结果反馈给开发,开发人员根据该结果对代码进行修改(若对代码进行修改并提交svn, 则触发hudson进行自动化回归测试,并人工进行性能/压力测试,反复进行这个过程,一直到性能/压力测试结果符合要求);

第五步:测试人员编写测试报告。

OK, 送给佳佳同学的礼物:测试流程及并行测试介绍完毕,欢迎拍砖。转发请备注转自:100continue.iteye.com。 谢谢。

猜你喜欢

转载自100continue.iteye.com/blog/1458967