持续集成测试软件测试

测试向开发行进,论自动化测试

2015-08-26  本文已影响855人  michael_jia

我们遵循敏捷开发模式,八月以来,尝试调整测试的重心和方法,目标是做到敏捷测试,测试要向开发行进!

开发和测试

持续交付是我们的方向

自动化测试金字塔

Test Automation Pyramid(测试自动化金字塔).png

Google软件测试之道 介绍,谷歌的经验比例是70/20/10,即:70% 的 Small Tests,20% 的 Medium Tests,10% 的 Large Tests(对应UNIT / INTEGRATION / SYSTEM | End-to-End)。

自动化测试

测试分类

App 功能以手工测试为主

App 功能测试以手工为基础,可以继续实施以测试用例为核心的策略。
前端重在交互和展现,所以功能逻辑和 UI 测试必不可少。

App 性能以工具测试为主

对于App,则要使用工具进行性能测试,性能在用户体验中是蛮重要的,而性能的改善需要开发长期的努力。
要不断发现、开发和学习使用各类工具,以帮助我们更有效率地完成任务。开发工具时鼓励使用 PHP 和 Python来实现。

服务端接口自动化测试

对于服务端提供的 HTTP 接口,建议使用 PHPUnit 技术实现自动化测试。

自动化测试的ROI

敏捷开发条件下,迭代模式使得代码量逐步累加,越靠后的迭代我们所面临的整合测试压力、测试任务就越大。
敏捷测试需要测试人员能够随时启动自动化的回归测试对马上发布的迭代代码进行快速验证。

持续集成

一旦实现服务端接口自动化测试脚本,则可以逐步实现持续集成。svn上服务端代码的任何变化,都可以自动启动接口自动化测试,对于任何错误都即时通知开发人员。如果测试通过,则自动和 App 进行集成测试。

自动化部署

有了自动化测试和持续集成这两个作为前提,经过自动化部署,就可以达到持续交付。本文不展开讨论此话题。

尽早测试理念

什么时候是合适的测试时机?答案是:尽早测试。扩展开来就是:

从产品构想开始,一直到线上运营、用户反馈,随时都是测试的好时机。只不过,不同的阶段,测试内容有所不同。

测试开发人员的基本要求

1、有理念:理解测试开发,会反向思维、探索测试
2、懂业务:了解用户,会澄清需求
3、懂代码:能看代码,会写代码
4、用工具:善用工具,会开发工具;
5、讲策略:手工和自动测试并用,讲求成本效益(手工测试是基础,自动化测试支持持续集成和持续交付)

注:微软的实践经验也深刻影响了业界对于测试的理解和探索。

** Sanity Test **

A sanity test is intended to provide quick assurance that a system change hasn't broken any key functionality. You normally do a sanity test only in situations where you have to fix something quickly and you can't afford substantial down time to do a full regression test - in which case you would typically deploy directly into production upon successful completion of the sanity test.

End to End Testing

End to End Testing
上一篇 下一篇

猜你喜欢

热点阅读