1. 本周学习进展
a. 测试工具使用
i. 具体进展
安装Charles,完成汉化,熟悉界面及功能,截取 Https网络封包;安装Fiddle,完成汉化,在移动端使用IOS设备作为抓包的客户端,完成配置,设置断点;了解Jira具体功能,参考文档:欢迎来到 Jira Software | Atlassian
ii. 遇到的问题
截取的Https封包出现乱码;安装Charles证书后,移动设备无法正常上网
iii. 解决办法
在Charles中设置正确的SSL代理,并且更换解码方式;
首先检查设备,发现信任Charles证书;问题依旧,尝试重启设备后可以正常上网
b. 性能测试
i. 具体进展
完成JMeter安装,添加线程组,完成配置(使用默认配置),了解各个参数;添加HTTP请求,添加查看结果树、用户自定义变量和断言;添加断言结果,在监听器中选择聚合报告,执行测试
ii. 遇到的问题
测试过程中出现乱码问题
iii. 解决办法
针对请求及响应数据中文乱码,在配置文件(bin文件夹下jmeter.properties)中将sampleresult.default.encoding=UTF-8前#删除
2. 下周学习规划
a. 学习自动化测试相关知识
任务:了解自动化测试基础概念和原理,学习elenium WebDriver使用方法,掌握Junit测试框架
目标:编写自动化测试脚本,完成测试报告的产出
b. 学习Java基础知识——容器类
任务:掌握容器类继承关系,List,Set,Map,Queue及实现类
目标:编写代码,制作demo项目具体运用以上四种容器类
3. 我要分享&我的思考
a. 分享主体:
《Google软件测试之道》—— “Google如何做测试?”
一,如何评判软件质量?—— “全面的预防”
软件质量是一种预防行为,Google强调软件质量是所有项目成员的职责,应该从设计之初就考虑到软件应用的业务逻辑、代码code规范、测试流程安排方法、以及在开发过程中不断变更需求的应对方案,进而,引申出为了减少反复变更的代价,通过不同版本,不同的测试类型,来控制需求变更、代码变更对后续质量的影响,不断的对产品进行监控,开发与测试融合协作保障开发代码质量,同时对产品各个环节的人员均需对质量进行负责,即任何一个环节都需要对自己的输出进行负责
二,测试过程如何分工?—— “开发,测试开发,测试”
开发工程师:实现用户所使用的功能代码,负责单元测试、容错设计、故障恢复
测试开发工程师:提供测试支持,编写框架,隔离新开发的代码,管理代码提交
测试工程师:专注于用户角度,一方面确认开发人员早起的测试工作是否存在不足,另一方面参与到常见用户场景中,测试应用是否满足性能期望;同时,参与到软件各个阶段的人员沟通交流,讨论设计带来的风险、功能逻辑复杂性和错误避免的方法。
三,如何设计测试流程?—— “版本控制,爬,走,跑”
金丝雀版本(Daily):每日构建的版本,用来排除过滤一些明显不适宜的版本;开发版本:开发人员日常使用的版本,该版本具有一定的功能并通过了一系列的测试在日常中正常使用它;发布版本:这个版本是非常稳定的测试版本而演变而来,经历内部使用,通过所有质量考核的一个版本,这也是对外发布的第一个版本。
小型测试:自动化实现,用于验证一个单独函数或独立功能模块的代码是否按照预期工作,着重于典型功能性问题/数据损坏/错误条件和大小差一错误等验证,时间短,小型测试主要尝试解决的问题是:“这些代码是否按照预期的方式运行”。
中型测试:自动化实现。该测试一般会涉及2个或以上模块的交互。测试的重点在于验证这些“功能近领区”之间的交互,以及彼此调用时的功能是否正确。
大型测试:基于真实用户使用场景和实际用户数据,其关注所有模块的集成,倾向于结果驱动,验证软件是否满足最终用户的需求;三种角色都会参与到大型测试中,或自动化,或探索测试。其尝试解决的问题是:这个产品操作运行方式是否和用户的期望相同,并产生预期的结果。
b. 我的思考:
作为测试开发工程师,针对所负责软件或模块的测试工作,应当从需求和功能设计之初参与测评,并且需要及时同开发工程师沟通,及时响应新增模块的测试需求,推动敏捷开发的进程,测试开发工程师应根据项目的特点,设计不同层次的测试,包括单元测试、集成测试、系统测试和性能测试等。每一层次的测试都有其侧重点,共同确保软件质量自动化测试是提高测试效率和减少重复劳动的关键。测试开发工程师应专注于自动化测试脚本的编写和维护,提高测试覆盖率,同时确保自动化测试的可靠性和稳定性