31
Jan

Project Estimation Techniques

If you want to be successful in Project Test Estimation then you should have execution knowledge which is eventually very significant in Software Testing Life Cycle. Software Test Estimation Techniques are indeed essential to make good reputation with your client when you bid for testing projects. It also gives you idea that how your approach should be during the execution of the project.

In case, you have experience in various software testing life cycle then chances are higher that you estimate your project very well as your experience may help you in providing various ideas & techniques for that testing project. It is practically not possible to put some number of days or estimate with old time formula of one third of the development effort. The requirement keeps on changing from client side & we have to adjust the same accordingly. Some companies which offer testing services use this formula which isn’t correct as it is not based on any scientific techniques or principles.

Following factors are indeed essential for any software test estimation and they are highly recommended in any software testing organization.

  • Team Knowledge on the subject/skills
  • Historical data for the previous estimation for improvement and accuracy
  • Domain Knowledge and core requirements
  • Risks and complexity of the application
  • Team Knowledge on the subject/skills
  • Bug cycles for the project
  • Estimation should include buffer time
  • Resources availability (Like vacations, holidays, and sick days can have a great impact on your estimates)
  • Bug cycles for the project

Many techniques are used in recent years that have been developed for test estimation of the software.

Some of the Estimation Techniques are:

 Following are the popular Test Estimation Techniques:-

Use – Case Point Method:

Use-Case Point Method is completely based on the use cases that we calculate the un-adjusted actor weights to determine the software test estimation.

Use case is a document which well specifies systems, different users or other stakeholders that interact with the concerned application. They are certainly named as ‘Actors’. The interactions achieve some defined goals hence protecting the interest of all stakeholders via flow termed or different behavior as scenarios. 

The formula used for this technique is:

  • Unadjusted actor weights = total no. of actors (positive, negative and exceptional)
  • Unadjusted use case weight = total no. of use cases.
  • Unadjusted use case point = Unadjusted actor weights + Unadjusted use case weight
  • Determine the technical/environmental factor (TEF) ( if not available take as 0.50)
  • Adjusted use case point = Unadjusted use case point * [0.65+ (0.01 * TEF]
  • Total Effort = Adjusted use case point * 2

3-Point Software Testing Estimation Technique:

3-Point Software Testing Estimation Technique is completely based on statistical methods where each testing task is broken down into sub tasks and further into three types on each tasks.

The formula used by this technique is:

Test Estimate = P + (4*N) + E / 6

Whereas P = Positive Scenarios or Optimistic Estimate (Best case scenario in which nothing goes wrong and all conditions are optimal.)

N = Negative Scenarios or Most Likely Estimate (most likely duration and there may be some problem but most of the things will go right.)

E = Exceptional Scenarios or Pessimistic Estimate (worst case scenario which everything goes wrong.)

Standard deviation for the technique is calculated as,

Standard Deviation (SD) = (N – E)/6

Work Breakdown Structure:

This method is created by breaking down the test project into small pieces. Modules are separated into sub-modules. Sub modules are then further separated into functionalities and functionalities are then separated in sub-functionalities.

You should review all the requirements from Requirement Document so as to make sure that they are added in WBS. Later, figure out the number of tasks your team needs to complete. Estimate properly the duration of each task.

Wideband Delphi Estimation Technique:

Following the same procedure as above in WBS. In this, work breakdown structure is disintegrated for each task and further distributed to a team comprising of say 3-7 members so as to re-estimate the task. The final estimate is the consequence of the brief estimates that are based on the team consensus. This method actually speaks more on experience instead of any statistical formula. Moreover, this method is initially popularized by Barry Boehm to emphasize on the group iteration so as to reach to a consensus where the team visualize on the different aspects of problems whereas estimating the test effort.

Function Point/Testing Point Analysis:

The Function Point technique is a direct pointer of the functionality of software application from the user’s viewpoint. This technique is the most accepted technique that is used to estimate the size of a software project. 

This technique is also a part of TMap. In function point technique, function points are converted into test points. In Test Point analysis, we carry out following:

  • Static Test Points
  • Dynamic Test Points
  • Environmental Factor
  • Control Factor
  • Productivity Factor
  • Primary Test Hours
  • Total Test Hours
  • Control Factors

In Software Testing, estimation is generally based on previously created application prototype or requirement specification document. To calculate FP for a project, some of the major components are required.  

The major components required are:

Unadjusted Data Function Points:

  1. Internal Files
  2. External Interfaces 

Unadjusted Transaction Function Points:

  1. User Inputs
  2. User Outputs & User Inquiries

Capers Jones basic formula: 

Number of Test cases = [Number of Function Points] x 1.2

Total Actual Effort, TAE = (Number of Test cases) * (Percentage of development effort /100) 

This method is used when requirement document or a detailed low level design document is available. Previous data for development and testing & measure of function point is available.

Latest Posts

25
Jan

Automation Testing: Process, Planning, Tool Selection – 2

Automation Tools:

Following are the most standard test automation tool used in most of the companies:

QTP/UFT: HP Functional Test, earlier known as HP’s Quick Test Professional is the Automation testing tool that supports number of environments such as Java, SAP, Delphi and many more. QTP can be collaborated with Quality centre which is actually a Test Management tool used for client/server applications.

Rational Robot: It is basically an IBM tool that is used to automate functional, regression and configuration tests for e-commerce, client server as well as ERP applications. This tool can be used with Rational Test Manager that helps in Test Management Activities

Selenium: This is an open source web Automation Tool which supports all kinds of web browsers and the most demanding tool in today’s market. Many companies are using this tool for sake of its performance and price. It can be integrated with multiple Test Management tools, Continuous Integration Tools etc.

How an Automation Tool should be chosen? 

It is really a tricky task to choose an Automation tool. Following criteria will assist you in choosing the best automation tool for your test automation.

  • There should be an Environment Support.
  • It’s easy to use.
  • Database Testing Feature should be present.
  • Object identification should be there.
  • Image Testing.
  • Error Recovery Testing.
  • Object Mapping availability.
  • Scripting Language should be used.
  • It should support various kinds of test such as- functional, mobile, etc
  • Multiple testing frameworks should be supported.
  • Debugging of automation software scripts is easy.
  • Should recognize objects in any environment.
  • Widespread test reports and results.
  • Lessen training cost of selected tools.

Automation Tool selection is one of major trials to be undertaken prior opting for automation. Initially requirements should be identified, various tools and its capabilities should be explored. You should set the expectation from the tool further going for a Proof of concept.

Framework in Automation 

A framework is actually a set of automation guidelines. It increases code re-usability, portability, reduce script maintenance cost etc. These are not rules and are not mandatory. You can script without following the guidelines. But you may miss some advantages of having a Framework. Guidelines are like:

  • Maintains consistency of Testing
  • Improved test structuring
  • Usage of code is minimum
  • Less Maintenance of code
  • Re-usability is Improved
  • Non-Technical testers can collaborate in code
  • Training period of using the tool can be lessen
  • Involves Data wherever suitable

Four types of framework are generally used in software automation testing:

  1. Hybrid Automation Framework
  2. Data Driven Automation Framework
  3. Modular Automation Framework
  4. Keyword Driven Automation Framework

What are Automation Best Practices? 

Observe the following to get maximum ROI of automation

  • Scope of Automation needs to be firm in much detail prior to start of the project. This will set expectations from Automation right.
  • Select the right automation tool: A tool should not be selected grounded on its status instead, it’s acceptance to the automation requirements.
  • Select suitable framework
  • Scripting Standards– Standards have to be followed during writing the scripts for Automation. Some of them include-
    • Generate constant scripts, comments and indentation of the code
    • Adequate Exception handling include – How bug is handled on system failure or unexpected behaviour of the application.
    • User defined messages should be standardized or coded for Error Logging for testers to recognize.
  • Measure metrics– Success of automation is determined by capturing the following metrics and not by comparing the manual effort with the automation effort.
    • Time requisite for automation testing for each and every release cycle
    • Percent of defects to be found
    • Customer satisfaction Index
    • Minimum Time taken for release
    • Productivity improvement

The above guidelines are indeed helpful while making selection of your automation tool.

What are the benefits of Automated Testing?

Following are advantages of automated testing:

  • Much more faster than the manual testing say 70%
  • Broader test coverage of application features
  • Consistent in results
  • Confirm Consistency
  • Saves Cost and Time
  • Increases accuracy
  • Human Intervention is not needed during execution
  • Rises Efficiency
  • Excellent speed in executing tests
  • Test scripts can be re-used
  • Test thoroughly and Frequently
  • Through automation, More  cycle of execution can be achieved
  • Primary time to market

Conclusion:

You should have three essential things for Automation to be successful. They are Right selection of automation tool, testing process and team. For successful testing, Manual and automation methods go hand-in hand.

24
Jan

Automation Testing: Process, Planning, Tool Selection – 1

Manual testing is very convenient as compared to Automation testing as it is performed by human who sits in front of computer, while executing the test steps very carefully. Automation Testing refers to usage of automation tools that can execute your test suite. Automation software enters test data into the system under test. It is also responsible for comparing the expected and actual results so as to generate detailed test reports.

If you are planning to choose Automation testing for your product then you need to be prepared for the investments on resources and tools. The development of your product will need execution of same test suite until the final product is made. With the use of test automation tool, it becomes quite easy to record this suite while re-playing it as required by your product. There is no need of human intervention, once test suite is automated. This will eventually help in improving the ROI of Test Automation.

The main objective of Automation tool is to lessen number of test cases when compared with manual testing, hence not eliminating the manual testing all of a sudden.

Why Automated Testing, instead of Manual testing?

Following reasons makes Automation testing significant:

  • Manual Testing of all work flows, all negative scenarios, all fieldsis very much costly and time consuming
  • It is hard to test multi lingual sites manually.
  • Automation tests do not need Human intervention. Automated test can be executed unattended (overnight).
  • Automation rises test execution speed.
  • Automation aids in Test Coverage increase.
  • Manual Testing is quite boring, further leads to many errors

With Automation Testing, Which Test Cases need to Automate?

Following criterion can be used to select the Test cases that need to be automated, to increase the ROI of automation.

  • Business Acute test cases which are at High Risk.
  • Test cases which are executed repeatedly.
  • Test Cases that difficult to perform manually and tedious.
  • Test Cases which are very much time consuming.

Following criteria can’t be considered for test Automation:

  • Test Cases whom requirements change frequently
  • Test cases which are performed on ad-hoc basis
  • Newly designed test cases which are not executed manually at once.

 

What is Automation Process?

Test tool selection:

Selection of the automation tool depends on the technology which the Application under test is built on. To explain with QTP, it does not support Informatica hence cannot be used for testing the Informatica applications. It is always better idea to conduct proof of concept of Tool on AUT.

Scope of Automation:

Scope of automation is defined as the extent of your Application under Test that will be automated. Following points aid in determining scope:

  • Feature that are significant for the business.
  • Scenarios having large amount of data.
  • Common functionalities throughout applications.
  • Technical possibility.
  • Amount to which business components are reused.
  • Complexity amongst test cases.
  • Capability to use the same test cases for cross browser testing.

How are the Planning, Design and Development done?

This is the phase where you create Automation strategy & plan, that has following details-

  • Selection of Automation tools.
  • Design of Framework and its features.
  • In-Scope and Out-of-scope items of automation.
  • Prepared Automation test bed.
  • Timeline and Schedule of execution and scripting.
  • Deliverables of automation testing.

How Test Execution is done?

During this phase, Automation Scripts are executed. The scripts here require input test data; prior they are set to run. Once on complete execution, they provide detailed report.

There are multiple ways of carrying out the execution i.e. through Automation tool, build tool (Maven, Ant, Gradle etc), CI Tool (Teamcity, Jenkins etc) or through Test Management tool, which eventually invokes the automation tool.

For instance take example of QC which is generally referred as Quality Centre. It is basically a test management tool which eventually invokes QTP so as to execute automation scripts. You can execute the scripts on single machine or a group of machines. If you are short of time, then you may execute the scripts during night so that your time will be saved.

Maintenance

Automation Scripts need to be reviewed, added and maintained for each release cycle on addition of new functionalities of System under Test. Maintenance is indeed essential to increase efficiency of Automation Scripts.