测试软件开发

1.1软件测试的行业基本介绍:

  1.1为什么需要软件测试

    测试的流程:

    (1)将所有的经理根据客户需求来编写需求文档

    (2)开发根据需求文档来编写代码

            测试需要根据需求文档编写测试计划

    (3)开发人员实现代码

            测试人员编写测试用例

       (4)编码结束之后由开发人员将代码上传测试人员需要将代码下载并实现冒烟测试冒烟测试通过后在实现全面测试(如果发现bug需要将bug提交给开发人员 开发解决问题之后测试人员需要进行回归测试)

       (5) 测试人员需要将测试报告以及测试用例整理文档方便项目版本迭代的使用

 

1.任何软件都是经历过不同开发阶段完成,最终产生的软件是有一定问题的,就需要测试人员进行测试

2. 当前软件行业并不是在功能为王,用户对需求更严格,软件的性能(延迟容易上手对内存的消耗)需要测试人员

1.2为啥选择测试

    1. 测试需求越来越多

    2. 开发人员是来创造世界,测试人员是将世界变得更美好

1.2 为什么不让开发人员自己做测试

    1. 很多测试人员本身就是开发出身

    (1)从专业角度去看.让专业的人员去做专事

    (2)从思维定势:开发永远的真谛是我的代码没问题

    (3)从测试力度:开发人员不会舍得

    (4)从客户角度:用户会有千奇百怪的想法或者是超出想象的思维

1.3软件测试的介绍:

1.3.1定义:

    通过手动或者是工具进行对测试对象进行操作,从而将预期结果和实际结果进行匹配验证是否存在差异

1.3.2软件测试的作用:

(1)通过测试工作可以发现并修复软件中存在的缺陷,从而使软件的寿命增长客户使用信心增强(2)测试可以记录软件在运行过程中产生的一些数据从而为决策提供数

(2)测试可以降低同类产品开发遇到的风险

1.4软件测试的原则:

    1. 测试证明软件是存在缺陷的

    2. 不能执行穷尽测试

    3. 缺陷存在群集现象(2:8原则 20%核心功能 )

    4. 测试应提早介入(从定义需求的时候就有了测试)

    5. 某些测试需要依赖特殊环境(操作系统浏览器不同得到手机或者手机版本)

    6. 杀虫剂现象

    7. 不存在缺陷谬论(开发人员说自己的代码没问题的时候你怎么办?)

1.5测试级别

    软件开发都由自己的开发模型(瀑布v  vv  h)

    测试人员会根据对软件的操作步骤进行测试级别分类:

    1. 单元测试(UT)

        在软件测试中,单元就是组成软件的最小单位(类函数组件)

    2. 集成测试(IT)

        将多个不同的模块进行组合在一起进行验证(接口是否ok)

    3. 系统测试(ST)

        测试人员充当用户对软件进行测试

        系统测试分为:

        1.功能测试 验证当前软件的主体功能是否ok

        2.兼容性测试 验证当前软件在不同的环境下是否ok

        3.安全测试 验证软件是否只有授权用户提供功能是使用

        4.性能测试 验证软件是否消耗其他的资源

    4. 验收测试

        软件发布之后由客户实现买单

    验收测试分为:

    1.α 测试 – 内测

        Alpha测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。

        开发者坐在用户旁边,这是在开发者受控的环境下进行的测试。由开发者随时记录下错误情况和使用中的问题。

    2.β 测试 – 公测

        β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,

        Beta测试不能由程序员或测试员完成。

        当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。

        这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。

    该测试形式的优点:

        · 测试由最终用户实施。

        · 大量的潜在测试资源。

        · 提高客户对参与人员的满意程度。

        · 与正式或非正式验收测试相比,可以发现更多由于主观原因造成的缺陷。

    缺点

        · 未对所有功能和/或特性进行测试。

        ·测试流程难以评测。

        · 最终用户可能沿用系统工作的方式,并可能没有发现或没有报告缺陷。

        · 最终用户可能专注于比较新系统与遗留系统,而不是专注于查找缺陷。

        · 用于验收测试的资源不受项目的控制,并且可能受到压缩。

        · 可接受性标准是未知的。

        · 您需要更多辅助性资源来管理 Beta测试员。

    3.UAT测试 – 正式

1.1.6 按测试对象来进行分类:

    盒 是测试的对象

    1.白盒测试

    软件的底层代码

    2.黑盒测试

    软件的主体功能

    3.灰盒测试

    介于黑盒和白盒之间(接口测试)

1.1.7 按测试对象是否执行分类:

1.静态测试

测试不执行 测试的可以有布局 页面

2.动态测试

将软件运行在真实的环境中进行测试

1.1.8 按测试手段分类:

1.手动测试

由测试人员对测试对象实现手动验证

优点: 可以灵活改变测试操作以及测试环境

2.自动化测试

1.脚本测试

2.借助第三方测试工具

1.1.9 软件的质量:(功能靠用 效率可移)

在当前行业中基于iso的一套标准用来定义软件的质量

特性:

1.功能性 满足客户在显示或者是隐式的需求

2.易用性 易学 容易上手

3.可靠性

4.效率性

5.可维护性

6.可移植性

2.测试用例

1.1测试用例的定义

为了特定目的而设计的一组输入测试,执行条件,预期结果为了验证该功能是否满足需求。


测试用例作用:

测什么怎么测


Eg: 手机

按开机键相当于一组输入测试

手机是否有电执行条件

能够正常显示预期结果

手动按开机键测试过程


1.2如何编写测试用例

1. 测试用例都是wps表来进行编写

2.测试用例中含有

(1)编号该用例的编号

(2)日期

(3)测试人员

(4)项目

(5) 分项目

(6)执行条件

(7) 测试过程

(8) 预期结果

(9)实际结果


在公司内测试人员需要大量的编写测试用例一天至少30-50条测试用例的编写

测试用例的模板公司都不一致

 

1.3 bug的优先级

1.致命缺陷

2.严重bug

3.一般bug



1.4测试用例的设计方法

1. 等价类划分

        使用场景:在有输入框使用等价类划分以及边界值法混合使用

        按照需求将穷尽数据进行分类区分去有效的数据和无效的数据

        有效数据成为有效等价类


        无效数据成为无效等级类


2. 边界值

    使用场景:在有输入框使用等价类划分以及边界值法混合使用

    有效边界值    1-100

    无效边界值    -1 ---负数的无穷尽

                           101--整数的无穷尽

3. 因果法

        应用场景:

        一个界面有多个操作,多个操作之间有一定的组合关系或者是限制关系

        输入不同的操作会产生不同的效果


4. 场景法

应用场景:

在界面没有过多的填写项,所有的操作都是通过鼠标的单击双击

金融类游戏类硬件交互类


ATM取款机

取款失败的场景:

1.密码错误

2. 账号余额不足

3. Atm中没有钱

4. 吞卡

5. 超限

6.无效的银行卡

7.非银行卡

5.判定表

6.正交

7.随机法

使用场景:列表数据中实现随机数据

在无穷中的数据中随机选择进行测试


1.1测试强度

测试强度在有需求文档或者api的时候可以根据需求文档测试

在没有测试文档或者是api的时候,可以根据个人经验是否测试


考虑的因素:

1. 2个整数(正整数 负整数)

2.2个输入框是否为空

3.特殊符号

4.中英文字母/汉字

5. 提醒框/输入框是否重置


Bug是指在代码中存在的


1.2软件缺陷

定义:缺陷就是软件的问题,最终表现为没有客户的需求


1.3哪些属于软件缺陷

1. 软件没有达到规格说明书定义的功能

2.软件出现了规格说明书上指明不能存在的错误

3.软件功能超出了说明书上的范围

4.软件测试人员或者用户觉得不友好的

5.软件未达到说明书上应该具有的功能


1.4软件缺陷的表现形式

1.功能上没有实现或者部分没有实现

2.设计不合理功能不明确的逻辑不清楚的或者是逻辑本身就是存在矛盾

3.实际结果与预期结果不同

4.没有达到规格要求说明书上的要求性能指标

5.运行有错的崩溃中断页面混乱

6.数据不正确精度不够不完整或者是格式不统一

7.用户不能接受的问题。如果存取时间过长,页面不美观小广告太多

8.硬件或者软件存在的其他问题




1.5软件缺陷的状态(生命周期)

1.提交--测试人员提交发现的缺陷给开发

2.打开--将缺陷转一个待处理的状态

3.拒绝--开发者不认为这是一个缺陷

4. 修复--开发者将缺陷进行修改

5.关闭--测试人将进行回归测试之后认为该缺陷已经解决后

6.推迟--将问题持续到下一个版本中在去解决 但是要记录详细的修复日期或者版本


测试人员新提交的缺陷为新建状态,在确认有效后将缺陷状态改为打开状态,

开发人员修改后已修复状态测试人员需要进行回归测试,如果验证问题已解决将状态改为修复状态如果经过回归测试验证缺陷依然存在将缺陷的状态改为打开状态让开发再次修复。如果开发人认为此缺陷需要延期修复将缺陷的状态改为延期(推迟状态)

延期的时候有项目负责人开发主管测试主管确认才可以延期否则还是打开状态


1.6软件缺陷的严重程度进行划分

1.low     --表面性错误   

2.Medium  --影响到一个对立的功能,仅仅发生在特定条件下 与需求定义的不台一直 断断续续的出现的问题

3.High      --功能点没有实现不符合客户的需求 导致丢失数据

4.Veryhigh   --频繁死机 大部分功能不能使用

5.Critical     --系统瘫痪 异常退出 死循环 严重计算失误


结局缺陷的优先级


1.low  --时间和资源允许情况下进行修复

2.Medium --不会延迟发布

3.Highh  --必须在发布之前解决

4.Veryhigh    --必须解决  

5.  --  


1.7软件的缺陷的分类:

1.系统缺陷

2.数据缺陷

3.数据库缺陷

4.接口缺陷

5.功能缺陷

6.安全性缺陷

7.兼容行缺陷

8.性能缺陷

9.界面缺陷


17缺陷报告

1.7.1书写规范:

1.标题简洁  提供缺陷的本质信息即可

2.复现的步骤要详细 可以用数字编号(测试用例的编号)

3.实际结果要描述浮现后的结果

4.列出期望结果(在测试用例中存在期望结果可以不写)

5.提供条件(可以在测试用例)

6.提供严谨的测试报告给开发人员


Mysql

1.1数据库的介绍:

数据库从小到大的分类:

大型数据库Oracle  Db2

中型数据库sqlserver

小型数据库mysql

微型数据库sqlite

1.2数据库的安装

数据库分为服务端和客户端

客户端分为常用的可视化工具类:猫抓小海豚

安装的注意事项:

1. 如果安装失败需要在注册表将数据完全删除(运行输入regedit使用ctrl+F 查找并删除)

2. 安装的时候一定要更改编码utf-8

3.允许多个人员多数据库的访问

4.Mysql的端口号  3306   mysql只有用户权限 root

5.卸载mysql的服务端  同时将文件安装后的文件夹删除  



1.3数据库的数据类型

整数类型int  bigint

小数类型float  double

字符串类型char(10)数据库会分配一个长度为10个空间 长度是不可以 发生改变

Varchar(10)数据库会分配一个长度为10个空间 长度是可以发生改变的

时间类型date   time  datatime   timestamp(时间戳)

大数据类型blob  clob

文本类型text

1.4 sql的分类

DDL数据库定义语言      create  alter  drop (对库和表的操作)

DCL数据库控制语言      grant  revoke

DML数据库的操作语言     insert into    update  delete

DQL数据库的查询语言      select  order by  group by  limit  inner join  left join    right  join

1.5 sql的注意事项

1. mysql不区分大小写

2.数据库的中注释以 #   /**/   --

3.数据库的 “”  ‘’没有区别

1.6sql表语句

1.查看所有数据库

Show databases  

2.新建数据库

Create database数据库的库名  

3.删除数据库

Drop database数据库的库名

4.切换数据库

Use数据库库名

5.查看当前数据库的表

   Show tables



1创建表

Create table表名(

字段名数据类型约束条件,

字段名1数据类型1,

字段名2数据类型2,

)



Sql约束条件:

自增auto_increment    

主键primary key

非空not null

唯一unique

默认值default

外键foreign key(实现多表的联查)



Eg:

  Crate table student(

Id  int  primary key  auto_increment unique,

Stu_id  int not null unique,

Stu_name varchar(20),

Stu_sex default sex(‘男’),

    Stu_age int

)


 

1.6.2对表结构的操作

查看表结构

Desc表名   查看的是表的 字段名  数据类型 约束条件

查看建表语句

         Show crate table表名

修改表名

Alter table旧表名 rename 新表名

修改字段

     Alter table表名 change 字段名 新字段名 数据类型

添加字段

Alter table表名 add 字段名 数据类型

删除字段

Alter table表名 drop 字段名

删除表

    Drop table表名


 

1.6.3对表的增 删  改

              增:

1. 单条数据的增加

Insert  into表名(字段名) values (字段值)

2. 多条数据的增加

  Insert  into表名 (字段名) values (字段值1),(字段值2),(字 段3).。。。。




删除:delete from表名 where 删除条件

1.物理删

将数据从数据库中删除

2.逻辑删

将数据的状态从1改为 0  (0 为不显示  1显示)


        修改:

    Update form表名 set  字段名=字段值 where 条件

   跟新一行一列

     Update表 set 字段名 = 字段值 where id = 1

更新一行多列

Update表 set 字段名 = 字段值 where  name=‘张鹏’

更新多行一列

Update表名 set 字段名 = 字段值 where id>=3 and id <=5

跟新多行多列

Update表名 set 字段名 = 字段值 where  id = 2 or id= 3

跟新多个字段

Update表名 set 字段名1= 字段值 1, 字段2 = 字段值2 where 条件



   1.6.4对表的查询

   1. 查询所有:(*代表的是通配符 代表所有数据 可以换成 具体的字段查询)

Select * from表名

2.条件查询

Select * from表名 where 条件


3.区间查询


Select  * from表名 where id >3 and id<5    

Select  * from表名 where id >3 or id<5    

[if !supportLists]4. [endif]排序查询order by

升序asc(mysql中默认的就是asc)

降序desc


Select * from表名 order by stu_age asc/desc

5.分页查询limit初始值,记录行数(每页显示的行数)

  Select * from stu limit 0,3

每页记录数pagesize

页码数pageNumber


Limit(pageNumber-1) * pagesize   ,  pagesize

真分页将查询出来的所有数据直接分页

假分页将查询出来的所有数据在页面展示的时候在进行分页



6.去重查询distinct一般和聚合函数一起使用

7. 模糊查询like

    %相当于任意字符

    _相当于一个字符


Select * from表名 where  字段名 like ‘%张%’

Select * from表名 where  字段名 like ‘张_’

8.分组查询group by

Select * from表名 group by sex  =‘男’

9. having实现分组进行查询

 

1.6.5  sql中范围符号

  And   or   in  

         Between and    1 > M< 10  (错误的)


1.7聚合函数

1.7.1求和  

   Sum(字段名)


  Select  sum (stu_age) from表名

1.7.2求平均

Avg(字段名)

Select  avg(stu_age) from表名

1.7.3求最大值

Max(字段名)

Select  max(stu_age) from表名

1.7.4求最小值

Select  min(stu_age) from表名


1.7.5求总的行数

Select  count(stu_id) from表名


1.8单表查询的公式

Select分组条件 或者 聚合函数

From表名

Where条件 1

Group by分组条件

Having分组后的条件

Order by排序条件

Limit起始位置,记录数


1.9多表联查

--实现使用笛卡尔积  

--内连接   INNER JOIN  

--外连接   左外链  LEFT JOIN

-- 右外联RIGHT JOIN


-- student和中间表  stu_subject 实现相连

   select stu_name,sj.subjectname from student  as stu

   INNER JOIN stu_subject  as stu_sub

   ON stu.stu_id = stu_sub.stu_id

--中间表和 subject 表实现相连

   INNER JOIN `subject` as sj

   ON stu_sub.subjectnumber = sj.subjectnumber









      

                  



 

你可能感兴趣的:(测试软件开发)