Home > Information technology essays > Software development lifestyle (SDLC)

Essay: Software development lifestyle (SDLC)

Essay details and download:

  • Subject area(s): Information technology essays
  • Reading time: 8 minutes
  • Price: Free download
  • Published: 15 November 2019*
  • Last Modified: 22 July 2024
  • File format: Text
  • Words: 2,118 (approx)
  • Number of pages: 9 (approx)

Text preview of this essay:

This page of the essay has 2,118 words.

Even before the programming language was introduced, programmers has its own set of methodologies to achieve a meaningful task in creating a program.  There are at least reasons why programmers develop solutions to number of problems.  In general, the main job of a programmer is to convert a certain solutions into procedures for the computer.

When the first successful automatic calculator was invented by Charles Babbage better known as “Father of the Computer”, it remained one of the finest examples of an accurate engineering contributions in the history.  It is credited with inventing the first mechanical computer that eventually led to more complex electronic designs.  In his time, many aspiring programmers become more enthusiastic to find their way to be as popular like him.  But developers on the time were lacking of knowledge and efficiency and at the same time software engineers were suffered also due to over budget projects and lack of time.  (Charles Babbage, n.d.)

During the 1960’s, 70’s and 80’s, there were called a software crises which identified many of the problems of software development.  Some used the term software crisis to refer to their inability to hire enough qualified programmers.  And to site a few problems, many projects ran over budget and schedule.  Some projects caused property damage.  A few projects ended without any cause.  The software crisis was originally defined in terms of productivity, but evolved to emphasize quality.  (History of software, n.d.)

For decades, solving the software crisis was leading entity to researchers and companies producing different software tools.  Owning and maintaining software price in the 1980’s was doubled the price from the normal developing the software.

With the expanding demand for software in many smaller organizations, the need for inexpensive software solutions led to the growth of simpler, faster methodologies that developed running software, from requirements to deployment, quicker & easier.  The use of rapid-prototyping evolved to entire lightweight methodologies, such as Extreme Programming (XP), which attempted to simplify many areas of software engineering, including requirements gathering and reliability testing for the growing, vast number of small software systems.  (History of Software Engineering, 2008)

Nowadays, IT professionals including architects, analysts, programmers, testers and users bind together to produce lines of code that run many establishments.  The main reason is systems are increasing the requirements yet becoming more complex.

System Development Life Cycle (SDLC) models have been created in order to manage all of these.  This include waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize and stabilize.

WATERFALL MODEL – As Linear-Sequential Life Cycle Model

Waterfall is considered as the most traditional among all these.  Why?  Because the series of stages specifically each output stage becomes the input for the next.  The design process sequential (non-iterative) and different phases flow downwards.  In this regard, other SDLC models were introduced and developed.  (TutorialsPoint, 2017)

Stages can be characterized and divided in different ways, including the following:

  1. Project planning and Feasibility study: Establishes a high-level view of the intended project and determines its goals.  (TutorialsPoint, 2017)
  2. Systems analysis, requirements definition: Refines project goals into defined functions and operation of the intended application.  Analyses end-user information needs.  (TutorialsPoint, 2017)
  3. Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo code and other documentation.  (TutorialsPoint, 2017)
  4. Implementation:  The real code is written here.  (TutorialsPoint, 2017)
  5. Integration and testing:  Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.  (TutorialsPoint, 2017)
  6. Acceptance, installation, deployment:  The final stage of initial development, where the software is put into production and runs actual business.  (TutorialsPoint, 2017)
  7. Maintenance: What happens during the rest of the software’s life:  changes, correction, additions, move to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.  (Kay, 2002)

Waterfall Model – Design

The result of one phase turns as the input of the next phase in a sequential manner.

Requirement and Analysis

In this phase, all requirements are gathered and documented.

Design

After a series of studies the design is next to prepare.  It will identify the software and hardware requirements as well as its system architecture.

Implementation

The inputs from the design phase will be developed as a small programs known as units.  Every developed unit are tested the functionalities commonly known as Unit Testing.

Testing

This phase concentrates more on integration of the developed units.  Any faults and failures are tested during the post integration.

Maintenance

In this phase, patches, minor issues as well as upgraded versions are to be delivered to the customer.  This probably the longest phase among the rest.

SDLC MAIN ACTIVITIES TO BE FOLLOWED

There are different SDLC methodologies which have been developed as a guide to SDLC provides a series of steps to be followed to design and develop a software product efficiently. SDLC framework includes the following steps:

TESTING IN SDLC

Software testing comes with variety of executing a program or application for the purpose of finding software bugs.  It always involve validating and verifying the accuracy of the application or product.

  • Software Validation – this is a process in which the user will be satisfied or not.  Usually carried out at the end of the lifecycle.  It is considered valid if all the requirements are met.  Validation ensures the product under development meet as per the user requirements and catered the user needs.
  • Software Verification – this is where the confirmation takes place and acquired correct specifications and strategies.  Verification can be evaluated if the product was developed in accordance with the design specification and mainly concerns on the system specifications.

Below is the illustration of how verification and validation are subdivide during the process in software testing.

Figure 1:  Verification and Validation.  (TutorialsPoint, 2017)

SETING UP SOFTWARE TESTING METHODOLOGIES

Not all software testing methods we are using are intended for software code testing purposes.  We have to take into account that the main objective is to satisfy the methodologies we are using.  Below are things on how to setup the software testing methodologies and all the ideas were gathered from different resources;

Scheduling

Real-time scheduling is a successful testing methodology and the timeframe should meet what member of the team needs.

Defined deliverables

A very straightforward deliverables should be provided and should contain direct content without any obscurity.

Test approach

After scheduling is complete and defined deliverables are ready, the testing team should be able to formulate the right test approach.  Meetings of the team and the developer should concentrate about the best test approach that can be used for the project.

Reporting

Achieving transparent reporting is very difficult, but this step will decide the effectiveness of the testing approach used in the project.

Not only in SDLC but also in our testing process, we need to use different approach as this will help achieving the right path.  Big or large enterprises have different requirements that a developer must understand and identify before the testing process start.

EXPECTATIONS IN A TRADITIONAL SOFTWARE TESTING

Let’s understand for whom the software is being tested and what are their expectations out of the software testing processes for a few recent years:

  1. Business Owners expect various fragments of the software along with the detailed and high level product reports.  (Kankaria, 2016)
  2. Business development team expect clear information on what the software development requirements were made and what exactly the software composed of.  Awareness of what all resources which are available, the lead-time taken into consideration for project delivery and many more.  (Kankaria, 2016)
  3. Software development team will confirm a bug-free or error-free software and every release they build is working perfectly fine.  (Kankaria, 2016)
  4. Software testing & quality assurance team needs to implement automation to improve their test scope, find bugs faster & easily and to verify the build stability.  (Kankaria, 2016)
  5. Software proprietors wants detailed reports on requirements against actual software, quality of the software and verification on software cost to its value.  (Ayyappan, 2017)

All these people want the software to be tested, but, sometimes and somehow, they are unable to add value to the software through software testing or involving automation.

INTRODUCING AUTOMATION TESTING IN 7 TOP TRADITIONAL SOFTWARE TESTING BEST PRACTICE

Let’s have innovation in automation with our old software testing best practices followed for years to add value to the software:

  1. Software Requirement Specification (SRS) phase – additional document can be prepared for internal purpose.  Make a list of various test scenarios that can be tested using automation testing.  (Ayyappan, 2017)
  2. Testing Criteria for Entry-Exit Points – concentrate on how to take care of when and how the testing of a particular testing phase will start and end.  This will help in decision making about the framework that can be involved for a particular testing stage.  (Ayyappan, 2017)
  3. Checking for Bugs – Usually other members of a software development team are asking for the inspection of errors in software application.  This will might miss to test a few scenarios as per the user’s requirements.  Instead, we can find a dedicated software testing, QA and test automation teams by outsourcing your software testing processes to a leading software testing company.  (Ayyappan, 2017)
  4. Automation for Cross-Platform Testing – Providing the tools for automation testing which support headless testing.  It prevents graphical user interface during the process across various browsers & other platforms.  (Ayyappan, 2017)
  5. Automation for Nightly Builds – traditionally, we are performing a nightly builds to find and track the bugs, nowadays, there’s a lot of bug tracking tools in test automation strategies.   (Ayyappan, 2017)
  6. Not Just Usability Testing – False hearsay about surrounded around test automation, instead, we should use automation effectively.  Yes, definitely for usability testing, but, other than that, the user interface (UI), database, regression testing, web service needs to be automated simultaneously.  (Ayyappan, 2017)
  7. Automated End-to-End Testing – Business-to-business companies have a large demand for end-to-end testing.  These B2B companies now are opt automating end-to-end testing to keep the application works appropriately and accurately according to the real user scenario.  (Ayyappan, 2017)

BEST TEST AUTOMATION STRATEGY FOR COMING YEARS (2017 and Beyond)

Among the top 5 recommendations of the World Quality Report of 2017, one recommendation is adopting Agile & DevOps with focusing on automation and Shift-left testing.

Now that we have discussed how automation can accelerate the best practices of software testing, let’s discuss the best of all test automation strategy to look for in the coming years.

  1. Automation Planning: Initial planning out of the test automation processes. Before the notion is impossible, but now, you can find the complete application with the proper test automation planning. Estimation, project deadline, test schedules, automation environments and other planning related activities are some of the suggested things about it.  (Ayyappan, 2017)
  2. Architecture & Framework Creation: In application testing, the best is scripting knowledge. But, it is compulsory in choosing the appropriate automation framework.  Just be prepared with the boundaries of automation architecture and integration.  There are various 3rd party tools for CI/CD & more, which will help us to execute it. We need to recycle the components & methods to be more efficient.  (Ayyappan, 2017)
  3. Test Case Creation & Execution:  After final decision on which test automation framework will be used, we can start by creating actual automation test scenarios.  In addition, priorities is very essential in all test cases compared to other test cases based on the complexity of the project. Once finished, test cases are being developed and being taken up for execution on different browsers and platforms. This also important to check its stability and integrity.
  4. Maintenance & Monitoring:  One of the most crucial factor in test automation is reporting.  But, reporting via test automation tools can be quite useful and bearable.  We need to verify the execution logs and reports and analyse later. All defects are logged into the bug tracking tools along with the screenshots and traceable facts.  So, after this, we need to develop our test cases and automation frameworks.  (Ayyappan, 2017)

FINAL REFLECTION

Software testing has been part of the SDLC and plays a major role in broadening our traditional software testing practices. Companies whether big or small are investing millions into software testing services and test automation. We have to focus on a serious evaluation to go back and give a deep thought on how we can move faster to our software testing processes.

In this report, I focused on continual improvement process not only in Software Development but as a whole.  A “breakthrough” to seek a constant evaluation to any field that we are working on.  There’s always a room for improvement not only today but the years ahead.

About this essay:

If you use part of this page in your own work, you need to provide a citation, as follows:

Essay Sauce, Software development lifestyle (SDLC). Available from:<https://www.essaysauce.com/information-technology-essays/2017-9-25-1506308554/> [Accessed 15-04-26].

These Information technology essays have been submitted to us by students in order to help you with your studies.

* This essay may have been previously published on EssaySauce.com and/or Essay.uk.com at an earlier date than indicated.