CAD/CAM Software Testing

Introduction
This article will be helpful to those who are in CAD/CAM field and want to know about CAD/CAM software testing. Like any other software development in IT, the CAD/CAM software is also tested for their working and performance. Many software developer companies have the testing unit inbuilt. Following article will explain the different types of testing and the test plan for any CAD/CAM software. While reading this article, think of any one CAD/CAM software and any one tool in that software. It is just to understand the concept in a better way.

Different types of testing to be conducted on any CAD/CAM software
The different types of testing that to be conducted on any CAD/CAM software are: Unit testing, System testing, Integration testing, Regression testing, Performance testing, Acceptance testing, and Load testing. These testing types are discussed next.

Unit Testing
Unit testing is done by software developers and not by end-users. He will test the code (program) as per the tool function. Following are the three conditions that are checked for unit testing:

Testing for success
The functions should succeed to given input. The most fundamental part of unit testing is constructing individual test cases. A test case answers a single question about the code it is testing.
Example: 
The closed sketch should be extruded.
If you extrude the open sketch, the surface should be created.

Testing for failure
It is not enough to test that functions succeed when given good input; you must also test that they fail when given bad input. And not just any sort of failure; they must fail in the way you expect.
Example
The open sketch should not be extruded and if it extrudes, the surface should be formed, not solid model.

Testing for sanity
A unit of code contains a set of reciprocal functions, usually in the form of conversion functions where one converts A to B and the other converts B to A. In these cases, it is useful to create a “sanity check” to make sure that you can convert A to B and back to A without losing precision, incurring rounding errors, or triggering any other sort of bug.
Example
If you create a chamfer of radius 5, then modify to radius 10. Again you modify it to radius 5; you should end up with the same result that you get initially.

A test case should be able to:
1. Run completely by itself, without any human input. Unit testing is about automation.
2. Determine by itself whether the function it is testing has passed or failed, without a human interpreting the results.
 

System Testing
System checking consists of checking the individual tools such as extrude, cut, revolve, and so on. System testing of software is testing conducted on a complete, integrated system to evaluate the software’s compliance with its specified requirements. To conduct this testing, you should not require knowledge of the inner design code or logic (programming).
Example
Checking the extrude tool and all options in its dialog box. You have to check each options functionality and use.

The following are the different types of testing that should be considered during System Testing:

• Performance testing
• Load testing
• Regression testing


Integration testing
Integration testing (sometimes called Integration and Testing, abbreviated I&T) is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. ntegration testing takes as its input modules that have been unit tested, groups them together in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing.
Example
Integration between Part and Drafting modules (Bidirectional associativity). If you modify the part in Part module, it should get modified in the Drafting and Assembly modules.The different types of integration testing are big bangtop-down, bottom-up, and back bone.

Big Bang
In this approach, all or most of the developed modules are coupled together to forms a complete software or major part of the software and then used for integration testing. The Big Bang method is very effective for saving time in the integration testing process. However, if the test cases and their results are not recorded properly, the entire integration process will be more complicated and may prevent the testing team from achieving the goal of integration testing.

Bottom Up
All the bottom or low level modules, procedures or functions are integrated and then tested. After the integration testing of lower level integrated modules, the next level of modules will be formed and can be used for integration testing. This approach is helpful only when all or most of the modules of the same development level are ready. This method also helps to determine the levels of software developed and makes it easier to report testing progress in the form of a percentage.

Regression Testing
Regression testing is done to check no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.
For example
Take an example of extrude tool. If you add a new option in this tool, it should not affect the previous options of that tool.

The Regression testing is also known as verification testing.

Performance Testing
Performance testing is the process of determining the speed or effectiveness of a software. This process can involve quantitative tests done such as measuring the response time at which a system functions. Qualitative attributes such as reliabilityscalability and interoperability may also be evaluated.
Example:
Time taken to extrude, resume an assembly, install the software, and other processes. Usually it should be 10% or less than that.Acceptance testing (The customer is the ultimate judge)Acceptance testing is conducted by the end-user, customer, or client to validate whether or not to accept the product.

There are two types of Acceptance testing and are discussed next.

Alpha testing
Alpha testing is simulated or actual operational testing done by end-users, customers, or an independent test team at the developers' site. Alpha testing is internal acceptance testing, before the software goes to beta testing.

Beta testing
Beta testing comes after Alpha testing. Versions of the software, known as beta versions, are released to a limited audience outside of the company. The software is released to groups of people so that further testing can ensure the product has few faults or bugs. Sometimes, beta versions are made available to the open public to increase the feedback field to a maximal number of future users.

Load testing
In this testing, the high demand is created on a system and measured its response. Load testing generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program's services concurrently.
For example
Software will be forced to open an extremely large model or an assembly.

Test Case and Test Plan
A test case is a detailed procedure that fully tests a tool and options in it. Whereas the test plan describes what to test. A test case describes how to perform a particular test. You need to develop a test case for each test listed in the test plan. In order to fully test that all the requirements of an application, there must be at least one test case for each requirement unless a requirement has sub requirements. In that situation, each sub requirement must have at least one test case.
Example: Test cases for the different extrusion options in the Extrude dialog box.

Extrusion Options
Description
Test Case Name
Blind test
Determine if the sketch is extruding by input value
Blind test
Mid Plane test
Determine if the sketch is extruding equally both sides of the sketch plane
Midplane test
Up to Surface
Determine if the sketch is extruding up to the selected surface
Uptosurface test
Up to Vertex
Determine if the sketch is extruding up to the selected vertex
Uptovertex test
Up to Body
Determine if the sketch is extruding up to the selected body
Uptobody test
Offset from Surface
Determine if the sketch is extruding from the offset distance of the selected surface
Offsetfromsurface test

Test case for Mid Plane extrusion option in the Extrude dialog box.

Test Case Name: Midplane test
Purpose: Determine if the sketch is extruding equally both sides of the sketch plane.
Initial Conditions: Draw a simple closed sketch on any of the sketching plane.
Steps/Description:
1. Invoke the Extrude tool and select the sketch; the Extrude dialog box is displayed.
2. Choose the Mid Plane option from the Direction2. Choose the Mid Plane option from the Direction drop-down list.
3. Enter the extrusion depth value in the Depth
3. Enter the extrusion depth value in the Depth edit box.
4. Choose the Preview4. Choose the Preview button and view the extruded feature.
5. Check if the sketch is extruding equally both sides of the sketch plane.5. Check if the sketch is extruding equally both sides of the sketch plane.
Expected Results: The sketch should extrude equally both sides of the sketch plane.

Test Reporting
Once testing is completed, testers generate metrics and make final reports on their test effort and whether or not the software tested is ready for release.

The metrics

Tests
Pass
Fail
Not Executed
Blind test
1
Midplane test

1
Uptosurface test
Uptovertex test

1

1
Uptobody test

1
Offsetfromsurface test

1
Total test
Total tests by results
6
4
1
1
Date
Pass %
Fail %
Not executed %
17/01/2008
66.66%
16.33%
16.66%

A sample testing cycle
Although testing varies between organizations, there is a cycle to testing:

Requirements Analysis
Testing should begin in the requirements phase of the software development life cycle. During the design phase, testers work with developers in determining what aspects of a design are testable and with what parameters those tests work.


Test Planning
Test Strategy, Test Plan(s), Test Bed creation. A lot of activities will be carried out during testing, so that a plan is needed.

Test Development
Test Procedures, Test Scenarios, Test Cases, and Test Scripts to use in testing software.

Test Execution
Testers execute the software based on the plans and tests and report any errors found to the development team.

Test Reporting
Once testing is completed, testers generate metrics and make final reports on their test effort and whether or not the software tested is ready for release.

Retesting the Defects
Not all errors or defects reported must be fixed by a software development team. Some may be caused by errors in configuring the test software to match the development or production environment. Some defects can be handled by a workaround in the production environment. Others might be deferred to future releases of the software, or the deficiency might be accepted by the end-user. There are yet other defects that may be rejected by the development team (of course, with due reason) if they deem it.

Software to be learned by CAD/CAM professionals
Vbscript, C, C++, and Visual Basic. (Note that knowledge of these software is not mandatory for software testing)

Comments

vivek said…
Great piece of information on software testing. Reading this blog clear lots of my doubt regarding CAD CAM CAE software testing.

But in my opinion CAD/CAM software are not different from any other software packages, so the software testing procedure for all other software must be the same as you have mentioned. Can you give me some idea about it.

VIVEK
Amol Kanthe said…
Yes Vivek, you are right. The software testing procedure for all other software is the same as mentioned above. The only difference is the tests to be carried out. For CAD/CAM software, you need not to do all the tests as we do in other software testing.

Amol P. Kanthe
Sandip Jadhav said…
Very good article Amol!!!
Prarthana said…
Nice and Very Informative Article Amol. I am started searching for some Regression testing documents for a CAD Applications. It would be kind if you provide me more insight on Regression Testing on CAD platform.
Amol Kanthe said…
Regression testing of CAD application is the same process, which we do for testing usual software application. Regression testing is done to ensure that enhancements or defect fixes made to the software works properly and does not affect existing functionality.

There are 2 types of Regression testing:
1. Regular regression testing: Done in-between test cycles
2. Final regression testing: Done to validate the foal build before release

Regression testing can be performed irrespective of which test phase the product is in.

There are many methodologies for Regression testing, which can be used. Below is one methodology.
1. Perform a Smoke Test first
2. Understand the criteria for selecting the test cases
3. Classify test cases in to different priorities
4. Execute test cases based on priority
5. Publish the test results
Anonymous said…
Very Good Info Amol. Can you please let me know various Testing software for CAD Testing?
Amol Kanthe said…
For CAD testing, you can use UFT, TestComplete, etc.
Chougule N.K said…
very good information :)
Can you send one sample test case, so that people will understand detail procedure
thanks
Amol Kanthe said…
It is in the blog. Pasted below for your quick reference.


Test Case Name: Midplane test
Purpose: Determine if the sketch is extruding equally both sides of the sketch plane.
Initial Conditions: Draw a simple closed sketch on any of the sketching plane.
Steps/Description:
1. Invoke the Extrude tool and select the sketch; the Extrude dialog box is displayed.
2. Choose the Mid Plane option from the Direction2. Choose the Mid Plane option from the Direction drop-down list.
3. Enter the extrusion depth value in the Depth
3. Enter the extrusion depth value in the Depth edit box.
4. Choose the Preview4. Choose the Preview button and view the extruded feature.
5. Check if the sketch is extruding equally both sides of the sketch plane.5. Check if the sketch is extruding equally both sides of the sketch plane.
Expected Results: The sketch should extrude equally both sides of the sketch plane.
Anonymous said…
Hi Amol

Very Good information.

I am a CAD user with so many years of experiences.

I want to do some CAD software testing courses and to find job in that field.

Can you suggest which testing tools i should learn for CAD software testing?
If you can suggest few names of the institutes then that will be great.

Can you tell me where i can find jobs related to CAD software testing?

Thanks
Amol Kanthe said…
This comment has been removed by the author.
Amol Kanthe said…
Thanks for reading the blog.

You can learn the tools like QTP, Test Complete, Selenium, etc.
I am not sure any institute provides testing course specific to CAD, but you can get basic knowledge of testing and then use your CAD knowledge to test applications.

You can find job in job portal sites like naukri.com. Mention your skills in headline clearly.
Anonymous said…
Is there any institute which provides training and placement in CAD testing in same area of CAD/CAM/CAE
Amol Kanthe said…
No institute as such. Both CAD and Testing are taught by separate institutes.
Shubham jain said…
Hi, My name is Shubham Jain. I am a QA engineer in CAD CAM testing domain. I what to know is their a sufficient testing opportunities ang good growth in Cad can testing domain?
Amol Kanthe said…
As per my personal experience, opportunities will be limited if you will look only into CAD CAM domain. Be open to other domains and there will lots of opportunities in testing. Learn test automaton and keep watch on latest testing trends.

Popular Posts

Demystifying Automation Frameworks: A Comprehensive Guide to Building Scalable Solutions

Guide to Database Testing

Mastering Java Collections: Your Secret Weapon for Robust Automation Frameworks

The Singleton Pattern in Test Automation: Ensuring Consistency and Efficient Resource Management

The Art of Payments Testing: Ensuring Seamless and Secure Transactions