How do I start automated testing?

I started working as a software engineer for the company where I now work. Over time, I was either the only one who wanted or could take responsibility for various systems, and therefore I was "promoted" as an IT manager. Now, during my time as a software engineer, I would create functional tests for various pieces of software that I would like to build, and as a result, even today I can quickly test different parts of the system that I was working on. However, there is a large large codebase that has little attention from other developers who have worked here.

Now, as an IT manager, I want to check that all parts of the system are working, but there is:

A) no budget time allocated to build test code coverage

and

B) Lack of desire of the "chief software engineer" to start creating test suites to help me monitor the software.

I don't expect the development team to drop everything they do and spend 2 weeks building test suites, but it would be nice if they started expanding the test suite over time, so I can confirm that different parts of the system are working.

So, boil it, how do I get the dev team to start building test sets?

Other reservations:

A) I am still asked to do software projects in addition to running our IT department (Unix developer, desktop support guy and related office and production equipment).

B) It is very difficult for my unix admin to get production systems to work with a full codebase and we don't get good help from the software development team. It cannot run any diagnostics to see where the web application is failing on new installations. The VP of the company keeps telling me to go and do a print_r in the code to see what's going on. It sucks !!!

+2


source to share


4 answers


That's a good question. And if there was one correct answer to that, many more software projects would be successful and deliver high quality.

I don't think it's a good idea to make such a top-down change. It needs to be led from the developers themselves. Thus, training in the direction of TDD would be good, but it is a long time to invest, which takes time.

If you require a faster solution, you should consider functional, acceptance, and system tests. With these tests, you test virtually the entire application through all layers. If you are developing web applications, you should use Selenium to automate your test. It is easy to create a test with it (Selenium IDE).



But using only such tests (not Unit tests) does not give you the benefits of TDD.

Automating your tests is critical.

+1


source


First, you need to research Test Driven Development so that you feel comfortable explaining it in terms your developers will understand as well as your guide. Since you seem to be developing web applications and you have technical skills, I suggest that you take the plunge and choose an open source web application testing tool, install it, and start building tests for anything you develop yourself.

Twill is an example of the kind of testing tool you'll need.

Then, as a manager, you need to get the developers to follow your lead and reward them for it. And punish them when they don't use the testing framework and this leads to preventable problems. Once you get one of these incidents, you can get your boss aboard and gain some momentum.



In general, remember that the goal is to do less work to get better results. Cutting corners is a way to do less work, but comes with the risk of bad or impressively bad results. Keep management informed of the risks and potential costs at risk.

Don't just force people to test for testing. This should help them be more productive, so choose your first projects carefully.

+2


source


Do you have a testing team or QA?

I would first start to see if they have test cases they use to qualify a build. If not, you will have to develop these test cases to test the core functionality of your product.

The next step is to automate the test cases.

If your application is poorly developed without any troubleshooting or debugging features, it won't be easy until they are added as requirements for the next version.

My 2 cents.

+1


source


I will have to disagree with michaelkebe - these changes need support from the executive level as well as a few key developers in order to fully succeed.

Without this support, you will simply be developers who look like they are "wasting time writing tests for things that already work."

There must be a clear vision and it must be repeated loudly and often.

I don't necessarily advocate Agile here, but often for clicks for business owners.

If you can sell them, then anything you care about (fast software delivery, ease of maintenance, automated testing, etc.) will fall into place.

+1


source







All Articles