当前位置:文档之家› 软件测试方法

软件测试方法

判断表法:
分为条件桩、条件项、动作桩、动作项
条件桩:它列出决定一组条件的对象
条件项:它列出各种可能条件的组合
动作桩:它列出所有的操作
动作项:它列出在对应的条件组合下的动作
假如有个订购单的检查。如果金额超出500元,又未过期,则发出批准单和提货单,但过期了,则不发批准单;如果金额低于500元,则无论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
金额 >500 >500 <=500 <=500
状态 未过期 已过期 未过期 已过期
发出批准单 a a a
发出提货单 a a a
发出通知单
数据库中有一个表Student_result用来记录学生各门功课的考试成绩。该表结构如下:ID(编号),Stu_code(学生编号),Subject(科目),Result(成绩),Flag(及格标志)。请根据要求写出相应的SQL语句。
a) 查询所有化学成绩高于80分的记录。
b) 将所有成绩不及格低于60分记录的及格标志设置为1。
a.select Result from Student_result where Result='化学'>80;
b. update Student_result set Flag = '1' where in (select Result from Student_result where Result<60)

SQL语言特点:
1.SQL语言采用集合操作方式,对数据的处理是成组进行的,可以加快数据处理速度。
2.执行SQL语句时,每次只能发送并处理一个条语句。
3.执行SQL语句时,用户只需要知道其逻辑含义,而不需要关心SQL语句的具体执行步骤。
4.使用SQL语句时,既可以采用交互方式进行,也可以将SQL语句嵌入到高级语言中。
 1、首先要了解LoadRunner是一种预测系统行为和性能的负载测试工具,
通过模拟用户实施并发负载及实时监测来分析问题的。它主要分为四个部
份;

脚本生成器Virtual User Generator:提供了基于录制的可视化图形
开发环境,录制脚本、脚本编写、事物、参数化等在此实现。

压力调度和监控系统Controller:负责对整个负载过程进行设置,设
定负载的周期与方式并监控系统。

压力生成器Load Generator:负责将脚本虚拟成大量的用户对系统实
时负载。

结果分析工具Analysis:对负载生成后的相关数据进行分析整理。
性能测试执行策略分析:
如何制定单业务测试、混合业务测试和疲劳强度测试等。
1、单业务测试

性能测试不可能对所有功能都进行测试,所以需要抽象一些特定的独立

参数化类型:
、疲劳强度测试

疲劳强度测试是指在系统正常运行的情况下,以一定的负载压力来长时间运行系统的测试。

疲劳强度测试的主要特点是长时间对目标测试系统加压,目的是测试系统的稳定性,持续时间一般在1小时以上;疲劳强度测试属于用户并发测试的延续,因此核心内容仍然是核心模块用户并发和组合模块用户并发,在编写测试用例时需要编写不同参数或者负载条件下的多个测试用例,可以参考混合业务并发性能测试用例的设计内容,通常修改相应的场景参数就可实现所需要的测试用例。
务来进行用例的设计。独立业务实际是指一些核心业务模块对应的业务,这些模块通常具有功能比较复杂,使用比较频繁,属于核心业务等特点。针对这类独立业务进行的性能测试称之为单业务性能测试。

用户并发能力测试是单业务性能测试的重点,用户并发能力测试是指模拟一定数量的用户同时使用某一核心模块的相同或者不同的功能,并且持续一段时间,考察系统能够支持指定的用户规模。

2、混合业务测试

在系统真实应用中,通常不会存在所有用户只使用一个或者几个核心业务模块的情况,即一个应用系统的每个功能模块都可能被使用到;所以性能测试既要模拟多用户的相同操作,又要模拟多用户的不同操作。

混合业务性能测试是最接近用户实际使用情况的测试,也是性能测试的一个必要内容。在混合业务测试中,通常需要按照用户的实际使用人数比例来模拟各个模块的组合并发情况。混合业务测试的突出特点是根据用户使用系统的情况分成不同的用户组进行并发,每组的用户比例要根据实际情况来匹配,通常会取各个相关模块最大的并发用户数目进行组合。
用例描述
本测试用例模拟并发压力负载较大的主要业务“用户登录”、“ 学校用户批量导入学生综合信息”、“ 学校用户批量修改学生学籍信息”进行并发用户数为2500的综合业务测试。
、疲劳强度测试

疲劳强度测试是指在系统正常运行的情况下,以一定的负载压力来长时间运行系统的测试。疲劳强度测试的主要特点是长时间对目标测试系统加压,目的是测试系统的稳定性,持续时间一般在1小时以上;疲劳强度测试属于用户并发测试的延续,因此核心内容仍然是核心模块用户并发和组合模块用户并发,在编写测试用例时需要编写不同参数或者负载条件下的多个测试用例,可以参考混合业务并发性能测试用例的设计内容,通常修改相应的场景参数就可实现所需要的测试用例。

参数化类型:

SQL语言分类:
数据查询语言(SELECT 语句)用于检索数据库的数据
数据操纵语言(DATA MANIPULATION LANGUAGE, DML)用于改变数据库的数据
有INSERT UPDATE DELETE

务控制语言(TRANSACTIONAL CONTROL LANGUAGE TCL)用于维护数据的一致性,有COMMIT ROLLBACK SAVEPOINT
数据定义语言(DATA DEFINITION LANGUAGE DDL)用于建立、修改、删除数据库对象如CREATE TABLE ALTER DROP
数据控制语言(DATA CONTROL LANGUAGE)用于给用户授于权限和收回操作
GRANT REVOKE
查看一个表中2到3条记录


select * from yang t where rownum<5 and t.snumber not in(select x.snumber from yang x where rownum<5);
假如一个表中有10条记录:就查5到10条记录
select * from yang t where rownum<7 and t.snumber not in(select snumber from yang where rownum<5);
rownum 是行数 rowid是行号与编号 distinct是取消查询重复行的函数
select distinct deptno,job,make from emp;

select * from yang where snumber between 5 and 10; 查询5到10条记录
插入日期:
insert into tt values(to_date('1987-2-17','YYYY-MM-DD'));
查询日期:
select name, to_char(date,'YYYY-MM-DD');

查询日期条件大于1987-2-17
select snumber,data from tt where data>to_date('1987-2-17','YYYY-MM-DD');
IN用于查询列表的两端的值:
假如查询一个表中的第2和8条记录信息:
select * from tt where snumber in(2,8);
ORACLE中多表插入是ALL与FIRST操作符
insert all
when deptno =10 then into dept10
when deptno=20 then into dept20
select * from emp;
更新表的中日期时:
UPDATE TT SET DATA=to_date('1987-2-17','yyyy-mm-dd');
WHERE snumber=02;
想改一个人的信息与另一个人的信息相同则可以用
update emp set(job,sal,comm) =(select job,sal,comm from emp where ename='smit') where ename = 'scott';
删除数据:
delete from emo;是删除是全表中所有数据,但不能释放空间,可以回退
truncate table它能删除表还能释放空间。
取得方差和标准偏差是:variance ,stddev
select variance(sal) stddev(sal);
如果在SELECT 语句中有GROUP BY HAVING ORDER BY子句,则必须将ORDER BY 子句放在最后一面,默认情况下GROUP BY 子句统计数据时,会自运按照分组列的升序开始
如果有GROUP BY 后面必须有HAVING 与WHERE 不能同时出现。
select snumber avg(sal),ENAME from tt group by snumber ; 提示不是GROUP BY表达式。所以要把ENAME删除。
当限制分组函数显示结果时,必须要使用HAVING子句,而不能用WHERE 子句使用
如果要显示部门平均工资与岗位的平均工资要用GrouPING SETS函数
select deptno,job,avg(sal) from tt group by grouping sets(deptno,job);
连接查询时,如果两个表有相同的字段必须要用表的名字加前缀啊
子查询是个重点
多行子查询是指返回多行数据的子查询语句。当在WHERE子句中使用多行子查询时,必须要使用多行比较符(IN,ANY,ALL)
IN 匹配于子查询结果的任一个值即可
ALL 必须要符合子查询结果的所有值
ANY 只要符合子查询结果的任一个值即可
注意ALL与ANY操作符

不能单独使用,而只能与单行比较符(=,》《,》=,《=)结合起使用。
子查询不仅适用于SELECT语句,也适用于任何DML语句.
如:
insert into employee(id,name,title,salary) select empno,ename,
job,sal from emp;
将smith同岗位的雇员工资和补助更新为与SMITH的工资和补助完全相同为例:
update emp set (sal,comm) =
select(sal,comm from emp where ename='smitem') where job =(select
job from emp where ename='smith')
显示高于部门30号的所有雇员工资的雇员名、工资、部门号
select ename,deptno,sal from emp where sal>all(select sal from emp
where deptno = 30)
显示部门10岗位的雇员名、岗位、工资、部门号为例
select ename,job,sal,deptno from emp where job in(select distinct job from emp where deptno=10);
select deptno,avg(sal) from emp where avg(sal) > 10000 group by deptno 这个是错误的,此处不能使用分组函数。
正确写法:
select deptno,avg(sal) from emp group by deptno having avg(sal)>2500
查询平均工资小于3000元的部门集合
性能测试的测试内容:
首先根据用户需求来模拟系统运行的业务压力和使用场景
系统的性能是否满足要求,测试参数响应时间(最小响应时间、最大响应时间、平均响应时间)是否符合需求
基于不同地区的网络环境,将用户所所能承受的响应时间限定为12-15秒
负载、容量、压力 等测试
负载测试:
服务器在高负载情况下的性能行为表现。负载可以是最大用户数、交易数、事务数等
系统的处理极限
容量测试:
可处理同时在线的最大用户数
系统的最大吞吐量
最大的并发数
压力测试:
在一定的饱和状态下,系统是否会出现错误
查找系统的瓶颈
不能接受的性能点
疲劳强度测试
支持的最大并发用户数或者日常运行用户数
处理最大工作强度性能
大量数据测试
系统存储、传输、统计、查询等业务进行独立的大数据量测试
并发性测试
性能测试的内容比较广泛,现在主要列举一些平常工作中比较多的监控指标:
最大并发用户数
业务操作响应时间
服务器资源监控指标(内存、处理器、磁盘I/O)
数据库相应的指标等
测试内容:有易用性测试、功能、文档、安全性、性能测试、数据测试
可扩展性测试。
通俗的讲,一个产品从研发到出厂的工程中,测试分为三个阶段:单元测试、集成测试、系统测试;

单元测试:一个模块的功能及常规错误测试;

集成测试:完成单元测试后,各模块联调测试;集中在各模块的接口是否一致、各模块间的数据流和控制硫是否按照设计实现其功能、以及结果的正确性验证等等;可以使整个产品的集成测试,也可以使大模块的集成测试;

系统测试:针对整个产品的全面测试

,既包含各模块的验证性测试(验证前两个阶段测试的正确性)和功能性(产品提交个用户的功能)测试,又包括对整个产品的健壮性、安全性、可维护性及各种性能参数的测试;
设计测试用例的依据有:
根据《软件需求规格说明书》,概要设计、详细设计文档和各阶段《软件测试方案》来编写各阶段的测试用例。
集成测试的策略有那些:
成对集成、邻居集成、大爆炸集成、自顶向下集成、自底向上集成、三明治集成
常见软件测试策略有:数据完整性测试、功能测试、易用性测试、性能测试
配置测试、兼容性测试、本地化测试。
基于WEB信息管理系统测试时应考虑的因素有那些:
1.从功能测试上讲:链接测试、表单测试、COOKIES测试、设计语言测试、数据库测试
2.性能测试:连接速度测试、负载测试、压力测试
3.可用性测试:导航测试、图形测试、内容测试、整体界面测试等
4.兼容性测试:平台、浏览器测试、分便率
5.安全测试:登录、SSL、日志文件、接口等。
概述软件本地化测试的测试对象是本地化的软件,需要在本地化的操作系统上进行。虽然本地化的软件是基于源程序软件创建的,但二者的测试内容和重点具有很大的不同。
 
一般地,二者的不同在于:第一,测试顺序不同。首先要现对源程序软件进行测试,然后再创建本地化软件,测试本地化软件。第二,测试内容和重点不同。源程序软件主要测试功能和性能,结合软件界面的测试。本地化软件的测试,更注重因本地化引起的错误,例如,翻译是否正确,本地化的界面是否美观,本地化后的功能是否与源语言软件保持一致。第三,测试环境不同。源程序软件测试通常在源语言的操作系统上进行。本地化软件在本地化的操作系统上进行。
 
本地化测试过程中,需要同时运行源程序软件和本地化软件,依照源程序软件结果作为本地化软件的主要参考。
 
软件本地化的错误类型软件本地化的错误主要分为两大类:第一、由于源程序软件编码错误引起的;第二,由于软件本地化引起的。其中由于软件本地化产生的错误类型包括语句没有翻译、翻译错误、控件布局错误。对于东亚语系软件,可能存在双字节字符显示错误等。
 
综合分析本地化软件的错误类别,可以归结为四种类型:翻译错误,功能错误,界面错误,双字节错误。
软件测试项目从什么时候开始,为什么?
软件测试应该从需求分析阶段就开始,发现越早损失越少
因为测试的对象不仅仅是程序编码,对软件开发过程中产生的所有产品都要测试,并且软件BUG发现的越早,修复它

所花费用成本比较低,如果发布修复软件却比项目发布之前修复的费用高出10-100倍。
需求测试注意事项有哪些:
1.要与客户有良好的沟通
2.确立需求规格说明书,需求规格说明书尽量做到完整、详细,并与客户实际需求保持一致。
很多做开发的人和做测试的人都会抱怨
计划赶不上变化,客户需求一直都在变~!
测试分析测试用例的注意事项:
你写的测试用例的步骤,要让别人能看懂,不然别人怎么执行你的测试用例
就说你的测试用例的步骤、标题、预期结果要详细说明,而且用例之间的先后顺序是否跟业务流程是否一致,即用例在业务流程中的彼此顺序关系是否合理。一.质量属性

Quality Attributes

1.正确性:确保测试标题描述部分的内容正确性。

2.经济性:只为确定需要的目的设计相应的测试步骤

3.适应性:既能适应短期需要,又能考虑长远需要。

4.可追踪性:用例能追踪到一个具体的需求。

5.自我清理性:单个用例不会影响整个测试环境,即用例执行完了可以恢复原有的测试环境。

二.结构化和可测试性

Structure and testability

1.含有规范的测试标题和编号。

2.含有一个确定的测试某一个特定需求的目的。

3.含有关于测试方法的描述。

4.指定条件信息-环境、数据、预置的条件测试、安全入口等。

5.含有操作步骤和预期结果。

6.陈述任何辅助证据,例如截图报告并确保这些东西妥善保存。

7.确保测试环境的干净(即用例不会影响整个环境)。

8.描述时使用主动语气结构。

9.操作步骤不要超过15步

10.确保单个用例测试执行时用时不超过20分钟。

11.自动化脚本用例添加必要的注释,比如目的、输入和期望结果。

12.如果可能,建议提供可选择性的预置条件测试。

13.用例之间的先后顺序是否跟业务流程一致,即用例在业务流程中的彼此顺序关系是否合理。

三.配置管理

Configuration management

1.采用命名和编号规范归档。

2.保存为特定的格式,文件类型。

3.用例版本是否与当前被测试软件版本一致(对应)。

4.包含用例需要的相应测试对象,如特定数据库。

5.存档阅读。

6.存档时按角色控制访问方式

图书(图书号,图书名,作者编号,出版社,出版日期)
作者(作者姓名,作者编号,年龄,性别)
用SQL语句查询年龄小于平均年龄的作者姓名、图书名,出版社。
select 图书名,出版社,作者姓名,作者编号,年龄 from 作者 a,图书 e
where a.作者编号

=e.作者编号 and 年龄<(select avg(年龄) from 作者);
触发器:是一种特殊的存储过程,是由条件来操作完成的
用户不能直接调用它,
create or replace trigger sal_val
after update or delete or insert
on employee for each row
begin
insert into salvar values(:oldsal,:newsal);
end sal_val;
您认为做好测试设计的关键是什么
黑盒测试设计的关键同样也是较少的用例覆盖尽可能多输出和输入接口,不可能做完全测试,以最小的用例在合理时间内发现最多的问题。






相关主题
文本预览
相关文档 最新文档