什么是软件测试?
软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求,或弄清预期结果与实际结果之间的差别的过程。
软件测试的测试目标是发现一些可以通过测试避免的开发风险。
软件测试的原则之一是测试应该尽早进行,最好在需求阶段就开始介入。
测试的主要工作内容是验证(白盒verification)和确认(黑盒validation)
针对手机应用软件的系统测试有:
功能模块测试,交叉事件测试,压力测试,容量测试,兼容性测试,易用性/用户体验测试等。
针对手机施加的压力测试类型有:
存储压力、边界压力、响应能力压力、网络流量压力
注:并发测试是针对服务器的
软件验收测试的合格通过准则是:
(1)软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
(2)所有测试项没有残余的一级二级三级的错误(这个不同项目准确率百分比有不同要求)
(3)立项审批表,需求分析文档,设计文档和编码实现一致。
(4)验收测试工件收全(测试计划、测试用例、测试日志、测试通知单、测试分析报告)
测试分为:
一、个人审查
二、抽查和审查
三、黑盒测试,也称功能测试或数据驱动测试,在已知产品所应有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,将程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序能否适当的接收输入数据而产生正确的输出信息,并且保持外部信息如(数据库或文件)的完整性。
主要有等价类划分、边界值分析、因果图、错误推测等,综合策略、正交分析法,主要用于软件确认测试。
四、白盒测试,也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品的内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中每条通路是否都能按预定要求正确工作,而不顾它的功能。
主要有逻辑驱动、基路测试等,逻辑覆盖法(语句覆盖、判断覆盖,条件覆盖、判断条件覆盖、条件组合覆盖、路径覆盖)主要用于软件验证。
什么是测试驱动开发(Test-DrivenDevelopment, TDD):
敏捷开发中的一项核心实践和技术,也是一种设计方法论,
TDD原理是在开发功能代码前,先编写单元测试用例代码,测试代码决定需要编写什么产品代码。
TDD基本思路是通过测试来推动整个开发的进行,单测试驱动开发并不只是单纯的测试工作,而是把需求分析、设计、质量控制量化的过程。
TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。
TDD首先考虑使用需求(对象,功能,过程,接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。
软件验收测试分为三类:
1. 正式验收测试
2. 非正式验收测试-α测试(由用户、测试人员、开发人员共同参与的内部测试)
3. 非正式验收测试-β测试(由内侧后的公测,即完全交给最终用户去测试)
系统测试的策略有哪些?
功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试(界面)、可用性测试、安装测试、配置测试、异常测试、备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。(版本1)
功能测试、性能测试、可靠性测试、负载测试、强度测试、安全测试、配置测试、安装测试、卸载测试、文档测试、故障恢复测试、界面测试、容量测试、兼容性测试、分布测试、可用性测试。(版本2)
软件系统测试需要参考的项目文档有哪些?
软件测试计划
软件需求规范
迭代计划-是软件某个周期的计划
注:可行性研究报告是没必要的
系统集成测试主要包括以下过程:
1. 构建的确认过程
2. 补丁的确认过程
3. 系统集成测试组提交过程
4. 测试用例设计过程
5. 测试代码编写过程
6. Bug的报告过程
7. 每周/每两周的构建过程
8. 点对点的测试过程
9. 组内培训过程
做好文档测试需注意的点为:
1. 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例
2. 检查文档的编写是否满足文档编写的目的
3. 内容是否齐全,正确,完善
4. 标记是否正确
什么是负载测试?
负载测试就是指在一定的工作负荷下,系统的负荷及响应时间
强度测试?
强度测试是指在一定的负荷下,在较长时间跨度内的系统连续运行给系统性能所造成的影响
容量测试?
容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障还能保持主要功能正常运行
测试工具汇总
LoadRunner-负载压力测试:预测系统性能。
JMeter+Badboy:基于JAVA的压力测试工具,Badboy用来进行脚本的录制
功能测试:通过自动录制、检测和回放用户的应用操作。将输出记录同预先给定的记录比较。
Junit:白盒测试工具:针对代码测试
测试管理工具:对测试需求、计划、用例、实施进行管理
测试辅助工具:本身不执行,可以生成测试数据,为测试提供数据准备
负载压力测试:LoadRunner:预测系统行为和性能的工业标准级负载测试工具。模拟上千万用户同时实施并发操作,来实时监控可能发生的问题。
功能测试: QTP(quicktest professional):自动测试工具
白盒测试:C++ TEST(做C和C++的白盒测试)、JUnit(Java白盒测试)
缺陷管理工具:Mantis、BugFree、QC、TD
用例管理工具:TestLink、QC
测试辅助工具:SVN
网游测试内容
a) 性能
i. 客户端性能
ii. 服务器端性能
1. 服务器
2. 数据库
iii. 网络
b) 功能
i. 从运行完 game.exe 打开游戏界面后可进行的各种操作、玩法
ii. 界面
iii. 音乐
c) 自动化
i. 测试工作组织实施中需要的工具、软件、平台的开发
ii. 自动化的回归测试作用:游戏中基础的、变动不大的、出错率高的、可进行 checklist 重复测试的功能、性能等自动化是一个好方法
iii. 任何时候自动化都取代不了人脑,它只是将一些重复性的劳动从我们测试人员身上去掉,让我们有更多的时间做更有意义的事情,如果你觉得你做一件事情是重复的,且有规律可行的,不防考虑自动化
假设京东有一个webAPI: http://p.jd.com?p1=90&p0=100,输入打折价p1和原价p0,返回折扣信息0.9,请设计测试用例进行测试。
1 输入打折价错误+输入原价错误(输入值不在正常范围内)
2 输入打折价错误+输入原价正确
3 输入打折价正确+输入原价错误
4 输入打折价正确+输入原价正确(打折价高于原价)
5 输入打折价正确+输入原价正确 (打折价高于原价返回折扣信息不对)
6 输入打折价正确+输入原价正确 (打折价高于原价返回折扣信息对)
以windows对文件的复制粘帖功能为例,尽可能多地写出测试思路。
抓住关键字,然后进行发散。
1. 基本功能测试:文件的复制粘贴功能,首先关键字“文件”,文件有不同的分类(图片、视频、音频、文档等),每个分类又有不同的类型(文档类型:txt doc execlpdf等),每个文件又有不同的大小,而且文件还有很多权限,是不是隐藏,是不是只是管理员可执行。选择不同分类的不同类型,不同大小的文件做测试资源。比如:文档类型里面txt文件可以分为 1.KB的txt文件、1MB的txt文件、1GB的txt文件。。。。下一个关键字复制粘贴复制有多种方式右击选择、Ctrl+C、拖动复制,对应粘贴也有各种方式。然后从哪复制,粘贴到哪,比如可以有本机硬盘、移动硬盘、优盘、内存卡、软盘、光盘、连接手机存储,复制到网络地址等等。复制粘贴后文件是不是可用,文件权限是不是有变化。复制过去容量不够怎么处理?复制过后有重名文件怎么处理?复制过程中取消、关机、拔优盘怎么处理?复制过程能不能执行文件?
2.性能测试:复制粘贴功能性能怎么样?复制文件的速度可不可以接受?同时复制多个文件是不是可以完成?复制文件过程中占用CPU资源大不大,耗电量大不大?
3.兼容性测试 Windows XP,Windows 7, Windows 8 , Windows 8.1, Windows 10等各种windos版本是不是都支持这个功能。
4.交互测试; 复制粘贴文件时,使用windows存储的其他功能是否有影响?比如播放本地的音频、视频、等同时复制文件是不是有影响。一边复制,一边粘贴是不是有影响。
想到这些,欢迎大家继续发散。
已知Stringconvert(String page)作用是将WEB页转码为方便移动设备查看的页面,为了确保转码的正确性,请设计相应测试策略
楼上的回答非常棒,我这边做个分类总结,锻炼一下自己。
【基本功能测试】
功能:
1. 输入正确的网址,进行转码,检查内容是否正确;
边界:
1. 输入信息量非常大的网址
2. 输入没有信息的网址
负值:
1. 输入错误的网址,进行转码,系统是否有相应的提示;
2. 输入的 web 的 page 为空,是否抛出异常;
【兼容测试】
1. 使用不同操作系统的移动设备查看转换后的页面,检查内容是否正确;
2. 使用不同分辨率的移动设备查看转换后的页面,检查内容是否正确;
3. 使用不同浏览器查看转换后的页面,检查内容是否正确;
【性能测试】
1. 测试转码的速度,或者系统的响应时间;
【易用性 / 用户体验测试】
1. 测试转码后,页面显示是否美观;