Monday, January 11, 2010

FAQ-MANUAL SOFTWARE TETSING



Most Frequently Asked Questions:

What are the levels of Testing?
What are the Types of Testing?
What is STLC?
What is Black Box Testing?
Explain Bug Life Cycle?
What tool is used for web application Testing?
Explain Performance Testing?

But what is Software Testing?
Testing is the process of exercising or evaluating a system or system component by or automated means to verify that it satisfies specified requirements, or to differences between expected and actual results." - IEEE
Or
The process of executing a program or system with the intent of ending errors."(Myers 1979)
Or
The measurement of software quality." (Hetzel 1983).

What are the Qualities needed by a software tester?
A software tester must have intent of showing the product is not working as specified. Software testers have the basic attitude of showing the presence of errors. He must have perspective of customer’s i.e. he has to use the system as he is the client of the system. He has to strive for the quality.
Or
Software Tester must have these qualities—

1) He/she must observe the problem from both the side say user and programmer.
2) Must have well under standing with other team members.
3) Able to understand programmers view.
4) Once start testing, do not put it remain.
5) First test requirements of the user.
6) Before start testing first analysis the project like; technology using in project, all the flow etc……

Role of Software Test Engineer in Software Company?
The role of a software test engineer in company is to find the defect. He/She should have “test- to-break” attitude. He/She has to test the application taking the customer into mind. He should work hard for quality.

Can u test a Website or a Web Application manually without using any automation tool?
As per my idea we can test a web application manually without using automation but its time consuming and might have error so to make our task easy and error free automatons tool like Qtp. As for as Manual is concerned we can test Usability, Functionality, Security testing but whereas performance is concerned we can’t do it manually accurate.

What is mean by Software Testing Life Cycle process?
Designing and Testing are two different phases in a Software Testing Life Cycle process STLC-

1. Information Gathering
2. Analysis
3. Designing
4. Coding
5. Testing
6. Implementation and Maintenance.

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……

Usually customers won’t give all the requirements. How will u manage & collect all the necessary information?
Sometimes customer may not produce all the requirements. At this situation Business analyst and project manager will use their experience which they handles this type of projects otherwise we will go through some reference sites where we will observe the functionality and they will prepare use cases and requirements.
Or
I am agreeing with the above answer. If we really face such a problem then it is better to get information from development team so that we can know the exact info Or else use Ad-hoc testing for the required job.

What is the difference between Integration Testing and System Testing?
Integration testing will do the completion of unit or module level Testing.

System testing is nothing but the application meets the required specifications or not
Or
In integration testing individual components are combined with other components to make sure the necessary communications, links and data sharing occur properly.

It is not system testing because the components are not implemented in the operating environment.

System testing begins one the modules are integrated enough to perform tests in whole system environment. System testing can occur in parallel with integration test, especially with the top-down method.

Volume and stress testing: Can the system handle the required data throughput, requests etc.what are the upper bounds.
Configuration testing: Does the system operate correctly on all the required software and hardware configurations.
Resource management testing: Can the system exceed memory allocation limits.
Security testing: Is the system secure enough.
Recovery testing: Use pathological test cases to test system recovery capabilities.
Availability/reliability: Does the system meet the requirements?

Do write a separate test case for Regression Testing? If it is Yes, Explain How to write the Test case?
Well we are not going to right separate test cases for regression testing. We execute the same test cases on newly modified build which ever failed in previous.
OR
We are not going to write new test cases. We will select the some of the test cases from test case document, and execute the test cases to check for the bug fixes. Here we selecting the test cases such way that, all the basic functionality test cases, and affected bug test cases.

How to do the performance testing manually? Does u have a test case for that?
We can test it manually but we don’t get accurate result. We don’t have separate test cases exactly we will do it with tool i.e. Load runner, Act, Web load.


What is the difference between Functional testing and Functionality testing?
Functional Testing: The portion of security testing in which the advertised features of a system are tested for correct operation.
OR
Quality assurance that a web site performs properly. All aspects of the user interface, navigation between pages and off-site, multilingual navigation, etc. are tested. Testing is required in all the current browsers and on the major operating systems and platforms.
OR
Functional testing is nothing but whether the given function is working or not as per the specifications

Ex: field validation, Navigation etc.

Functionality Testing is nothing but to check whether our application is equal to customer requirements or not Here we will do lot more tests

Ex: Inter system Testing
Error handling testing.

What Does Testing Involve?
Testing = Verification + Validation
Verification: building the product right.
Validation: building the right product.

When to stop testing?
The choice is usually based on one of two decision criteria:
- Deadlines (release deadlines, testing deadlines, etc.).
- Test cases completed with certain percentage passed.
- Coverage of code/functionality/requirements reaches a specified point.
- Bug rate falls below a certain level Beta or alpha testing period ends.
- Test budget depleted.

Various stopping rules and software reliability models are compared by their ability to deal with these two criteria. Two new stopping rules, initiated by theoretical study of the optimal stopping rule based on cost, are more stable than other rules for a large variety of bug structures.

Difference between Smoke Testing and Sanity Testing.
         SMOKE TESTING:
  • Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. In software industry, smoke testing is a shallow and wide approach whereby all areas of the application without getting into too deep, is tested.
  • A smoke test is scripted, either using a written set of tests or an automated test
  • A Smoke test is designed to touch every part of the application in a cursory way. It’s shallow and wide.
  • Smoke testing is conducted to ensure whether the most crucial functions of a program are working, but not bothering with finer details. (Such as build verification).
  • Smoke testing is normal health check up to a build of an application before taking it to testing in depth.
        SANITY TESTING:
  • A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep.
  • A sanity test is usually unscripted.
  • A Sanity test is used to determine a small section of the application is still working after a minor change.
  • Sanity testing is a cursory testing, it is performed whenever a cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing.
  • Sanity testing is to verify whether requirements are met or not, checking all features breadth-first.
What is verification?
It involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications. It can be done with checklists, issues lists, walkthroughs, and inspection meetings etc.

What is validation?
It involves actual testing and takes place after verifications are completed.

What is a walkthrough?
An informal meeting for evaluation or informational purposes.

What's an inspection?
It is more formalized than a 'walkthrough', typically with 3-8 people including a moderator, reader, and a recorder to take notes. The subject of the inspection is typically a document such as a requirements spec or a test plan, and the purpose is to find problems and see what's missing, not to fix anything.

What if there isn't enough time for thorough testing?
Consider the following scenarios:

- Which functionality is most important from business point of view?
- Which functionality is most visible to the user?
- Which functionality has the largest financial impact?
- Which aspects of the application are most important to the customer?
- Which parts of the code are most complex?
- Which parts of the application were developed in rush?
- Which aspects of similar/related previous projects caused problems?
- What do the developers think are the highest-risk aspects of the application?
- What kinds of problems would cause the worst publicity?
- What kinds of problems would cause the most customer service complaints?
- What kinds of tests could easily cover multiple functionalities?

What are the common problems in the software development process?
Poor requirements
Unrealistic schedule
Inadequate testing
A request to pile on new features after development is unnderway.
Miscommunication

What's the role of documentation in QA?
QA practices must be documented to enhance their repeatability. There should be a system for easily finding and obtaining information and determining what documentation will have a particular piece of information.