针对第一种瀑布流程,开发完了在进行测试,最终回归测试结束了再上线,就会比较赶;
测试是最后一道屏障和保证,如果不能提供充分的时间,测试用例可能会漏,甚至于该做的性能测试,安全测试会被忽略,日后产生很多的不良影响;且这些影响可能是毁灭性的,比如锁表,比如数据泄露
开发通常都会偶延期,而上线时间固定,测试的时间会被缩减
但是如果项目是一次性的,并且只要甲方接收签字就算完工,中间没有被发现的缺陷会有甲方的运维部分承担。那这种组织架构可行。。。
针对第二种,可以看成稍有迭代的项目;
开发在Coding的时候,测试准备测试脚本和数据,开发转测的时候,由测试直接执行测试用例即可,就缩短了整个流程的时间;
测试给开发提交了bug,开发fix了,测试要回归测试;
测试有了自动化测试脚本,执行就可以验证回归测试是否全部通过,是不是很方便快捷;
项目之后迭代,做一丢丢的修改,那为了整个项目全部功能正常,测试是否需要对新增功能,修改功能,原始功能做全面的测试
发现两款新工具,基于Web页面的
百度脑图 / , 和思维导图差不多, 保存在互联网上随时查看随时更新,更方便;teambition , 和tap/task 差不多,记录工作任务,任务紧急程度等等所谓测试准备测试脚本和数据,也就是在自动化测试,对于第二种项目周期很方便快捷。
自动化测试和手工测试,都是黑盒测试。 手工测试可能使用点点点的操作来进行,自动化测试就模拟点点点,让脚本来执行;
自动化测试,就是减少处在测试验证阶段的时间大大减少,就是测试前置,与开发并行。
测试存在于各个阶段:
需求测试---》单元测试---》集成测试---》系统测试---》性能测试---》用户测试---》回归测试
需求测试
完整性&正确性一致性&可行性无二义性&健壮性必要性&可测试性可修改性单元测试
又称模块测试,就是对程序代码中最小的涉及模块单元进行测试。
在单元测试中主要采用静态测试与动态测试相结合的办法。
单元测试要求需要代码编写经验,并且要十分熟悉当前的被测系统,以及该系统是否与其他系统的接口关联情况。
单元测试在编码阶段占据非常重要的地位。可以降低编码的错误率,提高编码质量
集成测试
又称组装测试,是将软件产品各个模块组装起来,检查接口是否存在问题,以及组装后的整体功能、性能表现。
一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合方式集成)等策略进行测试,利用黑盒测试为主,白盒测试为辅的测试方法进行测试。
主要解决各个组成但源代码是否符合开发规范、接口是否存在问题,整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等。
系统测试
将通过集成测试的软件部署到某种较为复杂的计算机永华环境进行测试。
目的:通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。
这个阶段主要进行的是安装卸载测试、兼容性测试、功能确认测试、安全测试等。
采用黑盒测试法,主要考察被测软件的功能与性能表现。
性能测试
性能测试要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。
不要尝试用手动方式进行性能测试,应当编写一段相应的程序或者使用专门的工具进行,如利用自动化性能测试工具。
性能测试相对难度较大,要求测试人员掌握编程语言,精通业务流程,拥有深厚的项目经验。
用户测试
可称为用户确认测试。
正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。
用户测试环节是被测试软件首次作为正式的系统交友用户使用,用户会根据他们的实际使用情况进行测试、使用,并提出实际使用过程中的问题。
用户测试是软件生产流程中的最后质检关。
回归测试
回归测试是经过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。
可采用自动化测试工具来进行回归测试,或者由测试工程师手动的执行以前的测试用例。来检查用例通过情况。
就我自己而言,开发自动化测试脚本对回归测试很重要,大大减少回归测试的时间。