Subscribe by Email


Showing posts with label Test cases. Show all posts
Showing posts with label Test cases. Show all posts

Tuesday, August 6, 2019

Allocating Adequate Time for Software Testing: Ensuring Quality in Development

Introduction

In the realm of software development, testing is not merely a phase but a pivotal process that ensures the delivery of a high-quality product. Despite its significance, testing often faces challenges related to time allocation and resource management. This article delves into the necessity of allocating adequate time for testing, the common hurdles encountered, and strategies to enhance the testing process.


The Important Role of Testing in Software Development

Every software application, regardless of its complexity, is susceptible to defects. Even seasoned developers acknowledge the inevitability of bugs during the coding process. Recognizing this, effective testing becomes indispensable to identify and rectify these issues before the software reaches the end-user.

High-quality software is characterized by its reliability, efficiency, and user-friendliness. Achieving this standard necessitates a thorough testing process that uncovers and addresses defects, ensuring the software performs as intended under various conditions.


Challenges in Allocating Time for Testing

One of the predominant challenges in software projects is ensuring sufficient time is allocated for testing. Project managers and stakeholders often face pressure to expedite development cycles, leading to compressed testing schedules. This haste can compromise the thoroughness of testing, potentially allowing defects to persist into the final product.

Moreover, testing teams frequently encounter skepticism regarding their time estimates. This skepticism often stems from a lack of understanding of the testing process, especially among decision-makers without a background in quality assurance. Consequently, testing teams may feel compelled to reduce their estimated timelines, potentially undermining the effectiveness of the testing process.


Strategies for Effective Testing Time Estimation

Accurate estimation of testing time is crucial for project planning and execution. Here are some strategies to enhance the estimation process:

1. Leverage Experienced Testers

Seasoned testers bring invaluable insights into the estimation process. By reviewing project requirements, even at a high level, experienced testers can provide informed estimates based on their familiarity with similar projects and potential complexities.

2. Analyze Historical Data

Organizations can benefit from analyzing data from previous projects. By examining the testing timelines and challenges of similar past projects, teams can make more informed estimates for current endeavors.

3. Develop Detailed Test Plans

Creating comprehensive test plans based on available requirements allows for a more accurate estimation of the testing effort. These plans serve as a foundation for identifying necessary resources and timelines.

4. Conduct Rigorous Reviews

Subjecting test plans to thorough reviews helps identify potential gaps and areas that may require additional attention. This process ensures that estimates are grounded in a realistic understanding of the testing scope.


Importance of Management Support

For testing efforts to be effective, they must be supported by management. This support includes acknowledging the importance of thorough testing, allocating appropriate resources, and respecting the time estimates provided by testing teams. When management understands and values the testing process, it fosters an environment where quality is prioritized.


Conclusion

Allocating adequate time for software testing is not a luxury but a necessity. It ensures that the final product meets quality standards and performs reliably for users. By understanding the challenges and implementing strategic estimation practices, organizations can enhance their testing processes, leading to the successful delivery of high-quality software.


Recommended Reading

For those interested in delving deeper into software testing and estimation techniques, consider the following books:


Informative Videos

To further understand the nuances of software testing and time estimation, the following videos provide valuable insights:

Software Testing Tutorial Introduction and Course Topics - Software Testing Bootcamp




5 Types of Testing Software Every Developer Needs to Know!





By embracing the importance of allocating sufficient time for testing and implementing effective estimation strategies, software development teams can significantly enhance the quality and reliability of their products.


Sunday, December 1, 2013

Testing: A brief summary of white box testing

We all know white box testing by many other names as well such as glass box testing, clear box testing, structural testing, transparent box testing etc. This testing methodology is used for testing the internal structure of the software or to be precise to test how the application actually works and whether it works as desired or not. This is just the opposite of black box testing that is responsible for testing the system’s functionality only, not getting into the internal structure. The test cases for the white box testing are designed based up on the programming skills and internal perspective from which the system is viewed. From the various inputs, some are selected for exercising all paths through the program and determining whether they are producing the desired outputs or not.
A number of errors can be discovered using this testing methodology. But it is not capable of detecting the parts of the specification that have not been implemented or are missing. The following testing techniques are included under the white box testing:

- Data flow testing
- Path testing
- Decision coverage
- Control flow testing
- Branch testing
- Statement coverage

This testing methodology is used for testing the source code of the application using the test cases that are derived using the above mentioned techniques. All these techniques are used as guidelines for the creation of an error free environment. Any fragile piece of code in the whole program can be examined using white box testing. These techniques act as the building blocks for white box testing and its essence lies in carefully testing the source code so that no errors occur later on. Using these different testing techniques all the paths through the source code that are visible can be exercised and an error free environment can be created. But the tester should have the ability to know which path of the code is being tested and what the output should be. Now we shall discuss about the various levels in white box testing:

- Unit testing: White box testing done during this phase ensures that code is working as desired before it is integrated with the units that have already been tested. This helps in catching the errors at an early stage so that later it does not becomes difficult to find them when the units are integrated and the system complexity increases.
- Integration testing: Test cases at this level are meant to test how the interface of various units interact with each other i.e., the system’s behavior is tested in an open environment. During such testing any interaction that is not familiar to the programmer comes to light.
- Regression testing: This phase uses the recycled test cases from white box testing.

For the white box testing to be effective the tester should understand the purpose of the source code so that they are tested well. The programmer must understand the application so that he/ she can create effective and appropriate test cases.
The programmer working on preparing the test cases needs to know the application very well in order to ensure that he / she can prepare cases to handle every visible path for testing purposes. With the source code having been understood, this understanding of the course code lets the team use this analysis of the source code for preparing test cases. And for making these test cases, these are the steps that need to happen in white-box testing:
- Input, that may include functional requirements, specifications, source code etc.
- Processing unit, that carries out the risk analysis, prepares a test plan, executes tests and gives results.
- Output, that provides the final result.


Thursday, May 30, 2013

Preparing test cases so that a subset can be extracted for use as well ..

Do a good job while doing the initial design and preparation, and it can be of big help later. How many times would you have heard this, but it is true, and we recently had an example of how relevant this actually is. Consider that you have a test plan and test cases to deal with the testing of a feature. It is a large feature with many workflows, and a number of combinations of inputs and outputs. These different input and output variables are what make testing of the feature difficult and lengthy, since each of these variables has to be tested along with the possible combinations. Overall, in any big software product, there can be many such features that need to be tested thoroughly, and possibly tested many times during the development of the product. So, if there is a big set of test cases dealing with the feature, then it makes it easier to test on a regular basis.
Now, let us consider the cases where the feature does not need a complete testing. If you consider that the complete testing of the feature may take more than 2 days, there will be times when you will be able to spend not more than a couple of hours on this feature. And if you do not have an automation run for the test cases, then let's continue with this post (if you have built automation for testing these cases, then it would not take 2 days, much less, more like the 2 hours that is part of the requirement, but building automation cases also takes time and effort, and most teams cannot build automation for all of their test cases).
However, as you get closer to your release times, you cannot afford to spend the full testing cycle. You diminish the risk by controlling the changes that are made, and then do a reduced testing of the features given the constraints on time available. And then there is the concept of dot releases or patches. These typically have far less time available for the entire project from start to end, and yet, there needs to be a quick checkup of the application including the features before there can be a release. Another example is when the team is releasing the same application in multiple languages and operating systems. If the same application is released across Windows XP, Windows 7 and Windows 8, Mac OS, and in a number of languages (and the large software products are released in more than 25 languages each), then it is not a realistic assumption that each feature needs to be tested on these various languages and operating systems in full detail. In fact, most testing teams do a lot of optimization of these testing strategies, and try to do a minimum of testing for some of these platforms. 
But how do you get there ? When the testing team is preparing their test cases, they need to think of these situations. The tendency is to create test cases that flow from one to the next one, and are meant to be followed in a sequence. But to handle the kinds of situation above, the test cases need to be structured in such a way that they can be broken up into pieces for situations where the testing needs to done in shorter periods of time, and yet make the team still feel fairly confident that the testing has been done to the extent required. It also requires this kind of breakup information to be listed in a way that another tester later on who was not informed during the preparation of the test cases needs to use a subset of the cases for one of the special needs mentioned above (which can happen all the time, the original tester may not be a part of the team any longer, and may not even be a part of the organization).


Wednesday, February 27, 2013

Explain TestOptimal - Web Functional/Regression Test Tool



About TestOptimal Testing Tool

- TestOptimal provides a convenient way for the functional/ regression/ load/ stress testing of the web–based applications in an automated way. 
- It also works for the java applications. 
- The technology behind the TestOptimal testing tool is the MBT or model based testing and some mathematical optimization techniques. 
- It generates as well as executes the test cases directly from the model of the application. 
- Actually, TestOptimal is itself a web – based application. 
- It has facilities for integrating it with the JUnit. 
- Furthermore, it can be run along with the NetBeans and Eclipse.
- Another striking feature of TestOptimal apart from the technology is that it uses is the application modeling with graphs.
- Example of such graphs are the state chart XML or in short SCXML. 
- These charts have drag and drop user interface that are capable of running  on  the standard browsers. 
- TestOptimal has a number of test sequencers that effectively meet the testing needs of different users. 
- Mscript or java is used for the automation of the tests i.e., the XML – based scripting. 
-TestOptimal provides statistical analysis of the virtual users and test executions required for load testing. 
- TestOptimal can be integrated with other tools such as QTP, quality center etc. with the help of its web service interface. 
- TestOptimal supports multiple browsers on a number of platforms such as Unix, Linux and Windows.
- The following constitute this model – based test automation suite for load and performance testing:
  1. Test optimal basic MBT
  2. proMBT
  3. enterprise MBT
  4. runtime MBT
- Model based testing and DDT (data driven testing) are combined together by the TestOptimal so as to provide a sophisticated and efficient test automation and test case generation tool. 
- With MBT, one can find the defects in the early stages of the development cycle, thus enabling a quick and efficient response. 
- TestOptimal animates the test execution that provides the user with an insight in to the testing. 
- This also enables the user to validate the model visually. 
- It also lets you track the requirement coverage.
-The test cases can be visualized with the help of various graphs. 
- For achieving the desired test coverage, there are a number of algorithms capable of generating requires test sequences. 
- The same automation scripts and models can be re–purposed if the user wants to perform load and performance testing.
- TestOptimal helps you cut down the length of the development cycle and at the same time achieving desired test coverage. 
- This in turn improves you response to the frequent changes and makes you confident about your software.
- With TestOptimal, it is sure that over 90 percent of your coverage requirements will be met and release turnaround time will be improved. 


Features of TestOptimal

Below we state some unique features of this excellent testing tool:
  1. Finite state machine notation via MBT modeling.
  2. Superstate and sub-model: With this feature a larger model can be partitioned in to smaller library components that are reusable.
  3. Graphs: It provides various graphs such as the MSC (message sequence chart), coverage graph, model graph, sequence graphs and so on.
  4. Model import and merge: It offers various modeling formats based up on XML and UML XMI such as the graphML, graphXML and so on.
  5. Test case generation: It comes with many sequencers such as the optimal sequencer, custom test case sequencer, random walk and so on.
  6. Scriptless data driven testing
  7. Scripting offered in mscript and java.
  8. ODBC/ JDBC support: Relational databases can be accessed and operations such as reading, writing, storing and verifying test results can be performed.
  9. Integration with REST websvc, JUnit, java IDE specifically netbeans and eclipse, remote agents and so on.
  10. Cross browser testing support on browsers such as chrome, IE, opera, firefox and safari.






Friday, February 22, 2013

Explain SlimDog - Web Functional/Regression Test Tool


About SlimDog

- SlimDog is a web application testing tool that is based on simple script i.e., the httpunit. 
- The tool comes with a range of commands that help you to work with forms, navigating between the web pages and checking the table contents. 
- The hard task of writing lengthy xml files and JUnit test cases, the slimdog allows the users to create simple text scripts. 
- Each command is a test node that is contained in every line of the script.
- As such all commands contained in a file are treated as a test case and processed as the same. 
- Every command has a syntax that is quite simple as well as easy to learn. 
- If you want, you can form a test suite by combining several test scripts. 
- The results of the tests executed are written as an html page or file to the console. 

How to use SlimDog?

- To use slimdog, firstly you need to download its latest version from its web site. 
- The application will be in zipped form. 
- You need to extract the files to a directory of your choice. 
- Next step is to create a test directory. 
- After this you can start creating tests and save them in the test directory you just created. 
- After you have created the test, your next step is to get the html content. 
You can run the tests from the command line. 
- After obtaining the results save them to a file. 
- Be careful that the file in which you are saving the result should be defined using the –o argument. 
- You can even navigate from one page to another. 
- All files in the test directory can be run as a test suite. 
- Every test case file must end with .test extension so that it becomes recognizable.
- You can even use a proxy. 
- The slimdog commands can even be used with the JUnit test cases.

- However, running a test case is the easiest way. 
- Firstly, the web tester needs to be instantiated and all commands need to be added through the parse line method.
- You do not have to worry about the syntax since it is the same as that of the script files. 
- After this runtest() method can be called and web test results can be obtained. 

General SlimDog Commands

Below we shall mention some general slimdog commands:
  1. Get_html: This command is for establishing a connection with the given URL and thus reading its content. The read content then can be used later. The parameter to this command is the URL itself and it supports variables.
  2. Check_title: Parameter for this command is the required title and it is of the type test. The title of the page that you specify is checked against the given title. There is one thing about this test which is that if it fails, the entire test will fail.
  3. Set_proxy: The parameters for this command are the proxy port and host. It is of the type command.
  4. Check_link (missing): The parameter for this command is the text within the tag and this one is also of the type test.
  5. Check_text: The text to be found is passed as a parameter to this command and it is of the type test.
  6. Click_link: The argument for this is the text within the tag. It is of the type command.
  7. Seturlprefix: The parameter here is the URL prefix. This URL prefix is used as the base URL for other tests. It is of the type command.
  8. Enable java_script: Parameter is either true or false. This command disables and enables the JavaScript based on the argument passed.


Saturday, February 9, 2013

What are the main features of TOSCA? What are its benefits and limitations?

About TOSCA

TOSCA test suite was developed as a tool for automated execution for regression and functional testing by TRICENTIS technology and consulting GmbH.
- TOSCA is a wise combination of an application programming interface, a graphical user interface, integrated test management and a command line interface. 
- In the year of 2011, TOSCA became the second most widely used software test automation tool. 
- Since then, it has received a number of awards for its web and customer support.  
The architecture of TOSCA comprises the following components:
Ø  TOSCA commander
Ø  TOSCA wizard
Ø  TOSCA executor
Ø  TOSCA exchange portal
Ø  TOSCA test repository
- This test automation tool follows a model driven approach so that the whole test can be made dynamic in nature. 
- The modules can be dragged and dropped for creating new tests.  
- This in turn makes it possible for having a business – based description of the test cases.
- With such a description it becomes for the non – technical users to design and automate the test cases.


Features of TOSCA


- Main features of TOSCA include:
Ø  Generation of dynamic test data
Ø  Generation of synthetic test data
Ø  Business dynamic steering of test case generation that is highly automated
Ø  Unified handling as well as execution of the automated and manual test cases.
Ø  Unified handling and execution of the non – GUI and GUI test cases.
- In addition to all these above mentioned features, another feature of TOSCA is that it weighs the test cases as per their importance in proper execution of the business processes. 
- This also enables the TOSCA to provide detailed reports about the impact that the existing technical weakness have on the fulfillment of the requirements.
- A software called Fecher uses TOSCA for the development of data base and application migration projects.


Limitations of TOSCA

TOSCA has two major limitations when compared with the other software test automation tools:
Ø  Using it one cannot perform any load testing and stress testing.
Ø  It hasn’t got any active X components.

Below mentioned extensions are provided with TOSCA:
Ø  Requirements: This extension lets the requirements to be imported, edited, exported and administrated the risk associated with the requirements can be weighted. These requirements are then linked to the tests after they have been designed.
Ø  Test case – design workbench: This extension defines the tests cases that are required for providing coverage to specific test objects on the basis of the requirements. The test cases are then generated by employing all the combinations in the following ways:
1.    Pairwise
2.    Orthogonal array
3.    Linear expansion
Ø  Reporting: This extension lets you collect, analyze and present the test results. Either crystal reports can be used for creating the test reports or they can be exported as an XML or PDF file.
Ø  TOSCA easy entrance: This extension lets you create the entities that can be reused via drag and drop feature.
Ø  User management: This extension lets you integrate the multiple user concept with check in and out mechanisms as well as versioning.
Ø  Web Access: This extension works for providing remote access.
Ø  SAP solution manager ready: This extension lets you integrate TOSCA with SAP.

Because of its various features TOSCA is so famous among the testers.  A total of 300 customers have been recorded worldwide. The software is being used in numerous tasks such as:
  1. Banks
  2. Insurance
  3. Telecommunication
  4. Industrial companies and so on.
It makes use of third generation model that uses plain English for the creation of tests.  




Tuesday, February 5, 2013

How test cases are generated using Testing Anywhere?


Testing anywhere software product helps you create the test cases using any of the 5 methods namely:
- Web recording
- Object recording
- Image recognition
- Smart recording and
- Editor

- While editor can be used for editing the test cases by advanced users, wizard is for those who do not have any programming skills. 
- Another facility is that the creation of the files that are executable. 
- These files are created in such a way that they can be executed on a machine that might be located in a remote location. 
- IT and business processes are created by the work flow designer and is managed by the same.
In this article we explain how the test cases can be generated using the testing anywhere product. 

How test cases are generated using Testing Anywhere?

- The testing anywhere product comes with a SMART recorder that one can use to create new tests. 
- Clicking on the ‘record’ button will drop down a list of options from which you have to select what type you are testing i.e., a web or windows application type. 
- Then you need to perform the activities on the system that you want to be recorded. 
- You can insert a checkpoint wherever you want by clicking on the check point button. 
When you are done with recording the tests click on the stop button. 
- You can then save these activities in a test by clicking on the save button. 
- You can playback these test scripts whenever you want and any number of times by clicking on the run button. 
- In testing anywhere product, it does not matter if any change occurs between the size and location of the window of the application while the recording or replaying is in progress. 
Testing anywhere uses a SMART automation technology that helps in automatically adjusting to those changes.
- Another advantage of using testing anywhere is that you can work up on any number of applications.
- You do not have to finish working up on one application before moving on to the next. 
You can very well switch between the applications. 
- Testing anywhere even works while your computer is locked. 
- It does so because of the auto log-in capability that is unique to this software. 
- With this, you can schedule the tests and they will be executed even when your system is locked. 
- If this capability is enabled and the system is locked, it will be unlocked by the testing anywhere, the test will be executed and the computer will be locked again. 
- Auto log-in capability lets you run the tests in stealth mode when the system is locked. To do this follow:
Properties à security à run this test in stealth mode

- The execution will then be hidden. 
- Further, if you want to lock the keyboard and mouse you can use the ‘disable mouse and keyboard for this test’ option. 
- If you want to stop the execution of a test just keep holding the escape key for some time. 
- Using the pause key on the keyboard you can pause the test while it is executing. 
Further clicking on the resume button you can continue with the execution. 
- Another thing that makes testing anywhere unique is that it can run the tests in background. 
- A number of advanced technologies lets you run the tests in background such as:
1.    Web recorder
2.    Object recorder
3.    And a number of other powerful actions
- However, there are some tests like those that are recorded through standard recorder. 
These tests require mouse and keyboard control and therefore cannot be executed in background. 
- There are few other exceptions also such as commands such as screenshots; image comparison etc. that cannot be run in background.


Sunday, February 3, 2013

What is Testing Anywhere software product? What are its uses?


Testing anywhere software product was developed by the Automation Anywhere Inc. based in San Jose. This is another software in the category of test automation tools. This software has proven to be a boon for the software testers and developers who have to test the web sites, applications, GUI front-ends, objects and controls. The product has got many uses from recording to the execution of the test cases. It is used for the following major purposes:
  1. Recording of the tests
  2. Debugging them
  3. Scheduling their execution
  4. Executing the tests
The above mentioned operations can be carried out for a number of application types such as:
  1. Java
  2. Silverlight
  3. Mainframe
  4. C++
  5. .NET and so on.
Testing anywhere product provides option for automating the test case creation. Testing anywhere offers you 5 different methods for creating the test cases namely:
  1. Web recording
  2. Object recording
  3. Image recognition
  4. Smart recording and
  5. Editor
- The test cases thus created using any of the above methods can be later recorded, edited, saved and can also be enhanced. 
- The editor is used for editing the test cases. 
- People who don’t have programming skills can use the wizard for creating and editing the test cases. 
- Testing anywhere software lets you create files with .exe extension i.e., the executable files which later can be deployed by the software testers on remote machines. 
- The creation of a high level IT and business processes is the responsibility of the workflow manager. 
- Further, workflow manager only takes care of the ability by virtue of which these processes are managed. 
- It supports a number of platforms:
  1. Microsoft windows 7 (both 32 and 64 bit)
  2. Microsoft windows vista (both 32 and 64 bit)
  3. Microsoft windows XP (both 32 and 64 bit and along with service pack 2)
  4. Microsoft windows server 2008 R2
  5. Microsoft windows server 2003
- Testing anywhere supports the following kinds of testing:
  1. Integration testing
  2. Compatibility testing
  3. Performance testing
  4. GUI testing
  5. System testing
  6. Java application testing
  7. Automated flex testing
  8. Silverlight application testing
  9. Mainframe application testing
  10. WPF testing
  11. Third party .NET supported testing
  12. Automated software testing
  13. Automated web testing
  14. Regression testing
  15. Distributed testing
  16. Functional testing
  17. Black box testing
  18. Acceptance testing
  19. Unit testing
  20. Keyword driven testing
  21. Data driven testing
  22. Smoke testing
- The product has been named because of the facility that it provides for running the tests on any remote machine present in the network. 
- Further, it reduces the testing cost by a huge margin since it cut down the money being spend up on the software licenses, resources, and training and time of course.
- Testing anywhere provides you a SMART recorder for creating new tests.


Saturday, February 2, 2013

Explain Robot Framework?


The Robot Framework was developed as generic test automation framework for two major tasks namely:
  1. Acceptance testing and
  2. ATDD or acceptance test driven development
- It makes use of the keyword driven testing approach for achieving the above mentioned two tasks. 
- It has got a very simple and unique tabular test data syntax that is quite easy to follow and this is what that makes robot framework so easy to be used. 
- All this makes the robot framework popular among the testers.
- Test libraries that can be implemented through either java or python can be used for extending the capabilities of the frame work. 
- The users have the choice of creating new keywords from the existing ones. 
This can be done using the same syntax that is available for the creation of the test cases. 
- Robot framework is actually an open source software. 
- The license it possesses is the Apache license 2.0.
- The Nokia Siemens Networks supports the development of this framework and also owns its copyrights. 

Features of Robot Framework

The robot test automation framework is abundant of features. Its features are:
  1. Its tabular syntax is easy to use and can be used for the creation of the test cases in a way that is uniform.
  2. Robot framework can work up on three approaches namely:
- Keyword driven testing approach
- Behavior driven development approach or BDD
- Data driven testing approach or DDT.
  1. It provides the facility for the creation of higher level keywords that are reusable for the already existing keywords.
  2. The reports and logs it generates are quite easy to follow and are based up on HTML.
  3. This test automation framework does not depend up on any platform or application.
  4. The architecture of the frame work is quite modular in nature that helps in supporting the creation of the tests for even the software systems and applications that possess a number of interfaces all different from one another.
  5. It comes with a library API that is quite simple and can be further used for the creation of other test libraries that can be customized.
  6. The XML based outputs that the framework provides allow for integrating itself in to the build infrastructure that already exists. These are called continuous integration systems.
  7. It also provides a command line interface for the same purpose as that of the XML based outputs.
  8. It supports selenium tool for the following things:
Ø  Web testing
Ø  Java GUI testing
Ø  telnet
Ø  running processes
Ø  SSH and so on.
  1. The framework comes with a remote library interface, thus enabling the implementation of the test libraries in any desired programming language and distributed testing.
  2. The tagging feature provides helps in categorizing the tests and selecting them accordingly for the execution.
  3. For variables, it comes with a special built – in support for regulating testing in different environments.
- Test cases can be written either in HTML or in plain text.
- Also, any editor can be used for editing the test cases. 
- The robot test automation framework comes with a graphical development tool called the RIDE or robot IDE. 
- The tool has got a number of features specific to the framework such as syntax highlighting, code completion and so on. 
- Selenium library is an extension to the robot test automation frame work and similarly there are a number of others. 
- However, there are some other languages that can be used for implementing the libraries such as perl, PHP, java script and so on. 
- However, these languages can be used only through a remote library interface.


Facebook activity