The Test development process is the part of SDLC with strategy, methodology, frameworks and tools, etc. to be applied in the product testing.
The below are the key steps involved in the process.
First is to understand the component/module or integration of the product functionality expected behavior. It means that one should go through the use cases/user stories/features and discuss with developers for any clarifications. For this, use functional specification or JIRA tickets for user stories or tasks.
Second is to think and brainstorm with the team about all test scenarios for a particular use case. That means to create the exact sequence of steps to be performed for each use case as if like testing manually. Put of those scenarios incrementally in the Test Spec (TS) based on agile process or waterfall SDLC process.
The Third is to execute the tests manually and file bugs if any deviation from the expected behavior. In summary, for all test scenarios (based on priority) from TS
- Run it manually if possible (example: going through web pages navigation/flow)
- Write the test code/test script
- Typically, it is done in the same language that code has been developed, like for java project is java based test code.
Fourth is to create a Test Development Framework, which is a set of utilities/tools to help in the following tasks:
- Execution engine/driver to trigger test cases runtime/execution. Otherwise one has to run manually, say using simple java command line.
- Supply input data as properties or CSV or other data files. Otherwise, one has to run manual supplying of arguments.
- Generate Result/Report document (say HTML or XML). Otherwise, one has to look at the console for results.
Fifth is to select or create a custom Test Tool/Driver
- Identify and select an open source/free/commercial right tool that helps in the testing or automation of tests. For example, Selenium for web site test automation or SoapUI tool for web services testing.
Six is to design and implement a Reporting mechanism
- Design the final reports like TestNG or any customer HTML reports with basic system under test details, number of tests executed, tests passed, tests failed, tests skipped, etc.
Seventh is to setup SUT (System Under Test)
Eighth is to run test scenarios manually and file bugs if any.
Ninth is to automate the tests for regression testing.
- Create the test scripts/test code along with a base build framework (as dev used in their builds) like Ant or Maven or Gradle build tools.
- Review the test code with team (peers/dev).
- Check-in the scripts/code into SCM repository (say git and along with product code).
Finally, perform regression testing
- Execute the automated tests build by the build of the product.
- Schedule automated execution jobs using tools such as Jenkins/Hudson CI.
- Send the daily test result reports
- Analyze the failures
- File regression bugs
- Verify and close bugs