Home > Subjects > IT/Technology > Software Test Case Optimization

Software Test Case Optimization



This paper talks about optimizing the test cases while testing any software; a complete overview of optimization is proposed in the report along with the discussion of already researched in respective fields.

Keywords—Test cases, optimization, SUT (Software under testing).





A considerable measure of consideration is regularly paid to the cost of advancement in software, while at the same time, testing & viewpoints identified with testing tend to get overlooked. The cost & time​​ related to software testing are regularly practically identical & much more profitable to the time & expenses associated with the advancement of software.​​ 

Test cases are the set of input values, preconditions that are needed for execution, expected outcomes of the particular functionalities & post-conditions for the commission, that is then produced for a specific goal or for the condition of the test, for instance, to practice a program way specifically or by confirming the consistency with a prerequisite​​ of the system [1].

Moreover, as Digital Economy energizes the craving to exceed rivalry, a few IT associations are designing strategies to upgrade software testing, improve testing efficiency, control costs, & decrease work hours, all of which can deliver​​ a substantial positive effect on the business.​​ 

Since testing is widely used to survey product quality, evaluating the testing it self's nature is imperative. Indeed, the more efficient the test cases are, the more certainty we will have in the product, the more testing we will do in a given period & along these lines.

Mutation analysis, which introduces the product 's existing defects under evaluation, is one approach to cope with creating confidence in test cases. We agree that if they understand these vulnerabilities, test cases are important. This methodology, which has been effectively related to qualifying unit test cases for object-oriented classes,​​ provides developers with useful feedback on their test cases' "Strength of Fault Revealing" [2]. It likewise offers a gauge of what number of new test cases they have to all the more likely test a given component of the software.

While creating an arrangement of essential test cases may be simple, enhancing the set's quality, for the most part, requires restrictive exertion. Without a doubt, the test cases that testers, for the most part, provide effectively cover 50– 70 percent of the presented issues; however, enhancing this score to 90– 100 percent is tedious &, in this manner, costly. Along these lines,​​ generating the test case optimization process could be incredibly useful.

The Objective Of Test Case Optimization:

The primary objective for optimizing test cases is to minimize test cases & enhance the test cases' adequacy. As by issue of a product, test​​ optimization is an issue for optimizing multi-objective, all that can't be understood inside combinatorial time. Thus, it's NP-hard (known as non-deterministic polynomial-time hardness). What's more, the immediate solution for these sorts of NP-difficult​​ issues can't be acquired by a primary pursuit; instead, the search should be completed by methods searching techniques guided for heuristics [3].

Thus, we have studied policy for the heuristics guided populace-based pursuit for the test case optimization approach. The crowd-based search process's fundamental method is they produce a test cases pool amid every emphasis by generating a solution. In contrast, a complete search directed toward completion of each iteration for test cases quality wise. Some of the test cases selected from them at that point for the upcoming iteration go as parents. Finally, test cases nature is relentlessly enhancing; lastly, just a couple of productive test cases qualitative put away in the test case's upgraded repository.

Whereas test case optimization goal is to create standard test cases that can uncover however many faults as could reasonably be expected from the SUT (Software under testing) [3] & can cover SUT in less cost & time. Whereas path coverage & the score of mutation test ampleness criteria should be maximized as much for each test case during the time spent in the formation of test case & set of final test cases size must be limited or minimized.

Achieving Test Case Optimization:

There are numerous methods for​​ accomplishing testing optimization & cost lessening; some of these are [4]

Early Testing:​​ 
  • Mostly defects in software recognized amid testing start in the early investigation stage. Thus, defects that are identified early are more affordable to settle down.

  • Early stage testing can give early indicators about product satisfaction, quality & upgrade the knowledge & familiarity that testers have concerning the product under test.

Knowledge of Domain:​​ 
  • Deploying a man with complete information about the domain​​ has different points of interest. It consequently converts into more noteworthy profitability & more value being added to a project by guaranteeing it meets the quality measures​​ 

  • An individual with domain info can separate between any minor & fundamental issues that may emerge.

Optimization of Resources:​​ 
  • Allocation of resources in fitting given their ability can deliver a few advantages. As specified over that testers with the information about the domain bring better & quicker quality. Automation skills holding testers make better test contents.

  • Motivated testers deliver overall outcomes & proficient Test Managers help the testing groups use their aptitudes to survey & report the SUT's nature adequately.

Methods for Effective Testing
Removal of Test Case Redundancy:​​ 
  • This decreases the test process duration, lessens equipment assets usage & prompts quicker approval. In this way, testers increase the extra time that can be coordinated towards the finishing of other testing exercises, subsequently expanding the nature of the SUT [3].

Good selection of Test Scenarios:​​ 
  • This decreases the danger of test case duplication, expands the nature of the software & checks the test execution time

Rapid Testing:​​ 
  • Usage of Rapid testing methodologies, for example,​​ Risk-Based & Exploratory Testing in uncommon cases like a short testing window, is vital. Risk-Based testing covers the essential parts of an item bringing about excellent quality in a brief timeframe.

  • Rather than planning all tests ahead of time, the explorer's outline & execute little, quick experiments.

Regression Test Suite Size Controlling:​​ 
  • By selecting some of the test cases set from the test suite that gives an indistinguishable scope from the whole test suite.

  • A shorter test suite with a​​ similar scope suggests less execution time, less asset use, bring down expenses while keeping up a comparable quality.

  • Automation is beneficial. Fully automated testing is speedier, more comfortable, diminishes human & specialized dangers & brings down labour costs.​​ 

  • Increased practical scope with low test contents maintenance makes tests intelligible to everybody so they can be from anywhere be supported. It likewise makes tests conservative, guaranteeing a high reflection level. It expels interface & tooling points of interest, making contents verifiable &configurable inside the tools wherever conceivable & characterizes test directions top-down, giving organized tests [4].

  • Parallel execution of automated tests implies high test scope in less​​ time. This strategy uncovers defects speedier & gives a push towards production.

Reduce Test Reporting That is Lengthy or Switch to Simple Yet Frequent Test Reporting:​​ 
  • Simple & regular means less time spent to create & read the report​​ 

  • Simple & continuous​​ reports give a superior view over the nature of the software & help chiefs take speedier choices​​ 

Update Test Data & Environments:​​ 
  • Updated test situations & Test Data meets pertinent outcomes while diminishing the quantity of test execution & asset usage

  • Outdated Test Data suggests an extra interest in time with a specific end goal to recall how to create it.

Tools for testing
Diminishment/evacuation of the use of superfluous & costly tools:​​ 
  • Replace costly tools with open source or more affordable alternatives & expel the infrequently utilized business devices which bring microscopic advantages​​ 

  • Replace tools which are difficult to utilize & devices that are difficult to keep up.

Each & the more significant part of the above can get a noteworthy cost decrease in the software testing process.​​ 

On the off chance that embraced, the strategies portrayed above could obviously enhance the execution of the testing groups, help the testing procedure & certainly diminish the whole SDLC's expenses. These strategies​​ help guarantee that a test group can convey an entire test cycle, all the more productively: in less time & with a higher certainty that a quality item will be propelled effectively to the clients because following all these steps helps excellently to make​​ your testing & test cases usage optimized.

Related Work:

From the study of literature, it's distinguished that a portion of non-transformative methodologies, for example, measurable strategies & likelihood-based techniques, are very unpredictable & furthermore needs a ton of pre-defined suspicions in the generation of automated test data. Methods in light of the static examination of the system's source code, for example, representative execution & requirement settling, are restricted by the dynamic idea of programming & furthermore force the tester to choose the way physically. Moreover, a framework of test case optimization is introduced by Dr. Mala, & Dr. Mohan in their paper [3]. The overview of their​​ framework appears in Figure 1, framed for the test case optimization automation issue utilizing developmental algorithms like Simple Genetic & Hybrid Genetic Algorithm​​ 

(SGA) & (HGA).

Figure 1:​​ Overview of test case optimization framework. ​​ [3]


Consequently, all current test cases should be​​ tested & also, some new test cases should have to be made. For any of the framework, it is merely non-viable to the re-execution of each & every test case, because if there are various test cases to be tested, more effort & time is required. This issue can​​ be clarified by sorting out test cases. Test case prioritization methodologies reorder the need for a test case endeavoring to ensure those most significant lacks are uncovered by the very organized test cases [4].

Moreover, there are different algorithms​​ available to prioritize the test cases; a lot of research work is done in this regard.

  • [1] Khan, R., Amjad, M., & Srivastava, A. K. (2016). Optimization of Automatic Generated Test Cases for Path Testing Using Genetic Algorithm. 2016​​ Second International Conference on Computational Intelligence & Communication Technology (CICT). DOI:10.1109/cict.2016.16

  • [2] Mala, D. J., & Mohan, V. (2010). Quality improvement & optimization of test cases. ACM SIGSOFT Software Engineering Notes,35(3), 1. DOI:10.1145/1764810.1764824

  • [3] Saraswat, P., & Singhal, A. (2016). A hybrid approach for test case prioritization & optimization using meta-heuristics techniques. 2016 1st India International Conference on Information Processing (IICIP). DOI:10.1109/iicip.2016.7975319.

  • [4] Sharma, S., & Singh, A. (2016). Model-based test case prioritization using ACO: A review. 2016 Fourth International Conference on Parallel, Distributed & Grid Computing (PDGC). doi:10.1109/pdgc.2016.7913140




Related Posts

Leave a Comment