Shop Amazon's New Kindle Fire

Wednesday, December 10, 2008

Various Kinds of Testing

Different Types of Testing

Static V/s Dynamic Testing

• Development V/s Independent Testing

• Black v/s White box Testing

• Automated v/s Manual

• Sanity, smoke & Acceptance Testing

• Regression Testing

• Exploratory and Monkey Testing

• Debugging v/s Bugging
Dynamic V/s Static testing
Dynamic testing is the testing that involves testing, running and using the software whereas
Static testing is testing something that’s not running i.e. examining and reviewing it.

For example: Inspecting a car without running is the static testing while test driving a car is the dynamic testing.
Dynamic testing-When we run the Software.

Static testing-When system is not running.
Development V/s Independent Testing

Development Testing denotes the aspect the aspects of test design and implementation most appropriate for the team developers to undertake. In most cases test execution initially occurs with the developer testing group who designed and implemented the test, but it is a good practice for the developer to create their tests in such a way so as to make them available to independent testing groups for execution.

Independent testing denotes the test design and implementation most appropriately performed by someone who is independent from the team of developers. In most cases test execution initially occurs with the independent testing group that design and implement the test, but the independent tester should create their testes to make them available to the developer testing groups for execution.
Development testing - In which developer himself test the software.
Independent Testing-Group of people and they are concerned with the development part.
Black Box Vs White Box Testing
Black box testing also knows as Behavioral testing is a software testing technique in which the internal workings of the item being tested are not known to tester.
For example, When black box testing is applied to software engineering, the tester would only know the “legal “inputs and what the expected outputs should be, but not how the program actually arrives at those outputs. It is because of this, black box testing can be considered as the testing with respects to the specifications, and no other knowledge of program is necessary.
Black box testing attempts to finds errors in the following categories:-
  • Incorrect or missing functions.
  • Interface errors.
  • Errors in data structures or external database access.
  • Initialization and termination errors.
Black box testing treats the software as a "black box"—without any knowledge of internal implementation. Black box testing methods include:

Equivalence Partitioning
Boundary Value Analysis
All-Pairs Testing
Fuzz Testing
Model-Based Testing
Traceability Matrix
Exploratory Testing
Specification-Based Testing.

White box testing
White box testing is when the tester has access to the internal data structures and algorithms including the code that implement these.
Types of white box testing
The following types of white box testing exist:
· API testing (application programming interface) - testing of the application using public and private APIs
· Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test designer can create tests to cause all statements in the program to be executed at least once)
· Fault injection methods - improving the coverage of a test by introducing faults to test code paths
· Mutation testing methods
· Static testing - White box testing includes all static testing
Test coverage
White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods. This allows the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested.
Two common forms of code coverage are:
· Function coverage, which reports on functions executed
· Statement coverage, which reports on the number of lines executed to complete the test

They both return code coverage metric, measured as a percentage.

Testing levels
Unit testing
Integration testing
System integration testing
Regression testing
Acceptance testing
Alpha testing
Beta testing

Regression testing
Regression means testing “again n again”.
Regression testing focuses on finding defects after a major code change has occurred. Specifically, it seeks to uncover software regressions, or old bugs that have come back













Links to other posts

Monday, December 8, 2008

Software Testing & Software Development Life Cycle

Software Testing

Software testing is an essential part of s/w development process which is used to identify the correctness, completeness and quality of developed s/w.
its main objective is to detect errors in software.

SDLC: - SDLC is overall process of developing information on system through a multi-step process from investigation of initial requirements through analysis, design, implementation and maintenance.




Role of Testing in Various phase of SDLC
S/w Development phase
Testing
Requirement Phase
1. Determine the test strategy.
2. Determine requirement.
Design phase
1. Determine consistency of design with
requirements.
2. Determine adequacy of design.
3. Generate structural and functional test condition
Coding Phase
1. Determine consistency with design
2. Determine adequacy of implementation
3. Generate structural and functional test condition for program unit
Testing Phase
1.Determine adequacy of the test plan
2.Test application system
Installation and Maintenance Phase
1. Place tested system into production
2. Modify and retest

Water fall model: - Also know as linear sequential model or Classical life cycle model
This model was introduced by Winston Royce in 1970 and is currently the most commonly used model for s/w.




Prototype Model

This model is applied when there is an absence of detailed information regarding input and output requirement in s/w.
Advantages:
1. Helps in reducing risk associated with the project.
2. There is a great involvement of user in s/w development.

Disadvantages:
This model is time consuming and expensive. Because if the user is not satisfied by the developed prototype then a new prototype is developed. This process goes on until a perfect prototype is developed.




Spiral Model- Proposed by Bohem in 1988.
1. Each Loop of the spiral represents a phase of the s/w process.
2. The innermost loop might be concerned with system feasibility.
3. The next loop with system requirement definition.
4. The next one with system design and so on.




Friday, November 21, 2008

Testing Interview Questions

Software Testing Interview Questions

Q.1 At what phase you write test case
Ans:- After the requirements, we are writing the test plan then these baseline docs(Requirement and test plan ),we will start writing test cases.

Q.2 Difference b/w Test plan, Test Strategy, Test Scenario and test case
Ans:- TEST PLAN :- Test plan is a document, developed by the test lead, which contains " "what to test" "How to test" "When to test " Who to test "

Test Strategy:- Is a document, developed by the "Project manger" which contains what type of technique to follow and which module to test.

Test Scenario:- A name given to test case is called Test Scenario. The test scenario is deal by the test Engineer

Test Case: - It is a document and it specifies a testable condition to validate functionality the test cases are deal by test engineer.


Order of STLC Test Strategy, Test Plan, test Scenario ,Test Case


Q.3 What is bug life cycle?
Ans:- NEW --OPEN -- VERIFIED -- FIXED --CLOSED

Q.4 What is meant by priority and severity?
Ans: - Priority: - Means "Importance of defect w.r.t customer requirement.
Severity means "Seriousness of the defect w.r.t functionality
Priority is assigned by test engineer and priority is assigned by developer.

Q.5 Difference between Verification and Validation?
Ans:-
Verification -It is a static testing procedure 2.Are we building the product right?

validation-It is a dynamic testing procedure 2.Are we building the right product?


Q.6 what is the difference b/w desktop application testing and web testing?
Ans:-
Desktop Testing--Desktop testing is standalone testing. 2. Desktop need not worry about number of user etc.
Web testing-- Web testing is related to client server.2. Web testing needs to have many testing’s like usability,GUI,Load Testing


Q.7 Web application Architecture??
Ans:-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.

Q.8 how would you do performance testing manually for website?
Ans:-By noting the time to load page or performance any actions with stop watch.

Q.9

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.

Monday, October 20, 2008

web site testing

By website tester Ashok Sharma


While testing a web application you need to consider following Cases:

• Functionality Testing
• Performance Testing
• Usability Testing
• Server Side Interface
• Client Side Compatibility
• Security

Functionality:
In testing the functionality of the web sites the following should be tested:
• Links
i. Internal Links
ii. External Links
iii. Mail Links
iv. Broken Links
• Forms
i. Field validation
ii. Error message for wrong input
iii. Optional and Mandatory fields
• Database
* Testing will be done on the database integrity.
• Cookies
* Testing will be done on the client system side, on the temporary Internet files.
Performance :
Performance testing can be applied to understand the web site’s scalability, or to benchmark the performance in the environment of third party products such as servers and middleware for potential purchase.
• Connection Speed:
Tested over various networks like Dial Up, ISDN etc
• Load:
i. What is the no. of users per time?
ii. Check for peak loads and how system behaves
iii. Large amount of data accessed by user
• Stress:
i. Continuous Load
ii. Performance of memory, CPU, file handling etc..
Usability:
Usability testing is the process by which the human-computer interaction characteristics of a system are measured, and weaknesses are identified for correction.
• Ease of learning
• Navigation
• Subjective user satisfaction
• General appearance
Server Side Interface:
In web testing the server side interface should be tested. This is done by verify that communication is done properly. Compatibility of server with software, hardware, network and database should be tested.
Client Side Compatibility:
The client side compatibility is also tested in various platforms, using various browsers etc.
Security:
The primary reason for testing the security of a web is to identify potential vulnerabilities and subsequently repair them.
• Network Scanning
• Vulnerability Scanning
• Password Cracking
• Log Review
• Integrity Checkers
• Virus Detection