{"id":1500,"date":"2016-07-15T11:45:58","date_gmt":"2016-07-15T11:45:58","guid":{"rendered":"http:\/\/www.gallop.net\/blog\/?p=1500"},"modified":"2020-01-27T12:17:12","modified_gmt":"2020-01-27T06:47:12","slug":"how-to-find-defects-even-before-coding-starts","status":"publish","type":"post","link":"https:\/\/www.cigniti.com\/blog\/how-to-find-defects-even-before-coding-starts\/","title":{"rendered":"How to Find Defects Even Before Coding Starts"},"content":{"rendered":"

A popularly used idiom states, \u2018Being an early bird is better than being a night owl\u2019. This might not click literally, but, the idea is that in today\u2019s competent software development scenario it is considered beneficial to plan testing along with the process of development. \u2018Start testing early\u2019 is one of the principles in the software development life cycle. In this article we intend to evaluate the advantages and logic behind starting the testing process way ahead in SDLC. The underlying motive is to help identify defects and issues before the production\/coding starts.<\/p>\n

Testing domain experts address testing as a skill, which should be honed time and again. It evolves as per the requirements and challenges in a concerned project. The new school of thought suggests that testing starts early in the development stage, which can help identify defects in the initial stages. One of the key reasons being that it is an expensive affair to resolve issues that get spotted later in SDLC.<\/p>\n

The Standard Process<\/strong><\/span><\/p>\n

A standard software development life cycle plan based on the Waterfall model usually entails the following:<\/p>\n

    \n
  1. \u2018Planning\u2019, where requirements are captured and requirements are assessed.<\/li>\n
  2. Freezing the requirements and analysing them.<\/li>\n
  3. Actual implementation (coding) starts in this phase.<\/li>\n
  4. Testing \u2013 the stage where testing of a product practically starts.<\/li>\n<\/ol>\n

    This being a standard process, it may differ from project to project. If the project does not go as planned; overall Planning, Analysis, Design & Coding takes more than the estimated time causing hurdles for the overall project planning. This would happen in situations where the project has to be delivered under stringent timelines.<\/p>\n

    In such situations when the release date is frozen and there is no scope of flexibility, it results in immediate and massive impact on the testing and quality of the software \/ application. At the same time, customers are being promised a robust application, which determines the success of entire project and ultimately commercial success for the customer.<\/p>\n

    What\u2019s the Solution?<\/strong><\/span><\/p>\n

    So, the only logical way out is to align the testing alongside and start it way in advance of the development process\/coding.<\/p>\n

    In this scenario, organizations are witnessing a cultural shift with Agile Development methodology and DevOps. While DevOps bridges the gap between IT operations and Development, the Agile approach encourages progressive planning and development for constant enhancement. Moreover, it emphasises on keeping a swift and flexible approach towards change.<\/p>\n

    With this approach, testing gets embedded into the system, which helps in managing defects much in advance. It also offers a holistic approach towards the overall software development process. Additionally, the \u2018Start Early Testing\u2019 strategy works wonders as it soaks in feedback from inception and emphasizes on keeping the quality bar high.<\/p>\n

    How can this be planned?<\/strong><\/span><\/p>\n

      \n
    1. Analyze your test result:<\/strong><\/span> If you do not ignore the test results, it ultimately helps you to understand the root cause of any \u2018failed\u2019 result and provide solution at an early stage.<\/li>\n
    2. Expand the test coverage:<\/strong><\/span> While testing an application, it is advisable to maximum the testing process across the application.<\/li>\n
    3. Segment the AUT:<\/strong><\/span> With a view to derive maximum mileage out of the testing process, the Application Under Test (AUT) can be broken down into segments. For instance, breaking down a desktop application for segmented testing purpose.<\/li>\n
    4. Writing test cases for better functionality:<\/strong><\/span> By putting down the test cases for valid and invalid conditions, it becomes possible to understand and cover the various behavioural aspects of the AUT.<\/li>\n
    5. Start off on the right foot:<\/strong><\/span> A tester should ideally approach the project with an attitude to find defects, which will leave no scope for error and the application gets tested in a fool proof manner.<\/li>\n
    6. Constantly share Test cases with developers:<\/strong><\/span> It is important to share the test cases with developers before the coding starts, instead of keeping it with you till the final application release for testing purposes. The test cases will enable the coders in the development process and reduce duplicity in work at a later stage. Sometime the developers are not equipped with the right test cases, so, this approach of sharing enables the developers.<\/li>\n
    7. Performance testing for critical applications:<\/strong><\/span> It is suggested that the applications requiring critical response should be tested from the beginning. Performance testing comes to rescue for such instances as against Manual testing.<\/li>\n<\/ol>\n

      Rewards of starting early testing:<\/strong><\/span><\/p>\n