Wednesday, July 16, 2008

Software Testing FAQs

1. What is 'Software Testing'?

The operation of a system or application under controlled conditions refers to ‘software testing’. Software testing is carried out, in order to evaluate the results of the operation. In the process of software testing, the controlled conditions would include both normal and abnormal conditions.

While testing applications, testers would intentionally try to make things go wrong in order to determine if application works well and is error-free. Software testing teams usually consist of testers, developers and project managers. At times software testing would also include a part of QA testing.

2. How can World Wide Web sites be tested?

Testing websites can become a long-time effort because websites are client/server applications with browser clients and web servers. While testing web sites, firewalls, internet connections, TCP/IP communications, applications that run in web pages and applications that run on the server side. Testing websites is also a major effort because there are a wide variety of browsers and servers to be considered, multiple protocols and standards, different connection speeds and varied technologies.

The expected load on the server, target audience, performance expected on the client side, security, HTML specifications, standards of page appearance, validation of links, tracking of programs and other features are kept in mind while testing websites.

3. What's a 'test plan'?

A test plan is a document that contains details about the objectives, approach, scope and focus of a software testing project. Test plans are usually created in order to enable people outside the group of software testers to understand more about the project. These test plans should contain enough information to make it useful but not too much information to make it difficult for people outside the project to understand.

Test plans usually include details about the target audience, the objectives of testing, overviews of software products, legal requirements, traceability requirements, testing priorities, database set up requirements and project risk analysis amongst others.

4. What's a 'test case'?

A test case is a document that contains details about an action and the expected response, to verify if a particular feature in an application is working correctly. Test cases are developed early in the development cycle so that software testers can find problems in the design or requirements of a software application.

Test plans usually contains details such as, test case name, test case identifier, test conditions, objectives, steps, input data requirements and the desired results.

5. When should testing be stopped?

With latest software applications becoming more complex, it is difficult to decide when testing should be stopped. However, there are some common factors that can help you decide when testing should be stopped. When test cases are completed, test budgets depleted, beta/alpha period terminated, bug rates fallen and deadlines ended, it is time to stop testing the application.

6. What is 'good code'?

Good code is code that has no bugs, works well, is easily readable and can be maintained with ease. Developers and testers usually follow varied theories, metrics and standards to ensure good code. With the help of pair programming, reviews and code analysis tools, software testers can check applications to check for programs and later enforce standards.

7. What is ‘good design’ in software programs?

‘Design’ in a software program could mean either ‘internal design’ or ‘functional design’. If the overall structure of the software program can be easily modified, understood and maintained, then it can be said that the software program has a good internal design. The features of a good internal design also include status logging capabilities, correct functioning and error-handling capabilities.

Good functional design refers to how the users of the software find the functionality of the design. If the software program meets all the requirements of the end-user, then it means that the software has a good functional design. Most users may have little computer knowledge and may not read the user manual or online-help. In such cases, if the software has a good functional design, then users can use the software with ease.

What are the different types of software testing that can be considered?

The following is a list of the different types of software testing that can be considered

  • White box testing
  • Unit testing
  • Functional testing
  • Black box testing
  • System testing
  • Acceptance testing
  • End-to-end testing
  • Integration testing
  • Mutation testing
  • Compatibility testing
  • Regression testing
  • Usability testing
  • User acceptance testing
  • Performance testing
  • Stress testing
  • Comparison testing
  • Alpha testing
  • Fail over testing
  • Beta testing
  • Smoke testing
  • Install/uninstall testing
  • Security testing
  • Load testing
  • Exploratory testing

No comments: