缺点、误差、故障、失败、问题、矛盾、错误、特殊、事件、缺陷、异常。。。程序员
首先要认识一个东西叫:产品说明书:编程
知足下列五个规则之一,便可以称做,发生了一个软件缺陷:编程语言
一、软件未实现产品说明书要求的功能工具
二、软件出现了成品说明书指明不该该出现的错误测试
三、软件实现了产品说明书中未说起到的功能编码
四、软件为实现产品说明书虽未说起,但应该实现的目标spa
五、软件难以理解,不易使用,运行缓慢,从测试人员的角度,最终用户会认为很差设计
产品说明书成为形成软件缺陷的罪魁祸首,在许多状况下,说明书没有写,或者写的不够全面,常常更改,或者整个开发小组没有更好的沟通。第二缺陷,来源是设计,这是程序员规划软件的过程,产生缺陷的缘由与产品说明书同样,随意、易变,沟通不足。事件
软件测试员究竟要作些什么?内存
软件测试员的目标就是发现软件缺陷
尽量早的找出软件缺陷
1.他们喜欢拿到新的软件,安装到本身的机器上,观看结果
2.善于发现问题的缘由,喜欢解谜
3.不会放过任何蛛丝马迹,出现一次的BUG,必然不会轻易放过,想尽一切可能的去发现它
4.具备创造性,想出富有创意,甚至超常的手段来寻找缺陷
5.判断准确,要确保看到的问题,是否真正的存在缺陷
6.知道如何冷静的和程序员沟通,告诉他,你的程序有BUG
7.善于说服,有一些问题,被认为不重要,不用修复,测试人员要说明为什么必须修复,并推动缺陷的修复
1.测试计划 是否符合产品说明书和产品需求,制定计划
2.测试用例 列举测试项目,描述验证软件的步骤
3.缺陷报告 描述测试出的问题,并记录,
4.测试工具和自动测试
5. 统计和总结 测试过程的汇总
大爆炸模式优势是简单,计划、进度安排和正规开发过程几乎没有,全部精力都花在开发软件和编写代码上,最终产生了优秀的产品软件,或者一堆废品。
这种模式的测试 ,既容易,又困难,由于不可能回头修复已经打乱的事情,软件测试的工做其实就是报告发现的问题,让客户知道。
在大爆炸的模式上更进一步,至少考虑到了产品的需求,这种模式下一般是最初只有粗略的想法,接着进行一些简单的设计,而后开始编码,测试,以为 能够了,而后发布产品。
采用这种模式的项目,从最初的构思到最终的产品要通过一系列步骤,每个步骤结束,项目小组会组织审查,并决定是否进入下一步,没准备好,久停滞,直到准备好。
螺旋模式的整体思想是一开始没必要详细定义全部细节,从小开始,定义重要功能,努力实现这些功能,接受客户反馈,而后进入下一阶段。重复上述过程,直到获得最终的产品。
敏捷开发以用户的需求进化为核心,采用迭代、按部就班的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分红多个子项目,各个子项目的成果都通过测试,具有可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程当中软件一直处于可以使用状态。
1.早点找出缺陷:产生更小的影响,会让人更容易接受
2.控制情绪:找到严重缺陷,不要兴奋,兴冲冲的跑到程序员那里,告诉他存在大问题,他是会不高兴的。
3.不要老是报告坏消息:常常找程序员聊聊天,不要老是报告坏消息,别人会对你惟恐避之不及。
往靶盘上掷飞镖,掷到靶盘上交准确,掷到靶心叫精确。
确认是保证软件符合产品说明书的过程。
验证是保证软件知足客户要求的过程。
质量包括:软件功能的多少,运行能力。可靠性包括:产品的可靠性,好比,多少用户,或者多长时间会崩溃等等。
是对确认和验证的一个过程。
黑盒测试中,测试人员只须要知道软件须要作什么,没法看到是这么运行的,不知道软件如何运行,只知道结果。黑盒测试又被成为功能性测试或者行为测试,
白盒测试:测试人员能够访问程序员的代码,经过检查代码来协助测试。
静态测试是指测试不运行的部分(好比踢下车胎,看看车漆)。
动态测试是指使用和运行软件(发动汽车,听听发动机的声音,上路行驶)
测试产品说明书,认真找出其中的缺陷。
1.边界条件:软件是很极端的,即要么对,要么不对,对必定范围内的数据进行测试,每每是对的,可是在边界处,是最有可能出现错误的。
2.测试边界:例如 第一个减一/最后一个加1、空了再减,满了再加等等
3.默认,空白,空值,零值和无
4.非法、错误、不正确和垃圾数据(要求输入数字,则不能输入字母等)
5.状态测试:一旦使用某一项,使软件改变了外观,菜单,或者某些操做,就是改变了该软件的状态。
重复测试:
指不断执行一样的操做,不停的启动关闭程序,要想找出一个软件的缺陷,重复操做是不可避免的。
压迫测试:
指软件在不够理想的状态下运行,内存小,磁盘空间少,CPU速度慢等,有点相似于边界条件测试。
重负测试:
与压迫测试相反,压迫测试是尽可能限制软件,而重负测试是尽可能提供条件任其发挥, 让软件尽量的处理大的数据,最大限度发挥软件能力,让它不堪重负。
1.像笨拙用户那样作
2.在已经找到软件缺陷的地方在找找
3.像黑客同样考虑问题
4.凭借经验,直觉和预览
不执行软件的条件下有条理的审查软件设计,体系结构和代码,从而找出软件缺陷的过程,,有时称为结构化分析。另外一个好处是能够为黑盒测试人员提供思路,他们可能没必要了解代码的细节,经过审查评论,能够肯定问题或者找出容易产生问题的范围。
数据引用错误:引用未经正确声明和初始化的变量,常量,字符串等引发的缺陷。
数据声明错误:不正确的声明或者使用变量和常量
计算错误:数学问题,计算没法的到预期的结果
比较错误:大于小于等于等,比较和判断错误极可能是因为边界条件的问题
控制流程错误:编程语言中循环等未按照预期方式工做
子程序参数错误:错误的来源是子程序不正确的传递数据
输入输出错误:包括文件读取,接收键盘或者鼠标输入以及向屏幕输出信息等
软件是否使用了本语言以外的语言,是否能够移植到其余编译器和CPU,是否考虑了兼容性,编译程序是否产生警告或者提示的信息。