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:
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.
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.
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 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.
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 bang, top-down, bottom-up, and back bone.
• 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 bang, top-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.
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.
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 reliability, scalability 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.
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.
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.
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 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 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.
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.
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.
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
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 P. Kanthe
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
Can you send one sample test case, so that people will understand detail procedure
thanks
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.
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
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.