What are the basic solutions for the software development problems?

  • Basic requirements - clear, detailed, complete, achievable, testable requirements has to be developed. Use some prototypes to help pin down requirements. In nimble environments, continuous and close coordination with customers/end-users is needed.
    Schedules should be realistic - enough time to plan, design, test, bug fix, re-test, change, and document in the given schedule.
  • Adequate testing – testing should be started early, it should be re-tested after the bug fixed or changed, enough time should be spend for testing and bug-fixing.
  • Proper study on initial requirements – be ready to look after more changes after the development has begun and be ready to explain the changes done to others. Work closely with the customers and end-users to manage expectations. This avoids excessive changes in the later stages.
  • Communication – conduct frequent inspections and walkthroughs in appropriate time period; ensure that the information and the documentation is available on up-to-date if possible electronic. More emphasize on promoting teamwork and cooperation inside the team; use prototypes and proper communication with the end-users to clarify their doubts and expectations.

What is UAT testing? When it is to be done?

UAT testing - UAT stands for 'User acceptance Testing. This testing is carried out with the user perspective and it is usually done before the release.

What is Re- test ? What is Regression Testing ?

Re- test - Retesting means we testing only the certain part of an application again and not considering how it will effect in the other part or in the whole application.
Regression Testing - Testing the application after a change in a module or part of the application for testing that is the code change will affect rest of the application.

What is the difference between structural and functional testing?

Structural testing is a "white box" testing and it is based on the algorithm or code.
Functional testing is a "black box" (behavioral) testing where the tester verifies the functional specification.

Describe bottom-up and top-down approaches in Regression Testing

Bottom-up approach : In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module.
Top-down approach : In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary program called STUB is used for simulate the submodule.

What is Ad-hoc testing?

Ad hoc testing is concern with the Application Testing without following any rules or test cases.
For Ad hoc testing one should have strong knowledge about the Application.

Perform Web Load Test Using Visual Studio

Visual Studio 2005 comes with a set of tools to perform load testing of applications and analyze their behavior under load.

This tutorial is for beginners and demonstrates how to perform load testing of a web application.
Following setups are covered in this tutorial:
  • Recording a web test
  • configure a load test for iterations, user loads, etc.
  • Reading output of load test.

What are SDLC and STLC ? Explain its different phases.

  • SDLC
    Requirement phase
    Designing phase (HLD, DLD (Program spec))
  • STLC
    System Study
    Test planning
    Writing Test case or scripts
    Review the test case
    Executing test case
    Bug tracking
    Report the defect

What is Negative testing?

Negative testing - Testing the system using negative data is called negative testing, e.g. testing the password where it should be minimum of 8 characters so testing it using 6 characters is negative testing.

What is Test bed and Test data ?

Test Bed is an execution environment configured for software testing. It consists of specific hardware, network topology, Operating System, configuration of the product to be under test, system software and other applications. The Test Plan for a project should be developed from the test beds to be used.Test Data is that run through a computer program to test the software. Test data can be used to test the compliance with effective controls in the software.

What is the difference between Bug, Error and Defect?

Error : It is the Deviation from actual and the expected value.
Bug : It is found in the development environment before the product is shipped to the respective customer. Defect : It is found in the product itself after it is shipped to the respective customer.

Explain Peer Review in Software Testing

It is an alternative form of Testing, where some colleagues were invited to examine your work products for defects and improvement opportunities.
Some Peer review approaches are,Inspection – It is a more systematic and rigorous type of peer review. Inspections are more effective at finding defects than are informal reviews.Ex : In Motorola’s Iridium project nearly 80% of the defects were detected through inspections where only 60% of the defects were detected through formal reviews.Team Reviews – It is a planned and structured approach but less formal and less rigorous comparing to Inspections.Walkthrough – It is an informal review because the work product’s author describes it to some colleagues and asks for suggestions. Walkthroughs are informal because they typically do not follow a defined procedure, do not specify exit criteria, require no management reporting, and generate no metrics.Pair Programming – In Pair Programming, two developers work together on the same program at a single workstation and continuously reviewing their work.Peer Deskcheck – In Peer Deskcheck only one person besides the author examines the work product. It is an informal review, where the reviewer can use defect checklists and some analysis methods to increase the effectiveness.Passaround – It is a multiple, concurrent peer deskcheck where several people are invited to provide comments on the product.

What is Fuzz Testing ?

Fuzz testing is a Black box testing technique which uses random bad data to attack a program and see what breaks in the application.
Fuzz testing is mostly used to,• Set up a correct file to enter your program.• Restore some part of the file by using random data.• Unlock the file with the program.• Observe what breaks.
Fuzz testing can be automated for maximum effects on large applications. This testing improves the confidence that the application is safe and secure.