Research and Development on Software Testing Techniques and Tools

Research and Development on Software Testing Techniques and Tools

Tamilarasi T (VIT University, India) and M. Prasanna (VIT University, India)
Copyright: © 2018 |Pages: 11
DOI: 10.4018/978-1-5225-2255-3.ch653
OnDemand PDF Download:
List Price: $37.50
10% Discount:-$3.75


Software Testing is the pre-eminent part of the software development life cycle process. It is the process of evaluating system or its components with the specified requirements or not. It is important process by means of accessing the quality of software, reusability and traceability of the requirements specified. There are many number of testing techniques and tools available for this task. Software testing is an essential part of research and lot of development has been made in this field. In this chapter, testing techniques and tools including test design tools, load and performance testing tools, test management tools, test implementation tools, test evaluation tools, static analysis tools, Basic path testing, Loop testing, Control structure testing, code based techniques, Path testing, data flow testing, syntax testing has been described. Some distinctive latest research and development in testing strategy have been summarized.
Chapter Preview

Software Testing Techniques

Testing Outlook

Testing outlook has an impact on the software testing process. Consider the following definition:

Testing is the process to prove that the software works correctly.

This definition sounds good, but the person who developed the software will only try to show that the software works correctly. This is the typical psychology of testing. The software will work correctly for the inputs that are given by that person which will obtain correct results. If some other input was given, the software will obtain wrong results which is not acceptable in a commercial environment.

Now consider this definition:

Testing is a process to prove that the software does not work.

If the aim of the test engineer is to prove that the software does not work, then the process can be considered as good. If the software performs well, then you can say that the software is very reliable. If the software works efficiently, after some days of testing, it does not mean that the software has no bugs at all.

So the definition would be:

Testing is the process to detect the defects and minimize the risk associated with the residual defects.

Verification and Validation

While going for testing, the two terms verification and validation have to be differentiated. Barry Boehm defines these terms as follows:

  • Verification: “Are we Building the product right?”

  • Validation: “Are we building the right product?”

Verification is done by the development team to ensure that the software is as per the specifications in the SRS document. It is to check whether the software conforms to specifications. Validation is to check whether the software meets the customer expectations. It is carried out with the involvement of the client.

Key Terms in this Chapter

Manage Software Outsourcing: Provide a systematic way of enforcing SLAs with outsourcers.

Estimate Development Costs: Prevent scope by accurately estimate the cost of new software development and changes to existing systems.

Service Virtualization Testing: Maximise the use of virtualization toolkits by designing the correct request/response sets.

Manage Changing Requirements: Significantly reduce the amount of time software testers spend manually repairing existing test cases when a change is made.

Agile Processes: Introduce Agile processes into your Software Development life cycle.

Find and Make Test Data: Reduce the time needed to find and make test data by up to 95%. Link the right data to test cases and expected results.

Reverse Engineer Requirements: Define your software requirements using Agile Designer and present them in a visual and active flow chart.

Maximize Test Coverage: Go beyond combinatorial and pairwise testing and cover 100% of requirements in the smallest number of tests.

Continuous Integration: Manage continuous integration frameworks easily.

Optimize Software Tests: Optimize software tests and clean up your existing test cases, reducing your current test cycles by more than 30%.

Link Expected Results: Link expected results to both test cases and data.

Reduce Software Testing Costs: Reduce the cost of testing by de-duplicating your existing test cases and automatically creating missing test cases.

Complete Chapter List

Search this Book: