Search

Serialization In detail



Serialization Interview Questions
Q1) What is Serialization?
Ans) Serializable is a marker interface. When an object has to be transferred over a network ( typically through rmi or EJB) or persist the state of an object to a file, the object Class needs to implement Serializable interface. Implementing this interface will allow the object converted into bytestream and transfer over a network.
Q2) What is use of serialVersionUID?
Ans) During object serialization, the default Java serialization mechanism writes the metadata about the object, which includes the class name, field names and types, and superclass. This class definition is stored as a part of the serialized object. This stored metadata enables the deserialization process to reconstitute the objects and map the stream data into the class attributes with the appropriate type
Everytime an object is serialized the java serialization mechanism automatically computes a hash value. ObjectStreamClass'scomputeSerialVersionUID() method passes the class name, sorted member names, modifiers, and interfaces to the secure hash algorithm (SHA), which returns a hash value.The serialVersionUID is also called suid.
So when the serilaize object is retrieved , the JVM first evaluates the suid of the serialized class and compares the suid value with the one of the object. If the suid values match then the object is said to be compatible with the class and hence it is de-serialized. If not InvalidClassExceptionexception is thrown.

Changes to a serializable class can be compatible or incompatible. Following is the list of changes which are compatible:
  • Add fields
  • Change a field from static to non-static
  • Change a field from transient to non-transient
  • Add classes to the object tree
List of incompatible changes:
  • Delete fields
  • Change class hierarchy
  • Change non-static to static
  • Change non-transient to transient
  • Change type of a primitive field
So, if no suid is present , inspite of making compatible changes, jvm generates new suid thus resulting in an exception if prior release version object is used .
The only way to get rid of the exception is to recompile and deploy the application again.

If we explicitly metion the suid using the statement:

private final static long serialVersionUID = <integer value>


then if any of the metioned compatible changes are made the class need not to be recompiled. But for incompatible changes there is no other way than to compile again.
Q3) What is the need of Serialization?
Ans) The serialization is used :-
  • To send state of one or more object’s state over the network through a socket.
  • To save the state of an object in a file.
  • An object’s state needs to be manipulated as a stream of bytes.
Q4) Other than Serialization what are the different approach to make object Serializable?
Ans) Besides the Serializable interface, at least three alternate approaches can serialize Java objects:

1)For object serialization, instead of implementing the Serializable interface, a developer can implement the Externalizable interface, which extends Serializable. By implementing Externalizable, a developer is responsible for implementing the writeExternal() and readExternal() methods. As a result, a developer has sole control over reading and writing the serialized objects.
2)XML serialization is an often-used approach for data interchange. This approach lags runtime performance when compared with Java serialization, both in terms of the size of the object and the processing time. With a speedier XML parser, the performance gap with respect to the processing time narrows. Nonetheless, XML serialization provides a more malleable solution when faced with changes in the serializable object.
3)Finally, consider a "roll-your-own" serialization approach. You can write an object's content directly via either the ObjectOutputStream or the DataOutputStream. While this approach is more involved in its initial implementation, it offers the greatest flexibility and extensibility. In addition, this approach provides a performance advantage over Java serialization.
Q5) Do we need to implement any method of Serializable interface to make an object serializable?
Ans) No. Serializable is a Marker Interface. It does not have any methods.
Q6) What happens if the object to be serialized includes the references to other serializable objects?
Ans) If the object to be serialized includes the references to other objects whose class implements serializable then all those object’s state also will be saved as the part of the serialized state of the object in question. The whole object graph of the object to be serialized will be saved during serialization automatically provided all the objects included in the object’s graph are serializable.
Q7) What happens if an object is serializable but it includes a reference to a non-serializable object?
Ans- If you try to serialize an object of a class which implements serializable, but the object includes a reference to an non-serializable class then a ‘NotSerializableException’ will be thrown at runtime.

e.g.
public class NonSerial {
    //This is a non-serializable class
}
public class MyClass implements Serializable{
    private static final long serialVersionUID = 1L;
    private NonSerial nonSerial;
    MyClass(NonSerial nonSerial){
        this.nonSerial = nonSerial;
    }
    public static void main(String [] args) {
        NonSerial nonSer = new NonSerial();
        MyClass c = new MyClass(nonSer);
        try {
        FileOutputStream fs = new FileOutputStream("test1.ser");
        ObjectOutputStream os = new ObjectOutputStream(fs);
        os.writeObject(c);
        os.close();
        } catch (Exception e) { e.printStackTrace(); }
        try {
        FileInputStream fis = new FileInputStream("test1.ser");
        ObjectInputStream ois = new ObjectInputStream(fis);
        c = (MyClass) ois.readObject();
        ois.close();
            } catch (Exception e) {
            e.printStackTrace();
          }
    }
}
On execution of above code following exception will be thrown  –
java.io.NotSerializableException: NonSerial
            at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java
Q8) Are the static variables saved as the part of serialization?
Ans) No. The static variables belong to the class and not to an object they are not the part of the state of the object so they are not saved as the part of serialized object.
Q9) What is a transient variable?
Ans) These variables are not included in the process of serialization and are not the part of the object’s serialized state.
Q10) What will be the value of transient variable after de-serialization?
Ans) It’s default value.
e.g. if the transient variable in question is an int, it’s value after deserialization will be zero.
public class TestTransientVal implements Serializable{
 
    private static final long serialVersionUID = -22L;
    private String name;
    transient private int age;
    TestTransientVal(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public static void main(String [] args) {
        TestTransientVal c = new TestTransientVal(1,"ONE");
        System.out.println("Before serialization: - " + c.name + " "+ c.age);
        try {
        FileOutputStream fs = new FileOutputStream("testTransients.ser");
        ObjectOutputStream os = new ObjectOutputStream(fs);
        os.writeObject(c);
        os.close();
        } catch (Exception e) { e.printStackTrace(); }


        try {
        FileInputStream fis = new FileInputStream("testTransients.ser");
        ObjectInputStream ois = new ObjectInputStream(fis);
        c = (TestTransientVal) ois.readObject();
        ois.close();
        } catch (Exception e) { e.printStackTrace(); }
        System.out.println("After de-serialization:- " + c.name + " "+ c.age);
        }
}

Result of executing above piece of code –
Before serialization: - Value of non-transient variable ONE Value of transient variable 1
After de-serialization:- Value of non-transient variable ONE Value of transient variable 0
Explanation –
The transient variable is not saved as the part of the state of the serailized variable, it’s value after de-serialization is it’s default value.
Q11) Does the order in which the value of the transient variables and the state of the object using the defaultWriteObject() method are saved during serialization matter?
Ans) Yes.  As while restoring the object’s state the transient variables and the serializable variables that are stored must be restored in the same order in which they were saved.
Q12) How can one customize the Serialization process? or What is the purpose of implementing the writeObject() and readObject() method?
Ans) When you want to store the transient variables state as a part of the serialized object at the time of serialization the class must implement the following methods –
private void wrtiteObject(ObjectOutputStream outStream)
{
//code to save the transient variables state as a part of serialized object
}
private void readObject(ObjectInputStream inStream)
{
//code to read the transient variables state and assign it to the de-serialized object
}
e.g.
public class TestCustomizedSerialization implements Serializable{

    private static final long serialVersionUID =-22L;
    private String noOfSerVar;
    transient private int noOfTranVar;

    TestCustomizedSerialization(int noOfTranVar, String noOfSerVar) {
        this.noOfTranVar = noOfTranVar;
        this.noOfSerVar = noOfSerVar;
    }

    private void writeObject(ObjectOutputStream os) {

     try {
     os.defaultWriteObject();
     os.writeInt(noOfTranVar);
     } catch (Exception e) { e.printStackTrace(); }
     }

     private void readObject(ObjectInputStream is) {
     try {
     is.defaultReadObject();
     int noOfTransients = (is.readInt());
     } catch (Exception e) {
         e.printStackTrace(); }
     }

     public int getNoOfTranVar() {
        return noOfTranVar;
    }
 
}
The value of transient variable ‘noOfTranVar’ is saved as part of the serialized object manually by implementing writeObject() and restored by implementing readObject().
The normal serializable variables are saved and restored by calling defaultWriteObject() and defaultReadObject()respectively. These methods perform the normal serialization and de-sirialization process for the object to be saved or restored respectively.
Q13) If a class is serializable but its superclass in not , what will be the state of the instance variables inherited  from super class after deserialization?
Ans) The values of the instance variables inherited from superclass will be reset to the values they were given during the original construction of the object as the non-serializable super-class constructor will run.
E.g.
public class ParentNonSerializable {
    int noOfWheels;
 
    ParentNonSerializable(){
        this.noOfWheels = 4;
    }
 
}

public class ChildSerializable extends ParentNonSerializable implements Serializable {

    private static final long serialVersionUID = 1L;
    String color;

    ChildSerializable() {
        this.noOfWheels = 8;
        this.color = "blue";
    }
}

public class SubSerialSuperNotSerial {

    public static void main(String [] args) {

        ChildSerializable c = new ChildSerializable();
        System.out.println("Before : - " + c.noOfWheels + " "+ c.color);
        try {
        FileOutputStream fs = new FileOutputStream("superNotSerail.ser");
        ObjectOutputStream os = new ObjectOutputStream(fs);
        os.writeObject(c);
        os.close();
        } catch (Exception e) { e.printStackTrace(); }

        try {
        FileInputStream fis = new FileInputStream("superNotSerail.ser");
        ObjectInputStream ois = new ObjectInputStream(fis);
        c = (ChildSerializable) ois.readObject();
        ois.close();
        } catch (Exception e) { e.printStackTrace(); }
        System.out.println("After :- " + c.noOfWheels + " "+ c.color);
        }
}
Result on executing above code –
Before : - 8 blue
After :- 4 blue
The instance variable ‘noOfWheels’ is inherited from superclass which is not serializable. Therefore while restoring it the non-serializable superclass constructor runs and its value is set to 8 and is not same as the value saved during serialization which is 4.
Q14) To serialize an array or a collection all the members of it must be serializable. True /False?
Ans) true.



Most commercial project uses either database or memory mapped file or simply flat file for there persistence requirement and only few of them rely on serialization process in Java. Anyway this post is not a Java serialization tutorial or how to serialize object in java but about interview questions around serialization mechanism and Serialization API, Which is worth to have a look before going for any Java or J2EE interview and surprising yourself with some unknown contents. for those who are not familiar about java Serialization  "Java serialization is the process which is used to serialize object in java by storing object’s state into a file with extension .ser and recreating object's state from that file, this reverse process is called deserialization.

The Java Serialization API provides a standard mechanism for developers to handle object serialization using Serializable and Externalizable interface. By the way this article is in continuation of my previous article Top 20 design pattern interview questionsTop 15 multi-threading interview question in Java and 10 Interview questions on Singleton Pattern in Java So here we go.

What is Serialization in Java

Object Serialization in Java is a process used to convert Object into a binary format which can be persisted into disk or sent over network to any other running Java virtual machine; the reverse process of creating object from binary stream is called deserialization in Java. Java provides Serialization API for serializing and deserializing object which includes java.io.Serializable,java.io.ExternalizableObjectInputStream and ObjectOutputStream etc. Java programmers are free to use default Serialization mechanism which Java uses based upon structure of class but they are also free to use there own custom binary format, which is often advised as Serialization best practice, Because serialized binary format becomes part of Class's exported API and it can potentially break Encapsulation in Java provided by private and package-private fields. This pretty much answer the question What is Serialization in Java.

How to make a Java class Serializable?
Making a class Serializable in Java is very easy, Your Java class just needs to implements java.io.Serializable interface and JVM will take care of serializing object in default format. Decision to making a Class Serializable should be taken concisely because though near term cost of making a Class Serializable is low, long term cost is substantial and it can potentially limit your ability to further modify and change its implementation because like any public API, serialized form of an object becomes part of public API and when you change structure of your class by implementing addition interface, adding or removing any field can potentially break default serialization, this can be minimized by using a custom binary format but still requires lot of effort to ensure backward compatibility. One example of How Serialization can put constraints on your ability to change class is SerialVersionUID. If you don't explicitly declare SerialVersionUID then JVM generates its based upon structure of class which depends upon interfaces a class implements and several other factors which is subject to change. Suppose you implement another interface than JVM will generate a different SerialVersionUID for new version of class files and when you try to load old object object serialized by old version of your program you will get InvalidClassException.


1) What is the difference between Serializable and Externalizable interface in Java?
This is most frequently asked question in Java serialization interview. Here is my version Externalizable provides us writeExternal() and readExternal() method which gives us flexibility to control java serialization mechanism instead of relying on Java's default serialization. Correct implementation of Externalizable interface can improve performance of application drastically.

2) How many methods Serializable has? If no method then what is the purpose of Serializable interface?
Serializable interface exists in java.io  package and forms core of java serialization mechanism. It doesn't have any method and also called Marker Interface in Java. When your class implements java.io.Serializable interface it becomes Serializable in Java and gives compiler an indication that use Java Serialization mechanism to serialize this object.


3) What is serialVersionUID? What would happen if you don't define this?
One of my favorite question interview question on Java serialization. SerialVersionUID is an ID which is stamped on object when it get serialized usually hashcode of object, you can use tool serialver to see serialVersionUID of a serialized object . SerialVersionUID is used for version control of object. you can specify serialVersionUID in your class file also.  Consequence of not specifying  serialVersionUID is that when you add or modify any field in class then already serialized class will not be able to recover because serialVersionUID generated for new class and for old serialized object will be different. Java serialization process relies on correct serialVersionUID for recovering state of serialized object and throws java.io.InvalidClassException in case of serialVersionUID mismatch.


4) While serializing you want some of the members not to serialize? How do you achieve it?
Another frequently asked Serialization interview question. This is sometime also asked as what is the use of transient variable, does transient and static variable gets serialized or not etc. so if you don't want any field to be part of object's state then declare it either static or transient based on your need and it will not be included during Java serialization process.

5) What will happen if one of the members in the class doesn't implement Serializable interface?
One of the easy question about Serialization process in Java. If you try to serialize an object of a class which implements Serializable, but the object includes a reference to an non- Serializable class then a NotSerializableException’ will be thrown at runtime and this is why I always put a SerializableAlert (comment section in my code) , one of the code comment best practices, to instruct developer to remember this fact while adding a new field in a Serializable class.


6) If a class is Serializable but its super class in not, what will be the state of the instance variables inherited from super class after deserialization?
Java serialization process  only continues in object hierarchy till the class is Serializable i.e. implements Serializable interface in Java  and values of the instance variables inherited from super class will be initialized by calling constructor of Non-Serializable Super class during deserialization process. Once the constructor chaining will started it wouldn't be possible to stop that , hence even if classes higher in hierarchy implements Serializable interface , there constructor will be executed. As you see from the statement this Serialization interview question looks very tricky and tough but if you are familiar with key concepts its not that difficult.

7) Can you Customize Serialization process or can you override default Serialization process in Java?
The answer is yes you can. We all know that for serializing an object ObjectOutputStream.writeObject (saveThisobject) is invoked and for reading object ObjectInputStream.readObject() is invoked but there is one more thing which Java Virtual Machine provides you is to define these two method in your class. If you define these two methods in your class then JVM will invoke these two methods instead of applying default serialization mechanism. You can customize behavior of object serialization and deserialization here by doing any kind of pre or post processing task. Important point to note is making these methods private to avoid being inherited, overridden or overloaded. Since only Java Virtual Machine can call private method integrity of your class will remain and Java Serialization will work as normal. In my opinion this is one of the best question one can ask in any Java Serialization interview, a good follow-up question is why should you provide custom serialized form for your object?

8) Suppose super class of a new class implement Serializable interface, how can you avoid new class to being serialized?
One of the tricky interview question in Serialization in Java. If Super Class of a Class already implements Serializable interface in Java then its already Serializable in Java, since you can not unimplemented an interface its not really possible to make it Non Serializable class but yes there is a way to avoid serialization of new class. To avoid java serialization you need to implement writeObject() andreadObject() method in your Class and need to throw NotSerializableException from those method. This is another benefit of customizing java serialization process as described in above Serialization interview question and normally it asked as follow-up question as interview progresses.

9) Which methods are used during Serialization and DeSerialization process in java?
This is very common interview question in Serialization  basically interviewer is trying to know; Whether you are familiar with usage of readObject(), writeObject(), readExternal() and writeExternal () or not. Java Serialization is done by java.io.ObjectOutputStream class. That class is a filter stream which is wrapped around a lower-level byte stream to handle the serialization mechanism. To store any object via serialization mechanism we call ObjectOutputStream.writeObject(saveThisobject) and to deserialize that object we call ObjectInputStream.readObject() method. Call to writeObject() method trigger serialization process in java. one important thing to note about readObject() method is that it is used to read bytes from the persistence and to create object from those bytes and its return an Object which needs to be casted on correct type.

10) Suppose you have a class which you serialized it and stored in persistence and later modified that class to add a new field. What will happen if you deserialize the object already serialized?
It depends on whether class has its own serialVersionUID or not. As we know from above question that if we don't provide serialVersionUID in our code java compiler will generate it and normally it’s equal to hashCode of object. by adding any new field there is chance that new serialVersionUID generated for that class version is not the same of already serialized object and in this case Java Serialization API will throwjava.io.InvalidClassException and this is the reason its recommended to have your own serialVersionUID in code and make sure to keep it same always for a single class.


11) What are the compatible changes and incompatible changes in Java Serialization Mechanism?
The real challenge lies with change in class structure by adding any field, method or removing any field or method is that with already serialized objectAs per Java Serialization specification adding any field or method comes under compatible change and changing class hierarchy or UN-implementing Serializable interfaces some under non compatible changes. For complete list of compatible and non compatible changes I would advise reading Java serialization specification.

12) Can we transfer a Serialized object vie network?
Yes you can transfer a Serialized object via network because java serialized object remains in form of bytes which can be transmitter via network. You can also store serialized object in Disk or database as Blob.

13) Which kind of variables is not serialized during Java Serialization?
This question asked sometime differently but the purpose is same whether Java developer knows specifics about  or not. Since static variables belong to the class and not to an object they are not the part of the state of object so they are not saved during Java Serialization process. As Java Serialization only persist state of object and not object itself. Transient variables are also not included in java serialization process and are not the part of the object’s serialized state. After this question sometime interviewer ask a follow-up if you don't store values of these variables then what would be value of these variable once you deserialize and recreate those object? This is for you guys to think about :)


Manual and Automation testing interview Questions Part- 4




1.differentiate between QA and QC?
QA:It is process oriented
      it envolve in entire process of software developement.
      Preventin oriented.
QC:
     It is product oriented.
     work to examin the quality of product.
     Dedection orientd.

2.what is a bug?
A computer bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from working correctly or produces an incorrect result.

3.what is a test case?
Testcase is set of input values, execution preconditions,expected results and execution
postconditions, developed for a particular objective or test conditons, such as to exercise a paticular program path or to verify compliance with a specific requiremnt.

4.What is the purpose of test plan in your project?
test plan document is prepared by the test lead,it contains the contents like introduction,objectives,test stratergy,scope,test items,program modules user
procedures,features to be tested features not to tested approach,pass or fail criteria,testing process,test deliverables,testing,tasks,responsibilities,resources,schedu
le,environmental requirements,risks & contingencies,change management procedures,plan approvals,etc all these things help a test manager undersatnd the testing he should do &
what he should follow for testing that particular project.

5.When the relationship occur between tester and developer?
developer is the one who sends the application to the tester by doing all the necessary code in the application and sends the marshal id to the tester.The tester is the one who gives all the input/output and checks whether he is getting reqd output or not.A developer is the one who works on inside interfacing where as the tester is the one who works on outside interfacing

6.when testing will starts in a project?
the testing is not getting started after the coding.after release the build the testers perform the smoke test.smoke test is the first test which is done by the testing team.this is according to the testing team.but, before the releasing of a build the developers will perform the unit testing.

7.If a bug has high severity then usually that is treated as high priority,then why do priority given by testengineers/project managers and severity given by testers?
High severity bugs affects the end users ....testers tests an application with the users point of view, hence it is given as high severity.High priority is given to the bugs which affects the production.Project managers assign a high priority based on production point of view.

8.what is the difference between functional testing and regresion testing
functional testing is a testing process where we test the functionality/behaviour of each functional component of the application...i.e.minimize button,transfer button,links etc.i.e we check what is each component doing in that application...
regression testing is the testing the behaviour of the application of the unchanged areas when there is a change in the build.i.e we chk whether the changed requirement has altered the behaviour of the unchanged areas.the impacted area may be the whole of the application or
some part of the application...

10.do u know abt integration testing,how do u intregate diff modules?
integration testing means testing an application to verify the data flows between the module.for example, when you are testing a bank application ,in account balence it shows the
100$as the available balence.but in database it shows the 120$. main thing is "integration done by the developers and integration testing done by the testers"
11.do u know abt configuration management tool,what is the purpose of maintaining all the documents in configuration manage ment tool?
It is focused primarily on maintaining the file changes in the history.
Documents are subjected to change For ex: consider the Test case document .
Initially you draft the Test cases document and place it in Version control tool(Visual Source Safe for ex).Then you send it for Peer Review .They will provide some comments and that document will be saved in VSS again.Similary the document undergoes changes and all the changes history will be maintained in Version control.
It helps in referring to the previous version of a document.
Also one person can work on a document (by checking out) at a time.
Also it keeps track who has done the changes ,time and date.
Generally all the Test Plan, Test cases,Automation desgin docs are placed in VSS.
Proper access rights needs to be given so that the documents dont get deleted or modified.

12.How you test database and explain the procedure?
Database Testing is purely done based on the requirements. You may generalize a few features but they won't be complete. In general we look at
1. Data Correctness (Defaults)
2. Data Storage/Retreival
3. Database Connectivity (across multiple platforms)
4. Database Indexing
5. Data Integrity
6. Data Security

13.suppose if you press a link in yahooshopping site in leads to some other company website?how to test if any problem in linking from one site to another site?
1)first i will check whether the mouse cusor is turning into hand icon or not?
2)i will check the link is highlingting when i place the curosr on the link or not?
3)the site is opening or not?
4)if the site is opening then i will check is it opening in another window or the same window that the link itself exitst(to check userfriendly ness of the link)
5)how fast that website is opening?
6)is the correct site is opening according to the link?
7)all the items in the site are opeing or not?
8)all other sublinks are opening or not?

14.what are the contents of FRS?
F &#8594; Function Behaviours
R &#8594; Requirements (Outputs) of the System that is defined.
S &#8594; Specification ( How, What, When, Where, and Way it behavior's.
FRS  &#8594;  Function Requirement Specification.
 This is a Document which contains the Functional behavior
of the system or a feature. This document is also know as EBS External Behaviour Specification - Document. Or EFS External Function  Specification.

15.what is meant by Priority nad severity?
Priority means "Importance of the defect w.r.t cutomer requirement"
Severity means "Seriousness of the defect w.r.t functionality"

16.what is meant by Priority nad severity?
Severity:  
1. This is assigned by the Test Engineer
2. This is to say how badly the devation that is occuring is affecting the other modules of the build or release.
Priority:
1. This is assigned by the Developer.
2. This is to say how soon the bug as to be fixed in the main code, so that it pass the basic requirement.
Eg., The code is to generate some values with some vaild input conditions. The priority will be assigned so based on the following conditions:
a> It is not accepting any value
b> It is accepting value but output is in non-defined format (say Unicode Characters).
    A good example i used some unicode characters to generate a left defined arrow, it displayed correctly but after saving changes it gave some address value from the
stack of this server. For more information mail me i will let you know.

17.give me some example for high severity and low priority defect?
if suppose the title of the particular concern is not spelled corectly,it would give a negative impact.eg ICICC is spelled as a tittle for the project of the concern ICICI.then it is a high severity,low priority defect.

18.what is basis for testcase review?
the main basis for the test case review is
1.testing techniques oriented review
2.requirements oriented review
3.defects oriented review.

19.what are the contents of SRS documents?
Software requirements specifications and Functional requirements specifications.

20.What is difference between the Web application testing and Client Server testing?
Testing the application in intranet(withoutbrowser) is an example for client -server.(The company firewalls for the server are not open to outside world. Outside people cannot access the application.)So there will be limited number of people using that application.
Testing an application in internet(using browser) is called webtesting. The application which is accessable by numerous numbers around the world(World wide web.)
So testing web application, apart from the above said two testings there are many other testings to be done depending on the type of web application we are testing.
If it is a secured application (like banking site- we go for security testing etc.)
If it is a ecommerce testing application we go for Usability etc.. testings.

21.Explain your web application archtechture?
web application is tested in 3 phases
1. web tier testing --> browser compatibility 
2. middle tier testing --> functionality, security
3. data base tier testing --> database integrity, contents

22.suppose the product/appication has to deliver to client at 5.00PM,At that time you or your team member caught a high severity defect at 3PM.(Remember defect is high severity)But the the client is cannot wait for long time.You should deliver the product at 5.00Pm exactly.then what is the procedure you follow?
the bug is high severity only so we send the application to the client and find out the severity is preyority or not. if its preyority then we ask him to wait.
Here we found defects/bugs in the last minute of the deliveryor realese date
Then we have two options
1.explain the situation to client and ask some more time  to fix the bug.
2.If the client is not ready to give some some time then analyse the impact of defect/bug and try to find    workarounds for the defect and mention these issues   in the release notes as known issues or known   limitations or known bugs.  Here the workaround means remeady process to be followed  to overcome the  defect effect.
3.Normally this known issues or known limitations(defects) will be fixed in next version or next release of the  software

23.Give me examples for  high priority and low severity defects?
Suppose in one banking application there is one module ATM Facility. in that ATM facility when ever we are dipositing/withdrawing money it is not showing any conformation message but actually at the back end it is happening properly with out any mistake means only missing
of message . in this case as it is happenig properly so there is nothing wrong with the application but as end user is not getting any conformation message so he/she will be
confuse for this.So we can consider this issue as HIGH Priority but LOW Severity defects..

24.Explain about Bug life cycle?
1)tester->
2) open defect->
3)send to developer
4)->if accepted moves to step5 else sends the bug to tester gain
5)fixed by developer ->
6)regression testing->
7)no problem inbuilt and signoff
8)->if problem in built reopen the issue send to step3

25.How can you report the defect using excel sheet?
To report the defect using excel sheet
Mention    :    The Feture that been effected.
mention    :    Test Case ID  (Which fail you can even mention any other which are              dependency on this bug)
Mention    :    Actual Behavior
Mention    :    Expected Behavior as mentioned in Test Case or EFS or EBS or SRS document                                                                                     with section
Mention    :    Your Test Setup used during Testing
Mention    :    Steps to Re-Produce the bug
Mention    :    Additional Info
Mention    :    Attach a Screen Shot if it is a GUI bug
Mention    :    Which other features it is blocking because of this bug that you are unable to 
                     execute the test cases.
Mention    : How much time you took to execute that test case or follow that specific TC
                  which leaded to bug

26.If you have executed 100 test cases ,every test case passed but apart from these testcase you found some defect for which testcase is not prepared,thwn how you can report the bug?
While reporting this bug into bugtracking tool you will generate the testcase imean put the steps to reproduce the bug.

27.what is the diffn betn web based application and client server application
The basic difference between web based application & client server application is that the web application are 3 trier & client based are 2 trier.In web based changes are made at one place & it is refelected on other layers also whereas client based separate changes need be installed on client machine also.

28.what is testplan? and can you tell the testplan contents?
Test plan is a high level document which explains the test strategy,time lines and available resources in detail.Typically a test plan contains:
-Objective
-Test strategy
-Resources
-Entry criteria
-Exit criteria
-Use cases/Test cases
-Tasks
-Features to be tested and not tested
-Risks/Assumptions.

29.How many testcases can you write per a day, an average figure?
Complex test cases 4-7 per day
Medium test cases 10-15 per day
Normal test cases 20-30 per day

30.Who will prepare FRS(functional requirement documents)?
What is the importent of FRS?
The Business Analyst will pre pare the FRS.
Based on this we are going to prepare test cases.
It contains
1. Over view of the project
2. Page elements of the Application(Filed Names)
3. Proto type of the of the application
4. Business rules and Error States
5. Data Flow diagrams
6. Use cases contains Actor and Actions and System Responces

31.How you can decide the number of testcases are enough for testing the given module?
The developed test cases are coverd all the functionality of the application we can say testcases are enough.If u know the functionality covered or not u can use RTM.

32.What is the difference between Retesting and Data Driven Testing?
Retesting:it is manual process in which apllication will be tested with entire new set of data.
DataDriven Testing(DDT)-It is a Automated testing process inwhich application is tested with multiple test data.DDT is very easy procedure than retesting because the tester should sit and need to give different new inputsmanually from front end and it is very tedious and boring
prodedure.

33.what is regression testing?
After the Bug fixed ,testing the application whether the fixed bug is affecting remaining functionality of the application or not.Majorly in regression testing Bug fixed module and it's
connected modules are checked for thier integrity after bug fixation.

34.how do u test web application?
Web applicatio testing
web application shold have the following features like
1.Attractive User Interface(logos,fonts,alignment)
2.High Usability options
3.Securiry features(if it has login feature)
4.Database(back end).
5.Perfromance(appearing speed of the application on client    system)
6.Able to work on different Browers(Browser compatibility)
  ,O.S compatibility(technicalled called as portability)
7.Broken link testing.........etc
so we need to follow out the following test strategy.
1.Functionality Testing
2.Performance Testing(Load,volume,Stress,Scalability)
3.Usability Testing
4.User Interface Testing(colors,fonts,alignments...)
5.Security Testing
6.Browser compatibility Testing(differnt versions and    different browser)
7.Brokenlink and Navigation Testing
8.Database(backend)Testing(data integrity)
9.Portability testing(Multi O.s Support)....etc




35.how do u perform regression testing,means what test cases u select for regression
Regression testing will be conducted after any bug fixedor any functionality changed.
During defect fixing procedure some part of coding may be changed or functionality may be manipulated.In this case the old testcases will be updated or completely re written
according to new features of the application where bug fixed area.Here  possible areas are old test cases will be executed as usual or some new testcases will be added to existing testcases or some testcases may be deleted.

36.what r the client side scripting languages and server side scripting languages
client side scripting langages are 
                    javascript,VbScript,PHP...etc
Server side Scripting languages are
                    Perl,JSP,ASP,PHP..etc
Clent side scipting languages are useful to validate the inputs or user actions from userside or client side.
Server side Scripting languages are to validate the  inputs at server side.
This scripting languages provide security for the application. and also provides  dynamic nature to web or client server application
cleint side scripting is good because it won't send the unwanted input's to server for validation.from frontend it self it validated the user inputs and restricts the user activities and guides him

37.if a very low defect (user interface )is detected by u and the developer not compramising with that defect what will u do?
user interface defect is a high visibility defect and easy to reproduce.
Follow the below procedure
1.Reproduce the defect
2.Capture the defect screen shots
3.Document  the proper inputs that you are used to get the    defect in the derfect report
3.send the defect report with screen shots,i/ps and procedure for  defect  reproduction.
before going to this you must check your computer hard ware configuration that is same as developper system configuration.and anlso check the system graphic drivers are properly
installed or not.if the problem in graphic drivers the User interface error will come.
so first check your side if it is correct from your sidethen report the defect by following the above method.

38.if u r only person in the office and client asked u for some changes and u didn,t get what the client asked for what will u do?
Onething  here is very important.Nobody will ask test engineer to change software that is
not your duty,even if it is related to testing and anybody is not there try to listen care fully if you are not understand ask him again and inform to the corresponding people immediately.
Here the cleint need speedy service,we(our company) should not get any blame from customer side.
39.how to get top two salaries from employee tables
Select * from emp e where 2>=(select count(*) from emp e where sal>e.sal) order by  desc sal.

40.How many Test-Cases can be written for the calculator having 0-9 buttons, Add,Equalto buttons.The testcases should be focussed only on add-functionality but mot GUI.What are those test-cases?
Test-Cases for the calculator
so here we have 12 buttons totalie 0,1,2,3,4,5,6,7,8,9,ADD,Equalto -12 buttons
here u can press atleat 4 buttons at a time minimum for example   0+1= for zero u should press 'zero' labled buttonfor plus u should press '+' labled buttonfor one  u should press 'one'  labled buttonfor equalto u should press 'equalto'  labled button 0+1=here + and = positions will not varyso first number position can be varied from 0 to 9 i.e from permutation and combinations u can fill that space in 10 waysin the same waysecond number position  can be varied from 0 to 9 i.e from permutation and combinations u can fill that space in 10 ways
Total number of possibilities are =10x10=100
This is exhaustive testing methodology and this is not possible in all cases.
In mathematics we have one policy that the the function satisfies the starting and ending values of a range then it can  satisfy  for entire range of values from starting to ending.
then we check the starting conditions i.e one test case for '0+0=' (expected values you know thatis '0')then another testcase for '9+9='(expected values you know thatis '18')only two testcases are enough to test the calculator functionality.

41.what is positive and negative testing explian with example?
Positive Testing - testing the system by giving the valid data.
Negative Testing - testing the system by giving the Invalid data.
For Ex,an application contains a textbox and as per the user's Requirements the textbox should accept only Strings.By providing only String as input data to the textbox & to check whether its working properly or not means it is Positive Testing.If giving the input other than String means it is negative Testing..

42.How will you prepare Test plan. What are the techniques involved in preparing the Test plan.
Test plan means planning for the release. This includes Project background
Test Objectives: Brief overview and description of the document
Test Scope: setting the boundaries
Features being tested (Functionalities)
Hardware requirements
Software requirements
Entrance Criteria (When to start testing):
       Test environment established, Builder received from developer, Test case prepared and reviewed.
Exit criteria (when to stop testing):
   All bug status cycle are closed, all functionalities are tested, and all high and medium bugs are resolved.
Project milestones: dead lines

43.What are the Defect Life Cycle?
Defect life cycle is also called as bug life cycle. It has 6stages namely
1.new: found new bug
2.assigned: bud assigned to developer
3.open : developer is fixing the bug
4.fixed : developer has fixed the bug
5.retest: tester retests the application
6.closed/reopened: if it is ok tester gives closed stauselse he reopens and sends back to developer.

44.Expalin about metrics Management?
Metrics: is nothing but a measurement analysis.Measurment analysis and Improvement is one of the process area in CMM I L2.

45.What is performance Testing and Regression Testing?
Performance Testing:-testing the present wroking condition of the product
Regression Testing:-Regression Testing is checking for the newly added functionality causing any erros interms of functionality and the common functionality should be stable
in the latest and the previous versions

46.How do you review testcase?? Type of Review...
types of reviewing testcases depends upon company standards,viz..,
peer review,team lead review,roject manager review.
Some times client may also review the test cases reg what is approach following for project

 47.In which way tester get Build A, BUild B, ....Build Z of an application, just explain the process..
After preparation of testcases project manager will release software release note in that Document there will be URL path  of the website link from from that we will receive
the build In case of web server projects, you will be provided with an URL or a 92.168.***.*** (Web address) which will help you access the project using a browser from your system.

In case of Client server, the build is placed in the VSS (Configuration tool) which will help you get the .exe downloaded to your computer.

48.apart from bug reporting wat is ur involvement in projectlife cycle
As a Test engineer We design test cases,prepare testcases Execute Testcases, track the bugs, analyse the results report the bugs. invovled in regression testing, performance of system
testing  system intergration testing At last preparation of Test summary Report

49.contents of test report
There are two documents,which should be prepared at particual phase.
1.Test Results document.
2.Test Report document.
Test Results doc will be preapred at the phase of each type of Testing like FULL FUNCTIONAL TEST PASS,REGRESSION TEST PASS,SANITY TEST PASS etc...Test case execution againest
the application.Once you prepared this doc,we will send the doc to our TL and PM.By seeing the Test Results doc ,TL will come to know the coverage part of the testcase.Here I
am giving you the contents used in the Test Results doc.

1.Build No
2.Version Name
3.Client OS
4.Feature set
5.Main Feature
6.Defined Testcases on each feature.
7.QA engineer Name
8.Test ecases executed.(Includes pass and fail)
9.Testcases on HOLD(Includes blocking testcases and deferred Testcases)
10.Covereage Report(Which includes the coverage ratings in % ,like % of testcases covered,% of testcases failed)

Coming to Test report,generally we will prepare Test report ,once we rolled out the product to our client.This document will be prepared by TL and delivered to the client.Mainly,this document describes the what we have done in the project,chievements we have reached,our
learnings in throughout the project etc...The other name for Test report is Project Closure Report and we will summerize the all the activities,which have taken place in through out the project.Here I am giving your the contents covered in the Test Report.
1.Test Environment(Should be covered the OS,Application or webservers,Mahchine names,Database,etc...)
2.Test Methods(Types of Tests,we have done in the project like Functional Testing,Platform Testing,regression Testing,etc..
3.Major areas Covered.
4.Bug Tracking Details.(Includes inflow and outflow of the bus in our delivered project)
5.Work schedule(When we start the testing and we finished)
6.Defect Analasys
6.1 Defects logged in different types of tests like Funcational Test,regressiion Test as per area wised.
6.2 State of the Defects at end of the Test cycle.
6.3 Root cause analysys for the bugs marked as NOT A BUG.
7.QA observations or learnings throught the life cycle.



50.write high level test cases
Write all the testcases under high level TC,which can be covered the main functionalities like
creation,edition,deletion,etc....as per prescribed in the screen.
Wrtie all the testcases under low level TC,which can be covered the screen,like input fields are displayed as per the requirements,buttons are enabled or disabled,and testcase for low priority functionalities.
Example a screen contains two edit boxes login and password and a pust buttons OK and Reset and check box for the label "Remember my password".Now let us write high level TC
and low level  test cases.

HIGH LEVEL TC
1.Verify that User is able to login with valid login and valid password.
2.Verify that User is not able to login with invalid login and valid password.
etc...
..
3.Verify that Reset button clears the filled screen.
4.Verify that a pop up message is displayed for blank login.
etc...
etc..

LOW LEVEL TC
1.Verify that after launching the URL of the application below fields are displayes in the screen.
1.Login Name 2.Password.3.OK BUTTON 4.RESET button etc..
5.check box,provided for the label "remember my pwd" is unchecked.
2.Verify that OK button should be disabled before selecting login and passwrod fields.
3.Verify that OK button should ne enabled after selecting login and password.
4.Verify that User is able to check the check box,providedfor the label "remember my pwd".
etc..
In this way,we can categorise all the testcases under HIGH LEVEL and LOW LEVEL.

51.wat is test scenario
Test scenario will be framed on basis of the requrement,which need to be checked.For that,we will frame set of testcases,in other terms,we can say all the conditions,which can be determined the testing coverage againest business requirement.
Please see the below example,which is exactly matched to my explanation.
As we know all most all the application are having login screen,which contains login name and password.Here is the test scenario for login screen.
Scenario: USER'S LOGIN
Condtions to be checked to test the above scenario:
----------------------------------------------------
1.Test login field and Password fields indicisually.
2.Try to login with valid login and valid password.
3.Try to login with invaling login and valid pwd. etcc........................................

52.wat is build duration
it is a tine gap between old version build and new version build  in new version build some new extra features are added

53.wat is test deliverables
Test deliverables are nothing but documents preparing after testing like test plan document  testcase template bugreport templateTest deliverables will be delivered to the client not only for the completed  activities ,but also for the activites,which we are implementing for the better productivity.(As per the company's standards).Here I am giving you some of the Test deliverables in my project.
1.QA TestPlan
2.Testcase Docs
3.QA Testplan,if we are using Automation.
4.Automation scripts
5.QA Coverage Matrix and defect matrix.
6.Traceability Matrix
7.Test Results doc
8.QA Schesule doc(describes the deadlines)
9.Test Report or Project Closure Report.(Prepared once we rolled out the project to client)
10.Weekly status report(sent by PM to the client)
11.Release Notes.

54.wat is ur involvement  in test plan
Test lead is involved in preparing test plan test entgineers are no way related in preparing test plan role TE is testcase design ,and execution and bugtraking and reporting them Genarally TL is involed in preparation of the TestPlan.But it is not mandatory only TL will take main part in the preparaion of the TP.Test engineer can suggest to TL,if he(or) she has good understanding on project and resources,if he or she has more exp with the project,if TL is wrongly given deadlines.If your suggestions are valid,TL will incorporate all of them to the TestPlan.But in most of the companies Test engineers are just audians.

55.which test cases are not to be automated
All the test cases which are related to a feature of the product, that keeps on changing (there are always some or the other enhancements in it). Frequent enhancements may change the UI, add/remove few controls. Hence such cases, if automated, would involve lot of a intenance

56.if a project is long term project , requirements are also changes then test plan will change or not?why
Yes..definitely. If requirement changes, the design documents, specifications (for that particualr module which implements the requiremnts) will also change. Hence the test plan would also need to be updated. This is because "REsource Allocation" is one section in the test
plan. We would need to write new test cases,review, and execute it. Hence resource allocation would have to be done accordingly. As a result the Test plan would change

57.explain VSS
Virtual Sourse Safe...
After complition of all phages From devolopment side devoloper store the code in devolopment folder of VSS,Testing team copying code from that folder to testing folder, after compliting above phages from testing, testers put the build in base line folder.It is version contrrole Tool
Mainly useful to devoloper, to storing code and maintains version Copying a code from VSS By devoloper is called CHECK-IN Upload the code in to VSS is called CHECK-OUT.

58.who will assign severity & priority
the tester/dev should give the priority based on severity of the bug
Severity means: is the impact of the bug on the app.i.e seriousness of the bug interms of the  functionality.
Priority means: is how soon it should get fixed i.e importance of the bug interms of customer

59.What is the Difference between Stub Testing and Driver Testing?
stub testing:
In top down approach,a core module is developed.to test that core module, small dummy modules r used.so stubs r small dummy modules that test the core module.
Driver testing:
in bottom up approach, small modules r developed.to test them a dummy core module called driver is developed.

60.What is a "Good Tester"?
Is one who tries to break the developers software and in a position to venture the bugs. so that atleast 80% bugs free software can deliver.

What is Database testing?
Data bas testing basically include the following.
1)Data validity testing.
2)Data Integrity testing
3)Performance related to data base.
4)Testing of Procedure, triggers and functions.
for doing data validity testing you should be good in SQL queries
For data integrity testing you should know about referential integrity and different constraint.
For performance related things you should have idea about the table structure and design.
for testing Procedure triggers and functions you should be able to understand the same.

What we normally check for in the Database Testing?
In DB testing we need to check for,
1. The field size validation
2. Check constraints.
3. Indexes are done or not (for performance related issues)
4. Stored procedures
5. The field size defined in the application is matching with that in the db.

How to Test database in manually? Explain with an example
Observing that operations, which are operated on front-end is effected on back-end or not.
The approach is as follows:
While adding a record thru' front-end check back-end that addition of record is effected or not. So same for delete, update,...... Ex:Enter employee record in database thru' front-end and check if the record is added or not to the back-end(manually).

1. Does automation replace manual testing?
Automation is the integration of testing tools into the test environment in such a manner that the test execution, logging, and comparison of results are done with little human intervention. A testing tool is a software application which helps automate the testing process. But the testing tool is not the complete answer for automation. One of the huge mistakes done in testing automation is automating the wrong things during development. Many testers learn the hard way that everything cannot be automated. The best components to automate are repetitive tasks. So some companies first start with manual testing and then see which tests are the most repetitive ones and only those are then automated.

As a rule of thumb do not try to automate:
  • Unstable software: If the software is still under development and undergoing many changes automation testing will not be that effective.
  • Once in a blue moon test scripts: Do not automate test scripts which will be run once in a while.
  • Code and document review: Do not try to automate code and document reviews; they will just cause trouble.

The following figure shows what should not be automated.

Description: Software Testing Image

All repetitive tasks which are frequently used should be automated. For instance, regression tests are prime candidates for automation because they're typically executed many times. Smoke, load, and performance tests are other examples of repetitive tasks that are suitable for automation. White box testing can also be automated using various unit testing tools. Code coverage can also be a good candidate for automation.
2. How does load testing work for websites?
Websites have software called a web server installed on the server. The user sends a request to the web server and receives a response. So, for instance, when you type www.google.com the web server senses it and sends you the home page as a response. This happens each time you click on a link, do a submit, etc. So if we want to do load testing you need to just multiply these requests and responses "N" times. This is what an automation tool does. It first captures the request and response and then just multiplies it by "N" times and sends it to the web server, which results in load simulation.

Description: Software Testing Image

So once the tool captures the request and response, we just need to multiply the request and response with the virtual user. Virtual users are logical users which actually simulate the actual physical user by sending in the same request and response. If you want to do load testing with 10,000 users on an application it's practically impossible. But by using the load testing tool you only need to create 1000 virtual users.

Description: Software Testing Image
3. Can you explain data-driven testing?
Normally an application has to be tested with multiple sets of data. For instance, a simple login screen, depending on the user type, will give different rights. For example, if the user is an admin he will have full rights, while a user will have limited rights and support if he only has read-only support rights. In this scenario the testing steps are the same but with different user ids and passwords. In data-driven testing, inputs to the system are read from data files such as Excel, CSV (comma separated values), ODBC, etc. So the values are read from these sources and then test steps are executed by automated testing.

Description: Software Testing Image

1. What is TRM?

TRM means Test Responsibility Matrix.

TRM: — It indicates mapping between test factors and development stages…

Test factors like:
Ease of use, reliability, portability, authorization, access control, audit trail, ease of operates, maintainable… Like dat…

Development stages…

Requirement gathering, Analysis, design, coding, testing, and maintenance

2. What is Six sigma? Explain.

Six Sigma:
A quality discipline that focuses on product and service excellence to create a culture that demands perfection on target, every time.

Six Sigma quality levels
Produces 99.9997% accuracy, with only 3.4 defects per million opportunities.

Six Sigma is designed to dramatically upgrade a company’s performance, improving quality and productivity. Using existing products, processes, and service standards,
They go for Six Sigma MAIC methodology to upgrade performance.

MAIC is defined as follows:

Measure:  Gather the right data to accurately assess a problem.
Analyze:  Use statistical tools to correctly identify the root causes of a problem.
Improve:  Correct the problem (not the symptom).
Control:  Put a plan in place to make sure problems stay fixed and sustain the gains.

Key Roles and Responsibilities:

The key roles in all Six Sigma efforts are as follows:

Sponsor:  Business executive leading the organization.
Champion:  Responsible for Six Sigma strategy, deployment, and vision.
Process Owner:  Owner of the process, product, or service being improved responsible for long-term sustainable gains.
Master Black Belts:  Coach black belts expert in all statistical tools.
Black Belts:  Work on 3 to 5 $250,000-per-year projects; create $1 million per year in value.
Green Belts:  Work with black belt on projects.

3. What are the main bugs which were identified by you and in that how many are considered as real bugs?


If you take one screen, let’s say, it has got 50 Test conditions, out of which, I have identified 5 defects which are failed. I should give the description defect, severity and defect classfication. All the defects will be considered.

Defect Classification are:
GRP    :    Graphical Representation
LOG    :    Logical Error
DSN    :    Design Error
STD    :    Standard Error
TST    :    Wrong Test case
TYP    :    Typographical Error (Cosmotic Error)


4. What is Software reliability?

It is the probability that software will work without failure for a specified period of time in a specified environment. Reliability of software is measured in terms of Mean Time Between Failure (MTBF).

For eg if MTBF = 10000 hours for an average software, then it should not fail for 10000 hours of continous operation.


5. What are the main key components in Web applications and client and Server applications? (differences)

For Web Applications:  Web application can be implemented using any kind of technology like Java, .NET, VB, ASP, CGI& PERL. Based on the technology,We can derive the components.

Let’s take  Java Web Application. It can be implemented in 3 tier architecture.  Presentation tier (jsp, html, dthml,servlets, struts). Busienss Tier (Java Beans, EJB, JMS) Data Tier(Databases like Oracle,  SQL Server etc., )

If you take .NET Application, Presentation (ASP, HTML, DHTML), Business Tier (DLL) & Data Tier ( Database like Oracle, SQL Server etc.,)

Client Server Applications:  It will have only 2 tiers.  One is Presentation (Java, Swing) and Data Tier (Oracle, SQL Server).  If it is client Server architecture, the entire application has to be installed on the client machine. When ever you do any changes in your code, Again, It has to be installed on all the client machines. Where as in Web Applications, Core Application will reside on the server and client can be thin Client(browser). Whatever the changes you do, you have to install the application in the server. NO need to worry about the clients. Because, You will not install any thing on the client machine.


6.  In what basis you will write test cases?


I would write the Test cases based on Functional Specifications and BRDs and some more test cases using the Domain knowledge.


7.  What is the minimum criteria for white box?

We should know the logic, code and the structure of the program or function. Internal knowledge of the application how the system works what’s the logic behind it and structure how it should react to particular action.


8.  Why we perform stress-testing, resolution-testing and cross- browser testing?


Stress Testing:
 - We need to check the performance of the application.

Def:
 Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements

Resolution Testing:
 - Some times developer created only for 1024 resolution, the same page displayed a horizontal scroll bar in 800 x 600 resolutions. No body can like the horizontal scroll appears in the screen. That is reason to test the Resolution testing.

Cross-browser Testing:
 - This testing some times called compatibility testing. When we develop the pages in IE compatible, the same page is not working in Fairfox or Netscape properly, because most of the scripts are not supporting to other than IE. So that we need to test the cross-browser Testing

There are two sand clocks(timers) one complete totally in 7 minutes and other in 9-minutes we have to calculate with this timers and bang the bell after completion of 11- minutes!plz give me the solution.
1. Start both clocks
2. When 7 min clock complete, turn it so that it restarts.
3. When 9 min clock finish, turn 7 min clocks (It has 2 mints only).
4. When 7 min clock finishes, 11 min complete.


9. What are the differences between these three words Error, Defect and Bug?


Error: The deviation from the required logic, syntax or standards/ethics is called as error.

There are three types of error. They are:
Syntax error (This is due to deviation from the syntax of the language what supposed to follow).
Logical error (This is due to deviation from the logic of the program what supposed to follow)
Execution error (This is generally happens when you are executing the same program, that time you get it.)
Defect: When an error found by the test engineer (testing department) then it is called
defect

Bug: if the defect is agreed by the developer then it converts into bug, which has to fix by the developer or post pond to next version.


10. How many bugs will you find and what types are they?

The Bugs i find in a Day could be an User Interface defect Bug, boundary related, Database Related, Error Handling deffect, calculation deffectLoad conditions, hardware failures, Compatibility related.


11. What are non-functional requirements?


The non-functional requirements of a software product are: reliability, usability, efficiency, delivery time, software development environment, security requirements, standards to be followed etc.


12.  What is Test Server?

Test Server is nothing but the place where the developers put their development modules, which are accessed by the testers to test the functionality (Soft Base).

13. What is Test Data Collection?

Test data is the collection of input data taken for testing the application.  Various types and size of input data will be taken for testing the applications. Sometimes in critical application the test data collection will be given by the client also.


14. How u r breaking down the project among team members?


It can be depend on these following cases—-
1) Number of modules
2) Number of team members
3) Complexity of the Project
4) Time Duration of the project
5) Team member’s experience etc…


15. Diff. between STLC and SDLC?


STLC is software test life cycle it starts with
•    Preparing the test strategy.
•    Preparing the test plan.
•    Creating the test environment.
•    Writing the test cases.
•    Creating test scripts.
•    Executing the test scripts.
•    Analyzing the results and reporting the bugs.
•    Doing regression testing.
•    Test exiting.
SDLC is software or system development life cycle, phases are…
•    Project initiation.
•    Requirement gathering and documenting.
•    Designing.
•    Coding and unit testing.
•    Integration testing.
•    System testing.
•    Installation and acceptance testing.
•    Support or maintenance.

SCM and SQA will follow throughout the cycle.


16. What is Use case?

A simple flow between the end user and the system. It contains pre conditions, post conditions, normal flows and exceptions. It is done by Team Lead/Test Lead/Tester.