简单的来说,软件测试就是预期结果和实际结果做对比。 预期结果:我们操作一个软件之前,要知道这个软件给我们返回了一个什么样的结果。 实际结果:我们正式的操作了软件之后,我们得到的实际结果。
1. 测试方法
1.1 黑盒测试
黑盒测试,可以把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
1.2 白盒测试
白盒测试,可以比喻成一个透明的盒子,白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
1.3 灰盒测试
灰盒测试,可以比喻成一个半透明的盒子,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
2. 测试阶段
2.1 单元测试
如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,一般用白盒测试去进行测试,单元测试一般由开发自己去做。
2.2 集成测试
集成测试,也可以说是接口测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试,一般用的测试方法是灰盒测试。
2.3 系统测试 对整个系统进行的软件测试,目的是验证最终软件系统是否满足用户规定的需求。
2.4 验收测试
验收测试是部署软件之前的最后一个测试操作。产品发布之前所进行的软件测试活动,也称交付测试。在进行主要测试程序之前,常用冒烟测试作为一个此阶段的验收测试。验收测试是由领导或者甲方来进行测试,一般不是由测试人员来进行测试。 实施验收测试的常用策略有三种,它们分别是: 正式验收、α测试(内测)、β测试(公测)
3. 测试方向 3.1 功能测试 功能测试用到的大多数方法都是黑盒测试,例如微信里的发红包的功能。
3.2 性能测试 例如软件的响应时间,响应时间越快性能越好。
3.2.1 压力测试 通过不断的添加数据找到一个极限的状态。
3.2.2 负载测试 系统在一个极限的情况下可以持续多久,容易产生内存泄漏/溢出。
3.2.3 并发测试 测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题。
3.3 安全测试 安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。 3.3.1 渗透测试 一层层的渗透,直到发现你的漏洞 3.3.2 DDOS攻击 流量攻击,防不胜防 3.3.3 跨域攻击 陌生链接 3.3.4 SQL注入 攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句 3.3.5 暴力破解 试密码,密码越简单越容易破解
3.4 UI界面测试 对界面进行查看,查看一下是否美观,界面是否和设计图保持一致,界面的按钮大小是否保持一致,界面的风格是否保持一致。
3.5 兼容性测试 app兼容性测试:一款app在不同手机上是否正常运行,根据市场占有率会考虑不同的系统、不同的屏幕、不同的分辨率、不同的品牌。app分为Android和ios,一般ios不需要进行兼容性测试,因为ios所有的系统都是保持一致的。 web兼容性测试:在不同浏览器上进行测试,选择市场占有率高的浏览器。
3.6 易用性测试 用户体验测试,学习成本越低越好,功能越简洁越好。一般都是比较低级的bug。
3.7 稳定性测试 考虑能不能长时间运行,要考虑前端和后端,一般后端要7*24h,前端要3-5h。一般用工具进行测试。
3.8 弱网测试 现在的网络比较复杂,所以我们要模拟不同网络下,软件是否正常使用。
3.9 APP的专项测试 场景交互测试(不同app切换,来电话了,来短信了,微信语音,分屏),资源争用测试(同类型的app同时工作),权限测试(关闭权限后是否影响其他功能的使用,提醒打开权限),离线测试(断开网络后app是否正常使用),安装、卸载、更新,消息推送(一般由手机厂家提供的,测试从新连上网络后是否正常推送),资源监控(监测app的大小,包括app对软件的大小、流量、电量、内存、cpu的消耗)。
4. 测试对象 4.1 APP测试 4.2 WEB测试 4.3 小程序测试 4.4 接口测试 4.5 物联网测试 4.6 车联网测试 4.7 AI测试 4.8 大数据测试
5. 测试状态 5.1 动态测试 动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
5.2 静态测试 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
6. 其他 6.1 回归测试 检查上次测试发现的问题是否被修改。
6.2 冒烟测试 冒烟测试是测试前的测试,检查软件是否具备可测试性。
未完待续。。。