Blogs

 

Enduring the rigorous process of System Development Life Cycle (SDLC) is never that easy and it will never be!  Why? It is because it doesn’t just stop there. As a matter of fact, after the testing phase, you are still one step away into having that dream system of yours.

Do you even know what’s the last phase? Well, it’s no other than the production phase where the real challenge begins!  This stage entails the actual creation or migration of of the system from testing and staging environments based on the standards and specifications identified during the previous stages.

Relatively, this is the real deal before reaping the fruits of your labor. But how can you be sure that you are now 100% prepared to launch that system for production? Have you seen the green light telling you to go on or have you seen that red light or the red flags waving you to stop?

Given such, it is important to remember and consider some things before putting a newly developed system in production environment. Doing such things might help you to avoid poor execution and project failure.

Thus, why not try to do these things before production?

  • Identify and review all the requirements, specifications, resources, people needed before production. 

It is important that all the requirements are clearly defined and the resources are allocated before production. Conducting the testing and staging phase might have given you the idea on what are the issues that may transpire during the actual production. It can give you the edge to review and to plan ahead.

  • Verify the approach to be used and if adheres with the standards, needs and goals of the project

In software development, the model and the approach used to create the project is very vital. Thus, during the testing, the team should be able to verify if they are using the right model and approach. This should be done to avoid huge errors and too much costs during production. Hence, it is wise to know during the testing part if the mechanisms used were efficient and in line with the needs and goals of the business. During the testing, the team can also evaluate if there is still the need to do other approaches if the previous ones which were used were not effective.

  • Conduct thorough testing

Before production, it is important to conduct thorough testing, as much as possible close to the production environment. Every system has its own procedures when it comes to this stage so better follow such and do this seriously and exhaustively. This will be done to prevent and predict issues and threats that may arise during the actual production phase.

  • Fix bugs efficiently 

In creating any system, bugs are also inevitable so the QA team should be able to find the bugs efficiently. Fix and solve it with minimal time and effort. You can also strategize and focus on bugs that needs urgency and may pose bigger threat with the system that you are going to create. Be efficient, focus on issues that are important.

  • Ensure server and system security and its performance

Security is very vital especially if you are using (Software-as-a-Service) SaaS or open source codes. Thus, before production it is important to impose security measures and evaluation on the server and the system itself. This is required especially if the system will be hosted by using the Cloud. Relatively, system performance should also be evaluated at all cost during the testing so that during the production you can assure that optimal performance can be achieved. Performance risks should also be identified.

  • Simulate the testing environment and the data used for the production environment

It is very crucial to produce the same environment that you’ve used during testing including the data or the information. The very purpose of testing is to copy the production environment in order to validate if all the elements work. But before production, it is also necessary to remember that since you’ve already conducted testing, the elements that were efficient during the testing, should be simulated and copied to the production phase. The same pipeline should be used for both phases. 

  • Review the processes for every element of the project and implement Quality Control procedures

The team should be accountable for reviewing and checking every element of the project/ system. They should review every step to ensure that everything is working and every element is compatible with each other. Make sure that you are following your timeline without compromising the quality of your output. You should not put the quality at stake so make realistic deadlines and put your best foot forward.

  • Validate the system/product by running a regression cycle

The process of regression cycle is also known as the final phase to stabilize the system/product. It is presented by using a hierarchy with several branches. Normally, this has components that will make the client/customer to understand the system/product on their own perspective. This gives the team the opportunity to validate and impose some changes if it is deemed necessary. If the system passes all the tests, you can now see that green light which tells you to “Go” and proceed to the production phase.

  • Test if the system works by running a sanity test

In order to test if everything works, a sanity test is conducted. The results matter for it also evaluates if the third-party system works. It can also say if there are compatibility issues. Project success should be seen at this phase.

  • Document, Document and Document

All changes and configurations made from the test environment to the production environment as well as changes to the programs, the databases and any auxiliiary applications should be properly documented.

  • Provide and assign the right people to do the tasks

Choosing and assigning the right people for the development team is integral to attain access. Having the right people with the right skills can help you to avoid pitfalls and failure in developing a system. Just make sure that their tasks are clearly defined and they are designated properly. Sometimes due to the current trends, much more are expected for developers and the QA team. More often than not, they have to break the traditional ways and learn the contemporary methods of software development. 

These are just some of the few considerations that you need to remember before you put that newly developed system in production. These might be some ordinary guidelines for you but you’ll never know, extraordinary results might come out of these!

 

References:

TechBeacon Online Website. (September 29,2016). Retrieved from http://techbeacon.com/10-best-practices-qa-teams-deliver-quality-software-fast

 Image Source: (Freepik Online Website) http://www.freepik.com/free-vector/businessman-in-front-of-a-choice_765208.htm

 

 

 

 

 

Published in Software Development

In my previous article we’ve talked about test-environment. Don’t you worry; if you missed it feel free to read it here in the blog section of this page.

But don’t get stuck there, learning about test-environment might not suffice.

Actually, there’s still another phase after testing and it is no other than “staging” which uses the so called “stage environment”.

As you know, creating an amazing application or system is not as easy as ABC. You still need to undergo the tedious process of development, testing/QA and staging before going to production. Thus, it is important to understand each step and delve deeper into it.

What is a Staging Environment?

According to Chris Lema a staging environment is defined as “an environment that duplicates production (hardware, software and settings) that any evaluation of code can be tested before being placed into production.” The process encapsulating this environment is called staging.

Let’s make it simple and concise. The server that you use is called the staging server and the clone version of the production database is called staging database. Since this is the final testing before production, it is a must that everything is replicated.

What sets it apart from the Test-Environment?

From the word itself, a test-environment is conducted in the process called testing or Quality Assurance (QA).  On the other hand, a stage-environment is facilitated within the process of staging. Relatively, both environments have the capacity to mimic and replicate the actual production process. 

The only difference is that; the test-environment is constantly changing. Yes, being in the first line of testing, several issues may be evaluated on this phase. Thus, developers are entitled to correct and solve such. This entails correcting the codes, adding features and reducing bugs. Meanwhile, the stage-environment is the almost final testing phase for it has the close to the final version output before production. This means that it will not undergo too many changes just like the testing phase.

If you have a company and you have asked someone to make a payroll system for you mostly likely, they will not allow you to try it when it is still half-finished or under the testing phase.

But if they already have the stage-environment, they can now ask some of your employees to try and explore the available features of the system before final production. This is the reason why stage-environment is also called the demo/training environment.

Again, this is circumstantial and it varies depending on 1) the kind of your development team and 2) the availability of your resources.

What are some of the benefits Staging Prior to Production?

1) It maximizes productivity.

2) It saves more time and effort by identifying issues and reducing bugs prior production.

3) It ensures good quality output and performanc.e

4) It helps in verifying if the applications, modules and databases are compatible to the hosting, platform etc.

5) It promotes collaboration among developers and users.

Is the staging environment important?

If you are going to ask me, I’ll give you a resounding yes! Common development standards require that a system be tested as close to possible to production environment to eliminate the possibility of errors. While indeed, some of the companies have this environment as optional, it is always that necessary.

In the mish mash of such stages, it is important how each step works. Nowadays, companies are investing so much into testing to ensure efficient operations and production. Therefore, knowledge about these steps can give you a heads up when it comes to software or application development.

Yes, behind every incredible application is a multitude of codes, steps and processes. Maybe, at this point you probably have an idea how challenging and mind-boggling the process is. Take note, we’ve only tackled staging, there’s more to learn in the future.

Now you know! Before you can enjoy that favorite application of yours, some people have shed their tears and sweat to make it happen. Isn’t it worth it?

After all, as the saying goes “Nothing worth having in this world comes easy!”. 

 

 

References:

Chris Lema Online Blog. (September 13,2016). Stage Environment Retrieved from http://chrislema.com/staging-environment/

Programmer Interview Online Website. (September 13,2016) Retrieved from http://www.programmerinterview.com/index.php/technical-vocabulary/what-is-a-staging-environment/

Image: freepik.com

Link: http://www.freepik.com/free-vector/e-business-cards-with-electronic-devices_757579.htm#term=developer&page=1&position=17

Published in Software Development
Tuesday, 30 August 2016 10:06

What is a test-environment?

 

                 According to the World Quality Report (Testing and Quality Assurance Trends and Recommendations, 2015-2016), the impact of IT quality on end-user experience is a primary motivating force to conduct initiatives for digital transformation. Undeniably, with the onset of the Internet of Things, Cloud, business analytics, mobile applications etc., business operations and organizations are more into the use of “testing” as a mechanism to gain remarkable insights when it comes to assurance level and customer satisfaction.

Currently, companies are investing time and money to conduct QA and testing with the goal of delivering a seamless customer experience for the end-users. By 2018, it was predicted that there will be a 40% increase in the proportion of IT budget allocated for testing. Thus, this is a reflection that testing is a matter of importance. Furthermore, it is also deemed necessary to know what are the elements encapsulating this process.

When it comes to testing, one of the most sought after concept is the test-environment. But what does it actually mean?

Knowing what is a test-environment Is

According to Jaideep Khanduja (2008),“a test-environment is defined as a setup of software and hardware where the team is going to perform the simulation or testing of a newly built application or program. This includes the physical setup which consists of the hardware and logical setup which includes the Server Operating System, client operating system, database server, front end running environment, browser (if web application), IIS (version on server side) or any other software components required to run this software product. This testing setup is to be built on both the ends – i.e. the server and client.”

Generally speaking, the test-environment consists of elements that can support the test execution with the configuration of the software, hardware and the network. The overall test-environment setup must copy the actual production environment to uncover issues in need of revision or improvement. (TutorialsPoint,2016).

Understanding the Basics of Software Testing

Before you can design the test-environment there are five essential points to consider when it comes to software testing as suggested by David Brown, Six Sigma Website (2016). First is the test strategy, this tells you what type of testing are you going to use which will be best in probing the software. Technically, a strategy that will be best at finding the issues or loop holes within the system. Second is known as the testing plan this is the framework of the actual testing tasks that the team need to execute the strategy.

Third is the test case, this is very important for it consists of the detailed examples to be used to verify if the software meets its requirements. Fourth is the test data or the database or information that you will use to carry out the test case. Lastly of course is the test-environment which will mimic the actual production process.(Brown, 2016)

Identifying Some Software Testing Types

If you plan to test a custom application or program, it is important to identify what type of software testing are you going to use. Each type is different from the other, depending on what purpose it will serve.

Some of the popular ones are the following: (Software Testing Help, 2016)

  • Black box testing- This is the type of testing that is solely based on the requirements and functionality. It doesn’t put prior on the internal system design.
  • White box testing- This is also called as Glass box testing which focuses on internal logic of an application. The tests are based on code statements, branches, paths, conditions
  • Unit testing- is known as a testing of individual software components or modules. Usually, developers do this for they are familiar with the internal program.
  • System testing- the entire system is tested as per the requirements.
  • Functional testing- this type of testing ignores the internal aspects, it is focused on the output.
  • Sanity testing- type of testing used to determine if a new software version is performing well.

Designing the test-environment

The test-environment may vary from one business to another. It depends to the needs and objectives of the testing process. Here are a few factors to consider if you are planning or preparing to do a test-environment.

Prepare and identify all the requirements that you’ll be needing for the simulation. This includes the following:

  • required operating system, database and other components
  • number of license required (optional)
  • network configuration
  • archive/back-up process
  • versions of applications needed (ex. Apache, PHP, MSQL, Java etc.)

Another thing to consider is what we call as environmental configuration. This is defined as the combination of hardware and software environment which the tests will be conducted. It helps in ensuring that the actual production and test-environment have the same setup. (TutorialsPoint, 2016)

These are just some of the basics when it comes to test-environment. A test-environment varies from one setup to another. There are really a lot to know about testing especially the hierarchy of a test-environment but that’s another story.

References:

World Quality Report (23 August 2016) Retrieved from https://www.capgemini.com/thought-leadership/world-quality-report-2015-16

Test-environment (23 August 2016)  Retrieved from http://itknowledgeexchange.techtarget.com/quality-assurance/what-is-a-testing-environment-for-software-testing/

TutorialPoint, (23 August 2016)  Test-Environment Retrieved from   http://www.tutorialspoint.com/software_testing_dictionary/test_environment.htm

Basics of Software Testing, (23 August 2016) Retrieved from http://www.softwaretestinghelp.com/types-of-software-testing/

Image from http://www.softwaretestinghelp.com/test-bed-test-environment-management-best-practices/

Featured Image source https://yithemes.com/themes/plugins/yith-wordpress-test-environment/

 

Published in Software Development

 

Most of us would think that software applications development is the actual programming of an application, and that the programming involves programmers that are slaving away on their keyboards doing codes and codes of stuff and compiling them to make an application. While this is true, few people or users are quite aware that prior to these programmers doing the codes, a systems analysis and design is very critical. Here are the following reasons:

A. A systems analysis process involves studying the actual business processes, understand where data is coming from, how it should be processed and what results are required.

B. This is to find the bottlenecks in data or in processing that results in performance degradation of an application software.

C. To sub-divide a more complex application system so that it can easily be managed.

One of the major objectives of systems analysis is to find answers for each business process so that efficiency of a software application can be achieved. What is being done? How is it being done? Who is doing it? Why are they doing it? When is it being done and how can it be improved? These are the questions that are often answered by systems analysts, and is more of a thinking process and involves creativity for the systems analyst. The goal is that it attempts to product a new efficient system that satisfies the current needs of the users and has vision for future growth within the organization. After an analysis process, then a systems design should be made.

Systems Design Process

Based on user requirements and the results of the analysis of the existing application or systems, a new system must be designed. This is the most crucial phase in the development of a system or an application because, any weak links in the design are carried over into the actual programming process and results may not be that beneficial to an organization if the software or application that was developed does not match perfectly with the needs of the organization. This is also where costs of implementing new features or functionalities and the benefits of these new functionalities are estimated. Likewise, the result of the systems design are passed on to the developers who develop the system. If the output of the systems design are incompatible with the needs of the organization, then the software or systems that are developed will be wasted, not to mention the resources that are incurred in the development of the system.

So in all cases, the developers or the programmers would not be just the core people in software development, everyone, from the business analysts, to the systems analysts, to the software testers, even the documentations analysts, not to mention the programmers themselves form part of the critical core in the process of systems development.

 

Published in Software Development

Message Us Now

Loading, please wait..