qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

数据库触发器控制

①选修成绩表SCTS中,学生选修成绩由平时成绩(regular_grade)和考试成绩(exam_grade)构成课程总评成绩(total_mark),公式为:total_mark= regular_grade*30%+ exam_grade*70%
  设计DML触发器,使得当用户修改某位学生选修某门课程的平时成绩或者考试成绩时,自动实现对该学生该门课程总评成绩的更新。
Create trigger Tri_UPDATE_SCTS
on SCTS
after UPDATE
AS
BEGIN
IF UPDATE(regular_grade)or UPDATE(exam_grade)
BEGIN
DECLARE @rgrade float;
DECLARE @egrade float;
select @rgrade=regular_grade,@egrade= exam_grade from inserted
update SCTS
set total_mark=0.3*@rgrade+0.7*@egrade
from inserted
where SCTS.studentid =inserted.studentid
and SCTS.courseid=inserted.courseid
and SCTS.teacherid =inserted.teacherid
END
END
  --测试触发器
update  Scts
set regular_grade='100',exam_grade='100'
where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
select *from scts
where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
  --2、②设计DML触发器,使得当某学生在一个学期中所选修的课程总学分超过20学分时,自动提示“你选修的总学分已达到最大值,不允许继续选课!”的信息;
Create trigger Tri_IN_LIMIT_SCTS
on SCTS
after insert --注意这里AFTER是插入之后的
AS
BEGIN
BEGIN
DECLARE @allcredit float;
DECLARE @sid varchar(12);
select @sid =inserted.studentid from inserted
select  @allcredit=sum(credit)
from courses
where courseid in(
select courseid
from scts
where studentid=@sid
)
if (@allcredit>20)
begin
Rollback Transaction
print @allcredit
print'你选修的总学分已达到最大值,不允许继续选课!'
end
else
print'选课成功'
END
END
 --测试触发器
select  sum(credit) '总分'
from courses
where courseid in(
select courseid
from scts
where studentid='200520701201'
)
insert into Scts(courseid,studentid,teacherid)
values ('50103Q0','200520701201','080102');
select *from courses where courseid='10042B0'
  --3.设计DML触发器限定:对于“专业”(COURSES.character,包括专业课、专业基础、专业选修等)课程,只有该课程开课学院的学生才能选修,否则提示“不允许跨院选课!”的提示信息。
Create trigger Tri_INSERT_SCTS
on SCTS
after insert
AS
BEGIN
DECLARE @stype varchar(10);
DECLARE @collegeid varchar(5);
if exists(select * from courses AS C
where C.courseid in(select courseid  from inserted ) and C.Character like '专业%')
BEGIN
select @collegeid=college from courses AS C
where C.courseid in(select courseid  from inserted )
if exists (select college from students AS S
where S.studentid in(select studentid  from inserted )and S.college=@collegeid)
PRINT '选专业课成功'
else
BEGIN
Rollback Transaction
PRINT '不允许跨院选课!'
END
END
ELSE
PRINT '选修公共选修课成功'
END
  --选修本学院专业课
  insert into Scts(courseid,studentid,teacherid)
  values ('20224B0','200520805403','080102');
  --选修非本院专业课 终止
  insert into Scts(courseid,studentid,teacherid)
  values ('10019B5','200520805403','080102');
  --选修公共选修课
insert into Scts(courseid,studentid,teacherid)
values ('50095Q0','200520805403','080102');
select *from students where college='08'
select *from colleges where collegeid='08'
select *from courses where courseid in (select courseid from courses where character not like '专业%')and college
='08'
select *from scts where studentid='200520805403'
delete from scts  where  courseid='20224B0' and  studentid='200520805403';
  --4、设计DML触发器以实现对敏感数据的自动审计:当用户在SCTS表中插入新记录或者更新SCTS表中的regular_grade和exam_grade属性列时,自动在成绩变化表GRADE_LOG(student, course, teacher, regular_grade, exam_grade, username, userdate)中增加一条相应记录,以记录当前用户对学生成绩的操作。(system_user)
Create table GRADE_LOG(
id int  identity(1,1) primary key,
student varchar(20) not null ,
course  varchar(50) not null,
teacher varchar(20) not null,
regular_grade float ,
exam_grade float,
username  varchar(20) not null,
userdate datetime not null,
operator varchar(10) not null
)
--select system_user  getdate()
Create trigger  Tri_IN_U_SCTS
on SCTS
after INSERT,UPDATE
AS
BEGIN
IF UPDATE(regular_grade)OR UPDATE(exam_grade)or (exists (select 1 from inserted) and not exists (select 1
from deleted))
BEGIN
DECLARE @student varchar(20);
DECLARE @course varchar(50);
DECLARE @teacher varchar(20);
DECLARE @rgrade float;
DECLARE @egrade float;
DECLARE @username  varchar(20);
DECLARE @date datetime;
DECLARE @type varchar(10);
select @type='update';
if exists (select 1 from inserted) and not exists (select 1 from deleted)
select @type='insert';
select @student=sname from students where studentid in(select studentid  from inserted )
select @course =cname from courses where courseid in (select courseid from inserted)
select @teacher =tname from teachers where teacherid in (select teacherid from inserted)
select @rgrade=regular_grade,@egrade=exam_grade from inserted
select @username=system_user,@date=getdate();
insert into GRADE_LOG
values(@student,@course,@teacher,@rgrade,@egrade,@username,@date,@type)
END
END
select * from  GRADE_LOG;
  --更新成绩
  update  Scts
  set regular_grade='100',exam_grade='20'
  where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
  --只更新总成绩,不激活触发器
  update  Scts
  set total_mark='100'
  where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
  --5、DDL触发器,禁止用户在Teaching数据库中的修改表和删除表操作。
CREATE TRIGGER TRI_Teaching_DDL
ON database
for alter_table,drop_table
AS
BEGIN
print '不允许修改或删除数据表!'
Rollback Transaction
END

posted @ 2014-05-04 13:03 顺其自然EVO 阅读(167) | 评论 (0)编辑 收藏

JAVA基础—关于Runtime对象

/*
Runtime对象
该类并没有提供构造函数。
说明不可以new对象。那么会直接想到该类中的方法都是静态的。
发现该类中还有非静态方法。
说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。
由这个特点可以看出该类使用了单例设计模式完成。
该方式是static Runtime getRuntime();
*/
package com.fwj.reitheima;
import java.io.IOException;
public class RuntimeDemo {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//获取Runtime类对象
Runtime r=Runtime.getRuntime();
//拿记事本软件打开指定文件
Process p = r.exec("notepad.exe SystemDemo.java");
Thread.sleep(5000);
p.destroy();
}
}

posted @ 2014-05-04 13:02 顺其自然EVO 阅读(156) | 评论 (0)编辑 收藏

Orcale 远程配置连接数据库

 修改orcale里面的tnsnames.ora文件
1# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =222222)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
  增加你要远程的地址:
112 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 2222222)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = www)
)
)

posted @ 2014-05-04 13:02 顺其自然EVO 阅读(157) | 评论 (0)编辑 收藏

万能写入sql语句,并且防注入

通过perpare()方法和检查字段防sql注入.
$pdo=new PDO('mysql:host=localhost;dbname=scms', 'root' );
$_POST=array('title'=>23,'content'=>'kmm');
$keys= array_keys($_POST);
/**
* $filetarr数组用于规定只可以写入的字段
*/
$filetarr=array('title','content');
$filtre=true;
foreach ($keys as $value){
if(in_array($value, $filetarr,true)){
}else{
//var_dump($value);
$filtre=false;
break;
}
}
if($filtre){
$fields=implode(',', $keys);
$fieldszwh=':'.implode(',:', $keys);
$sql="insert into article({$fields}) values({$fieldszwh})";
$pdostatement= $pdo->prepare($sql);
$pdostatement->execute($_POST);
var_dump($pdostatement->errorInfo());
}else{
echo '非法字段';
}
  2.万能条件语句,同样通过字段限制防注入
$pdo=new PDO('mysql:host=localhost;dbname=scms', 'root' );
$_POST=array('title'=>23,'content'=>'km');
$keys= array_keys($_POST);
/**
* $filetarr数组用于规定只可以写入的字段
*/
$filetarr=array('title','content');
$filtre=true;
$where='';
/**
*$wherearr数组用来根据字段指定查询条件,例如大于,等于,like
*/
$wherearr=array('title'=>'like','content'=>'>%');
foreach ($keys as $value){
if(in_array($value, $filetarr,true)){
if($wherearr[$value]==='between'){
if(count(explode(',', $_POST[$value]))===1){
break;
}
$where.='and '.$value.' between '.":{$value}left".' and '.":{$value}right ";
$_POST[$value]=explode(',', $_POST[$value]);
$_POST[$value.'left']=$_POST[$value][0];
$_POST[$value.'right']=$_POST[$value][1];
unset($_POST[$value]);
}else{
$where.='and '.$value.' '.$wherearr[$value].' '.":{$value} ";
}
}else{
//var_dump($value);
$filtre=false;
break;
}
}
/**
*
*如果用or连接条件语句,截取前面两个字符
*/
$where=substr($where,3);
if($filtre){
$fields=implode(',', $keys);
$fieldszwh=':'.implode(',:', $keys);
$sql="select  * from article where {$where}";
var_dump($sql);
$pdostatement= $pdo->prepare($sql);
$pdostatement->execute($_POST);
$re=     $pdostatement->fetchAll();
var_dump($pdostatement->errorInfo());
var_dump($_POST);
var_dump($re);
}else{
echo '非法字段';
}

posted @ 2014-05-04 13:01 顺其自然EVO 阅读(280) | 评论 (0)编辑 收藏

敏捷开发离不开自动化单元测试

 概述:敏捷项目预想测试计划,测试创建和测试执行在项目生命周期中贯穿始终。因此单元测试的需要,尤其是自动化单元测试不可忽略,而且应当作为整个团队的关键责任-而不仅仅是软件开发人员的责任。敏捷方法是建立在短期、可迭代并且可增长发布版本,可以对变更有持续反馈和灵活应对的基础上的管理软件开发的方法。起源于快速演变的商业环境,由于需要产品更快地完成改善和修改,敏捷方法推动了能够贯穿适用于整个应用程序管理流程的组织结构的速度质量,应对能力和适应性。这篇文章阐述了为什么敏捷开发没有单元测试不能有效地实施-尤其是没有自动化单元测试的时候。
  代码质量的重要性
  开发者早在数年前就知道越是到项目后期发现缺陷,修补缺陷的代价就越高。当开发人员发现一个缺陷的时候,有时候需要几分钟来解决。如果在测试中将缺陷漏掉,然后被顾客发现,图1说明弥补代价会以几何指数增长。
     ......
   查看全文请点击下载:http://www.51testing.com/html/15/n-860515.html
  客户知道对每个发现的缺陷,他将失去宝贵的业务时间。开发者知道每个返回的缺陷意味着要花大量时间修复而不是钻研新的功能特性。
  敏捷方法做能工作的软件,并将其与初期反馈结合到一起。例如,初期系统发布可以获取用户对软件运行情况的反馈。为了给开发者信心,他们写的代码可以工作,单元测试提供了最快的质量反馈。
  缺陷发现越早,修复他们的代价就越低。因为敏捷方法支持高质量代码,团队成员就应当多做单元测试。类似地,自动化测试让开发者能够在版本发布前重复多次地得到代码质量的反馈。
  单元测试是什么?
  单元测试是一种方法,这种方法将独立的软件单元,关联的数据和使用步骤进行测试,决定是否运行正确。单元通常是一小片代码,举个例子,一个单独的函数。单元测试就是一个简短的函数,测试该单元的行为,给出一个成功/失败的结果。这个通过用一个已知的单独的正确值来测试函数完成。单元测试经常使用模拟对象来预测式地模拟依赖行为。
      ......
   查看全文请点击下载:http://www.51testing.com/html/15/n-860515.html
  本文收录于《51测试天地》电子杂志第三十三期。
  版权声明:本文出自51Testing软件测试网电子杂志——《51测试天地》第三十三期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

posted @ 2014-05-04 13:00 顺其自然EVO 阅读(203) | 评论 (0)编辑 收藏

QTP处理各类鼠标事件fireEvent

在做web测试时,页面上的HTML标签会包含各类事件:单击(onclick)、双击(onDblClick)、光标聚集(OnBlur)、onchange、onfocus、onmousedown、onmouseup、onmouseover、onmouseout、onsubmit、onreset、onpropertychange等。
  在用QTP录制时,有可能会有一些事件录制不到。这时候你可以进行一些设置,QTP/tools/Web Event Recording Configuration/custom settings/event/add就可以添加你想要录制下来的事件啦。
  当然,这篇文章的主题并不是上述这些。
  先描述一下我的问题,项目中碰到一个列表控件,是采用ligerUI做的,双击列表中的一行,会读到这一行的内容,然后把数据赋给页面的其他标签,还包括一些隐藏域。
  首先,我在录制的时候发现双击事件录不到(上述Web Event Recording Configuration已经设置好),于是采用低级别录制,双击事件顺利录制到。
  接着,在回放的时候,发现双击事件失效,并没有如预期中的,我双击一个项,然后页面别的元素获取到他的值。
  我的第一个操作是,因为知道整个页面实现的逻辑是,获取到每一项的唯一标志符后,把这个值赋给页面的一个隐藏域,然后后续的工作就都可以顺利进行了。因为这里涉及到隐藏域的问题,我们知道QTP采用的是对象识别的模式,意识就是,他只能识别他看的到的,在表面上显示出来的对象。这里采用DOM对象的方法,DOM是直接从源代码(HTML页面)获取对象。所以页面上的各种隐藏域,各种可以通过标签、ID、属性等获取到的对象就可以很顺利的在QTP中读取到。DOM对象也很简单,只需要在你想要识别的对象的父对象后面加上“ .Object ”,然后就可以通过getElementById("id")、document.getElementById("id")、getElementsByName("html tag")等各种js获取对象的方法来对页面为所欲为了。
  比如这里,我的实现代码就变成了:
1 set obj =  Browser("Browser").Page("Page").Object.getElementById("verifyID")
2 obj.value = "0101002699"
  这个只是很肤浅的解决了问题,但页面上该显示正确值的地方的值还是空的。那就是说还得弄一个能真正解决该问题的方法。
  现在我们就引入了fireevent方法。
  fireevent是JS中的一个方法,以下摘自MSDN的解释
  fireevent执行的效果就是“等同于”在目标元素上进行了相关操作。可以模拟各种包括单击在内的,文章一开头就列出来的各种操作。
  那我上面遇到的问题的解决办法就是:
Set list =  Browser("Browser").Page("Page").WebElement("list").Object
list.document.getElementById("maingrid4|2|r1001").fireevent("ondblclick")
  这样,我想要的双击事件的回放问题,就顺利解决啦。

posted @ 2014-05-04 13:00 顺其自然EVO 阅读(2516) | 评论 (0)编辑 收藏

LoadRunner手工关联

  web_reg_save_param取服务器返回的值,关联服务器需要校验的值,不一定第动态的,有可能不变,根据服务器的算法决定
  关联需要注意的项:找到服务器的动态的值;找到关联值得左右边界;关联所放置的位置。
  有时候需要使用的数据是服务器动态产生的,但是录制的时候是固定的,此时也也可以用关联来处理。比如新增用例时TCID是服务器动态产生的,此时需要使用关联来获取这个TCID的值。具体步骤如下:
  1、找到需要关联的地方,就是会使服务器产生动态数据的这个提交。设置手工关联必须在这个提交之前,这个位置必须设置正确,否则无法获取关联。比如下面的代码:
  web_set_max_html_param_len ("9999"); --函数可以自定义关联返回值存放的参数的最大长度,默认是1024,如果不够需要增加
  web_reg_save_param("tcid","LB=input name=\"yl_tcid\" type=\"text\" value=\"","RB=\"",LAST);  --设置关联,参数一为变量名,参数二为左边界,参数三为右边界
  web_submit_data("TB_CeShiYLGL.aspx_2",                  --以下为一个客户端提交函数,上面的关联函数就是为了获取该提交后,服务器反馈的值。
"Action=http://192.168.3.99/tbasetest/CeShiYL/TB_CeShiYLGL.aspx?bz=1&GONGNENGID=MTE*",
"Method=POST",
"RecContentType=text/html",
"Referer=http://192.168.3.99/tbasetest/CeShiYL/TB_CeShiYLGL.aspx?bz=1&GONGNENGID=MTE*",
"Snapshot=t19.inf",
"Mode=HTML",
ITEMDATA,
"Name=__EVENTTARGET", "Value=LB_Add", ENDITEM,
"Name=__EVENTARGUMENT", "Value=", ENDITEM,
"Name=__LASTFOCUS", "Value=", ENDITEM,
"Name=__VIEWSTATE", "Value=/", ENDITEM,
"Name=hdnYongLiGL", "Value=", ENDITEM,
"Name=hdnDelRows", "Value=", ENDITEM,
"Name=yl_tcid", "Value=1725", ENDITEM,
"Name=yl_xm", "Value=1", ENDITEM,
"Name=yl_xt", "Value=BAGL-1", ENDITEM,
"Name=yxj", "Value=yl_gj", ENDITEM,
"Name=yl_lyxq", "Value=", ENDITEM,
"Name=yl_qzyl", "Value=", ENDITEM,
"Name=yl_cjms", "Value=", ENDITEM,
"Name=YuQiJG", "Value=%3CDisplayLayout%3E%3CStateChanges%3E%3C/StateChanges%3E%3C/DisplayLayout%3E", ENDITEM,
"Name=yl_yyjgid", "Value=", ENDITEM,
"Name=yl_yyjgidOrign", "Value=", ENDITEM,
"Name=ylkhid", "Value=", ENDITEM,
"Name=QuXiaoBZ", "Value=1", ENDITEM,
"Name=_IG_CSS_LINKS_", "Value=", ENDITEM,
LAST);
lr_output_message("Value TCID = %s", lr_eval_string("{tcid}"));    --输出关联的变量值
  此时肯定会有一个疑问,我们如何获取左右边界的值。其实也比较简单,常见的方法见下图
  注意点:
  1、设置左右边界时,遇到的引号必须加转义符号
  2、自定义关联返回值存放的参数的最大长度
  3、注意关联函数的位置

posted @ 2014-05-04 13:00 顺其自然EVO 阅读(179) | 评论 (0)编辑 收藏

UI测试常用技巧

  如何在当前界面中查找第一个ListView中的带有文本属性为Apps的子控件。
UiObjectappItem=newUiObject(newUiSelector()
.className("android.widget.ListView").instance(1)
.childSelector(newUiSelector().text("Apps")));
  如何查找当前显示界面中的取消按钮和确认按钮:
  UiObjectcancelButton=newUiObject(newUiSelector().text("Cancel"));
  UiObjectokButton=newUiObject(newUiSelector().text("OK"));
  查找到的UiObject实例可以在其他测试代码中重用。需要注意的是:每次使用UiObject做操作的时候uiautomator都会在当前屏幕重新查找该控件。
  如下代码uiautomator工具在当前界面查找文本内容为“OK”的控件。如果存在并且可用则模拟用户点击该控件。
if(okButton.exists()&&okButton.isEnabled())
{
okButton.click();
}
  还可以限制仅仅查找特定类型的控件。例如如下代码只查找文本为“Cancel”和“OK”的android.widget.Button类型控件。
UiObjectcancelButton=newUiObject(newUiSelector().text("Cancel")
.className("android.widget.Button"));
UiObjectokButton=newUiObject(newUiSelector().text("OK")
.className("android.widget.Button"));
UiCollection
  代表控件的集合。获取UiCollection的方式和UiObject一样,通过UiSelector查找。UiCollection对应Android系统中的ViewGroup以及子控件。
  如下代码演示如何通过UiSelector来获取包含视频集合的UiCollection。
  UiCollectionvideos=newUiCollection(newUiSelector()
  .className("android.widget.FrameLayout"));
  如果每个视频是放到LinearLayout中的,则可以通过如下方式获取视频的数目:
  intcount=videos.getChildCount(newUiSelector()
  .className("android.widget.LinearLayout"));
  如果需要查找标签为“CuteBabyLaughing”的视频,并点击。则可以通过如下方式:
UiObjectvideo=videos.getChildByText(newUiSelector()
.className("android.widget.LinearLayout"),"CuteBabyLaughing");
video.click();
  同样还可以模拟其他用户操作。例如,模拟选择视频的操作如下:
UiObjectcheckBox=video.getChild(newUiSelector()
.className("android.widget.Checkbox"));
if(!checkBox.isSelected())checkbox.click();
UiScrollable
  代表可滚动的控件。可以用UiScrollable来模拟水平或者垂直滚动的UI元素。如果需要操作的元素在屏幕外需要滚动屏幕才能看到的情况下需要使用UiScrollable。
  例如,下面的代码显示了如何模拟滚动到“Settings”菜单并点击“Abouttablet”菜单的操作。
UiScrollablesettingsItem=newUiScrollable(newUiSelector()
.className("android.widget.ListView"));
UiObjectabout=settingsItem.getChildByText(newUiSelector()
.className("android.widget.LinearLayout"),"Abouttablet");
about.click()

posted @ 2014-05-04 12:59 顺其自然EVO 阅读(400) | 评论 (0)编辑 收藏

Android应用测试总结

 Android应用程序测试注意要点:
  1、应用程序功能是否都实现
  2、给用户的提示信息是否简单、易于理解,且符合当前事件
  3、交互性事件的影响:
  (1)硬件:USB插拔、电池没电及插拔;
  (2)软件:电话来电、短信、QQ,音乐盒等后台运行的软件。
  4、网络影响:wifi、2G/3G/4G
  5、非法操作对应用程序的影响
  下面是针对容易忽视测试路径的功能测试模块的测试用例做一个小结:
  一、登录
  1、wifi对登录的影响
  2、数字、字母、特殊字符、汉字在登录输入框中的响应
  3、被删除的用户能否登录成功
  4、被禁止的用户能否登录成功
  5、不存在的用户能否登录成功
  二、下载
  1、wifi正常,下载资源期间,账号退出/切换的影响
  2、wifi正常,下载资源期间,暂停、取消的使用
  3、wifi正常,下载选择的切换
  4、wifi正常,账号A的资源下载选择后台下载,账号B登录共同下载相同的资源,是否发生异常
  5、wifi正常,后台有资源正在下载(不同账号或同一个账号),使用“一键清理”是否能清除完全
  6、资源正在下载过程中,wifi断开,下载给出的响应,连接wifi之后能否继续下载当前资源
  7、资源正在下载过程中,切换wifi账号,对下载的影响
  8、wifi正常,弹出下载对话框,断开wifi,点击下载,应用给出的响应,以及连接wifi之后,是否能下载成功。
  9、wifi正常,下载队列中的资源下载完成之后是否自动继续等待队列中资源的下载
  10、下载数据能否查看,且内容是否完整
  11、删除本地缓存的下载文件,再次点击下载,是否能下载成功
  12、手机内存已满时,下载开始或中途是否有相应的提示信息
  13、下载过程中没电关机、USB的插拔,突然关机对下载的影响
  三、调查问卷
  1、问卷内容的布局、内容显示是否符合要求
  2、手机HOME键、返回键、MENU键的响应
  3、暂存、交卷多次点击的响应
  4、wifi对暂存和交卷的影响,缓存时间的长短

posted @ 2014-05-04 12:59 顺其自然EVO 阅读(179) | 评论 (0)编辑 收藏

企业面试经常问到的问题

 1、请你自我介绍一下自己好吗?
  回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”,企业喜欢有礼貌的求职者。
  2、你觉得你个性上最大的优点是什么?
  回答提示:沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。
  3、说说你最大的缺点?
  回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌岌可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分,企业喜欢聪明的求职者。
  4、你对薪资的要求?
  回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱,他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。
  回答样本一:我对工资没有硬性要求,我相信贵公司在处理我的问题上会友善合理。我注重的是找对工作机会,所以只要条件公平,我则不会计较太多。
  回答样本二:我受过系统的软件编程的训练,不需要进行大量的培训,而且我本人也对编程特别感兴趣。因此,我希望公司能根据我的情况和市场标准的水平,给我合理的薪水。
  回答样本三:如果你必须自己说出具体数目,请不要说一个宽泛的范围,那样你将只能得到最低限度的数字。最好给出一个具体的数字,这样表明你已经对当今的人才市场作了调查,知道像自己这样学历的雇员有什么样的价值。
  5、你对加班的看法?
  回答提示:实际上好多公司问这个问题,并不证明一定要加班,只是想测试你是否愿意为公司奉献。
  回答样本:如果工作需要我会义不容辞加班,我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时我也会提高工作效率,减少不必要的加班。
  6、如果通过这次面试我们录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?
  回答提示:一段时间发现工作不适合我,有两种情况:①如果你确实热爱这个职业,那你就要不断学习,虚心向领导和同事学习业务知识和处事经验,了解这个职业的精神内涵和职业要求,力争减少差距;②你觉得这个职业可有可无,那还是趁早换个职业,去发现适合你的,你热爱的职业,那样你的发展前途也会大点,对单位和个人都有好处。
  7、谈谈你对跳槽的看法?
  回答提示:①正常的“跳槽”能促进人才合理流动,应该支持。②频繁的跳槽对单位和个人双方都不利,应该反对。
  8、工作中难以和同事、上司相处,你该怎么办?
  回答提示:①我会服从领导的指挥,配合同事的工作。②我会从自身找原因,仔细分析是不是自己工作做得不好让领导不满意,同事看不惯。还要看看是不是为人处世方面做得不好,如果是这样的话我会努力改正。③如果我找不到原因,我会找机会跟他们沟通,请他们指出我的不足,有问题就及时改正。④作为优秀的员工,应该时刻以大局为重,即使在一段时间内,领导和同事对我不理解,我也会做好本职工作,虚心向他们学习,我相信,他们会看见我在努力,总有一天会对我微笑的。
  9、你对于我们公司了解多少?
  回答提示:在去公司面试前上网查一下该公司主营业务。如回答:贵公司有意改变策略,加强与国外大厂的OEM合作,自有品牌的部分则透过海外经销商。
  10、最能概括你自己的三个词是什么?
  回答提示:我经常用的三个词是:适应能力强,有责任心和做事有始终,结合具体例子向主考官解释。11、你的业余爱好是什么?
  回答提示:找一些富于团体合作精神的,这里有一个真实的故事:有人被否决掉,因为他的爱好是深海潜水。主考官说:因为这是一项单人活动,我不敢肯定他能否适应团体工作。
  12、作为被面试者给我打一下分?
  回答提示:试着列出四个优点和一个非常非常非常小的缺点(可以抱怨一下设施,没有明确责任人的缺点是不会有人介意的)。
  13、你为什么要离开原来的公司?
  回答提示:①回答这个问题时一定要小心,就算在前一个工作受到再大的委屈,对公司有多少的怨言,都千万不要表现出来,尤其要避免对公司本身主管的批评,避免面试官的负面情绪及印象。建议此时最好的回答方式是将问题归咎在自己身上,例如觉得工作没有学习发展的空间,自己想在面试工作的相关产业中多加学习,或是前一份工作与自己的生涯规划不合等等,回答的答案最好是积极正面的。②我希望能获得一份更好的工作,如果机会来临,我会抓住。我觉得目前的工作,已经达到顶峰,即没有升迁机会。
  14、你欣赏哪种性格的人?
  回答提示:诚实、不死板而且容易相处的人、有“实际行动”的人。
  15、你通常如何对待别人的批评?
  回答提示:①沈默是金,不必说什么,否则情况更糟,不过我会接受建设性的批评。②我会等大家冷静下来再讨论。
  16、怎样对待自己的失败?
  回答提示:我们大家生来都不是十全十美的,我相信我有第二个机会改正我的错误。
  17、你为什么愿意到我们公司来工作?
  回答提示:对于这个问题,你要格外小心,如果你已经对该单位作了研究,你可以回答一些详细的原因,像“公司本身的高技术开发环境很吸引我。”、“我同公司出生在同样的时代,我希望能够进入一家与我共同成长的公司。”、“你们公司一直都稳定发展,在近几年来在市场上很有竞争力。”、“我认为贵公司能够给我提供一个与众不同的发展道路。”这都显示出你已经做了一些调查,也说明你对自己的未来有了较为具体的远景规划。
  18、对这项工作,你有哪些可预见的困难?
  回答提示:①不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。②可以尝试迂回战术,说出应聘者对困难所持有的态度——工作中出现一些困难是正常的,也是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服。
  19、如果录用了你,你将怎样开展工作?
  回答提示: ①如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展工作的具体办法。②可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,然后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根据计划开展工作。”。
  分析:这个问题的主要目的也是了解应聘者的工作能力和计划性、条理性,而且重点想要知道细节。如果向思路中所讲的迂回战术,面试官会认为回避问题,如果引导了几次仍然是回避的话,此人绝对不会录用了。
  20、你希望与什么样的上级共事?
  回答提示:①通过应聘者对上级的“希望”可以判断出应聘者对自我要求的意识,这既上一个陷阱,又是一次机会。②最好回避对上级具体的希望,多谈对自己的要求。③如“做为刚步入社会的新人,我应该多要求自己尽快熟悉环境、适应环境,而不应该对环境提出什么要求,只要能发挥我的专长就可以了。
  分析:这个问题比较好的回答是,希望我的上级能够在工作中对我多指导,对我工作中的错误能够立即指出。总之,从上级指导这个方面谈,不会有大的纰漏。
  21、与上级意见不一时,你将怎么办?
  回答提示:①一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我会服从上级的意见。”②如果面试你的是总经理,而你所应聘的职位另有一位经理,且这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于涉及公司利益的重大问题,我希望能向更高层领导反映。”
  分析:这个问题的标准答案是思路①,如果用②的回答,必死无疑。你没有摸清楚改公司的内部情况,先想打小报告,这样的人没有人敢要。
  22、为什么选择我们公司?
  回答提示:曾经在报章杂志看过关于贵公司的报道,与自己所追求的理念有志一同。而贵公司在业界的成绩也是有目共睹的,而且对员工的教育训练、升迁等也都很有制度。
  分析:去面试前先做功课,了解一下该公司的背景,让对方觉得你真的很有心想得到这份工作,而不只是探探路。
  23、谈谈如何适应办公室工作的新环境?
  回答提示①办公室里每个人有各自的岗位与职责,不得擅离岗位。②根据领导指示和工作安排,制定工作计划,提前预备,并按计划完成。③多请示并及时汇报,遇到不明白的要虚心请教。④抓间隙时间,多学习,努力提高自己的政治素质和业务水平。
  24、除了本公司外,还应聘了哪些公司?
  回答提示:很奇怪,这是相当多公司会问的问题,其用意是要概略知道应徵者的求职志向,所以这并非绝对是负面答案,就算不便说出公司名称,也应回答“销售同种产品的公司”,如果应聘的其他公司是不同业界,容易让人产生无法信任的感觉。
  25、你还有什么问题要问吗?
  回答提示:企业的这个问题看上去可有可无,其实很关键,企业不喜欢说“没问题”的人,因为其很注重员工的个性和创新能力。企业不喜欢求职者问个人福利之类的问题,如果有人这样问:贵公司对新入公司的员工有没有什么培训项目,我可以参加吗?或者说贵公司的晋升机制是什么样的?企业将很欢迎,因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。
  26、如果你被录用,何时可以到职?
  回答提示:大多数企业会关心就职时间,最好是回答“如果被录用的话,到职日可按公司规定上班”,但如果还未辞去上一个工作、上班时间又太近,似乎有些强人所难,因为交接至少要一个月的时间,应进一步说明原因,录取公司应该会通融的。

posted @ 2014-05-04 12:58 顺其自然EVO 阅读(214) | 评论 (0)编辑 收藏

仅列出标题
共394页: First 上一页 117 118 119 120 121 122 123 124 125 下一页 Last 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜